Risultati da 1 a 9 di 9

Discussione: Trova e sostituisci file mutipli



  1. #1
    L'avatar di filcorti
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    bianco
    Età
    35
    Messaggi
    8
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1

    Unhappy Trova e sostituisci file mutipli

    Buonasera, avrei bisogno di una mano Devo creare un vba che possa permettermi di sostituire in diversi file .xls presenti in una cartella e sottocartelle delle parole con il trova e sostituisci.
    Ad esempio vorrei che cercasse in tutti i file excel la parola Orange 100 e me la sostituisse in Pink 150, ma non solo Red 12 in Rose 94 e via dicendo Ho messo giu questo vba
    Funzionante il problema è che funziona solo su di un file. Vorrei funzionasse su tutti i file in una determina cartella. Potreste aiutarmi? Ciao e grazie
    Codice: 
     Sub Multi_FindReplace()
    
    Dim sht As Worksheet
    Dim fndList As Variant
    Dim rplcList As Variant
    Dim x As Long
    
    fndList = Array("Orange 100", "Red 12", "Green 111")
    rplcList = Array("Pink 150", "Rose 94", "Yellow 212")
    
    'Loop through each item in Array lists
      For x = LBound(fndList) To UBound(fndList)
        'Loop through each worksheet in ActiveWorkbook
          For Each sht In ActiveWorkbook.Worksheets
            sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
              LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
              SearchFormat:=False, ReplaceFormat:=False
          Next sht
    
      Next x
    
    End Sub

  2. #2
    L'avatar di filcorti
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    bianco
    Età
    35
    Messaggi
    8
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Codice: 
    Sub LoopThroughFiles()    
        FolderName = "C:\Users\Filippo\Desktop\note\"
        If Right(FolderName, 1) <> Application.PathSeparator Then FolderName = FolderName & Application.PathSeparator
        Fname = Dir(FolderName & "*.xls")
    
    
        'loop through the files
        Do While Len(Fname)
    
    
            With Workbooks.Open(FolderName & Fname)
    Dim sht As Worksheet
    Dim fndList As Variant
    Dim rplcList As Variant
    Dim x As Long
    
    
    fndList = Array("caffè m113", "verde v035")
    rplcList = Array("Caffe C505", "Verde FGV501")
    'Loop through each item in Array lists
      For x = LBound(fndList) To UBound(fndList)
        'Loop through each worksheet in ActiveWorkbook
          For Each sht In ActiveWorkbook.Worksheets
            sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
              LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
              SearchFormat:=False, ReplaceFormat:=False
          Next sht
    
    
      Next x
            End With
    
    
            ' go to the next file in the folder
            Fname = Dir
    
    
        Loop
        
    End Sub
    Il problema è che mi apre migliaia di file me li modifica e poi si ferma li, devo andare a chiuderli e poi dire ogni volta si salva e sostiuisci.
    E possibile cha faccia tutto lui? Mi apra un file alla volta me me lo chiude salva e sostituisce senza chiedere?

  3. #3

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Ho modificato il tuo codice facendogli fare una scansione della cartella corrente, apre uno alla volta ogni file .xls
    Ho provato con una cartella con pochi files e a me funziona.
    Aprila ed eseguila passo/passo (F8)
    Codice: 
    Sub Multi_FindReplace()
    
    
    Dim sht As Worksheet
    Dim fndList As Variant
    Dim rplcList As Variant
    Dim x As Long
    Dim myPath As String
    Dim myName As String
    
    
    fndList = Array("Orange 100", "Red 12", "Green 111")
    rplcList = Array("Pink 150", "Rose 94", "Yellow 212")
    
    
    myPath = ThisWorkbook.Path & "\"    ' Imposta il percorso.
    myName = Dir(myPath & "*.xls")    ' Recupera la prima voce.
    Do While myName <> ""    ' Avvia il ciclo.
        ' Ignora il file corrente
        If myName <> ThisWorkbook.Name Then
            Workbooks.Open myPath & "\" & myName
        
            'Loop through each item in Array lists
            For x = LBound(fndList) To UBound(fndList)
                'Loop through each worksheet in ActiveWorkbook
                For Each sht In ThisWorkbook.Worksheets
                    sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
                    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                    SearchFormat:=False, ReplaceFormat:=False
                Next sht
            Next x
            'chiude il file
            Workbooks(myName).Close savechanges:=True
        End If
        myName = Dir    ' Legge la voce successiva.
    Loop
    
    
    End Sub

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di filcorti
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    bianco
    Età
    35
    Messaggi
    8
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Ho modificato il tuo codice
    Ciao Rubik e grazie prima di tutto sei stato molto gentile.
    myName = Dir(myPath & "*.xls") ' Recupera la prima voce.
    cosa significa? cosa dvo inserire? thanks!!!

  6. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Citazione Originariamente Scritto da filcorti Visualizza Messaggio
    myName = Dir(myPath & "*.xls") ' Recupera la prima voce.
    La prima volta recupera il primo file .xls, successivamente ogni volta che esegue il comando Dir() recupera il file .xls successivo e lo apre

  7. #6
    L'avatar di filcorti
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    bianco
    Età
    35
    Messaggi
    8
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    che strano mi da un errore runtime 52 su quella riga

  8. #7

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Il file deve essere salvato (quindi avere un percorso) per restituire il percorso stesso.
    Lo hai salvato?
    Ti invio una copia che a me funziona.
    File Allegati File Allegati

  9. #8
    L'avatar di filcorti
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    bianco
    Età
    35
    Messaggi
    8
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Il file deve essere salvato (quindi avere un percorso) per restituire il percorso stesso.
    Lo hai salvato?
    Ti invio una copia che a me funziona.
    Ma sono fuso, ho inserito il mio percorso nella riga sorpa!
    Lanciato, ora vediamo cosa salta fuori fra poco ti dico!

  10. #9
    L'avatar di filcorti
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    bianco
    Età
    35
    Messaggi
    8
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    1
    Citazione Originariamente Scritto da filcorti Visualizza Messaggio
    Ma sono fuso, ho inserito il mio percorso nella riga sorpa!
    Lanciato, ora vediamo cosa salta fuori fra poco ti dico!
    mannaggia non mi trova i valori e non me li sostituisce, lo fa solo sul file sul quale è salvata la macro.
    Infatti ho provato ad incollar il tuo codice non su xlsm che mi hai mandato ma su un file e funzxiona

Discussioni Simili

  1. [Risolto] Macro trova e sostituisci in altro foglio
    Di Antonione nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 05/03/17, 12:29
  2. [Risolto] Cerca e sostituisci
    Di BRAZ66 nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 14/01/17, 13:56
  3. Trova e sostituisci "avanzato" o formula alternativa.
    Di iacob81 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 30/11/16, 20:40
  4. Finestra dialogo trova e sostituisci Excel 2016
    Di fableo nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 24/10/16, 10:03
  5. Sostituisci dati
    Di COCOVIG nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 09/02/16, 01:00

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •