Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Trova e Sostituisci un Valore su tutti file .xls presenti in

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi Apache84 » 28/01/10 15:03

Ciao a tutti,
qualcuno ha idea di come posso fare fare l'operazione descritta nel titolo?
Porto un esempio:
Percorso d:\Documents and Settings\xxxx\Desktop\PROVA
dentro la cartella sono presenti 100 file con tutti nomi diversi,
io vorrei un qualcosa che mi sostituisse in tutti i file un valore "PIPPO" in un valore "PLUTO".

Spero di esser stato chiaro
Ciao Grazie mille
Apache84
Newbie
 
Post: 4
Iscritto il: 28/01/10 14:45

Sponsor
 

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi ricky53 » 28/01/10 15:51

Ciao,

benvenuto nel forum.

La cosa è fattibile con il VBA.

Tu come te la cavi con la programmazione?

In dettaglio quali e quante celle devi modificare e con quali valori?

Il valore è uno solo oppure no?
E' sempre nella stessa cella?
Nello stesso Foglio?

Si può produrre una base su cui lavorare ipotizzando ad esempio sempre la cella "A1" come cella da modificare

la macro dovrebbe operare nel seguente modo:
1. legge tutti i file "xls" presenti nel tuo percorso
2. apre un file, se nella cella "A1" del "Foglio1" trova
"PIPPO" lo sostiutisce con "PLUTO"
3. ripete su tutti i file il punto "2"

Attendo.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi Apache84 » 28/01/10 16:19

Ciao Ricky,
innanzitutto grazie mille per il benvenuto, nel mio piccolo spero un domani di poter collaborare per aiutare qualcuno anche io. :-)
Purtroppo di programmazione sono proprio scarsetto, mi piacerebbe molto imparare ma mi servirebbe un maestro da autodidatta ho qualche difficoltà.
In ogni caso rispondo alle domande:
io desidero inserire un valore da cercare in tutta la cartella di lavoro, perchè i fogli possono essere diversi nei vari file, e possono anche essere in celle differenti, insomma non ci sono cordinate il file aperto va controllato totalmente.

Prendo spunto da ciò che mi hai scritto e mi permetto una correzione a me utile:

1. legge tutti i file "xls" presenti nel tuo percorso
2. apre un file, fa una ricerca in tutti i fogli e in tutte le celle SE trova
"PIPPO" lo sostiutisce con "PLUTO"
3. ripete su tutti i file il punto "2"

Come si può fare?
Grazie Andrea
Apache84
Newbie
 
Post: 4
Iscritto il: 28/01/10 14:45

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi ricky53 » 28/01/10 16:26

Ciao,
si può fare ma è pesante scorrere tutte le celle di tutti i fogli di tutti i file.


A. Quanti e quali sono i valori da cambiare?
B. Usi office 2003 o 2007?

Ti posso fare una base su cui lavorare però prima dobbiamo chiarire tutto il da farsi e bene.

Intanto inizia con il registratore di macro: fai dei passaggi su un foglio e vedi cosa ti scrive:
per esempio
1. scrivi "pippo" e poi cambialo con "pluto".
2. vai su un foglio diverso e fai la stessa cosa
3. prova libera

ferma il registratore di macro e guarda il codice che è stato scritto.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi Apache84 » 28/01/10 16:49

I file sono circa un 200 e i valori da cambiare possono essere fatti anche uno per volta non c'è problema.
Uso office2003 su una Workstation.

Ovviamente i file modificati vorrei richiuderli salvandoli.



Sub Macro3()
'
' Macro3 Macro
' Macro registrata il da Utente
'

'
Workbooks.Open Filename:= _
"D:\Documents and Settings\xxxxx\Desktop\PROVA\PROVA\G901.occ.xls"
Cells.Replace What:="PIPPO", Replacement:="PLUTO", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveWorkbook.Save
ActiveWindow.Close
Workbooks.Open Filename:= _
"D:\Documents and Settings\xxxxx\Desktop\PROVA\PROVA\I001.cmp.xls"
Cells.Replace What:="PIPPO", Replacement:="PLUTO", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Fatto come mi hai richiesto,
mi piacerebbe avere un qualcosa per specificare il valore da cercare e qualcosa in cui poter identificare il percorso dove sono tutti i file.
Grazie
Apache84
Newbie
 
Post: 4
Iscritto il: 28/01/10 14:45

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi ricky53 » 28/01/10 17:23

Ciao,
si può lavorare su questa macro e generalizzarla.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi ricky53 » 28/01/10 18:31

Ciao,
intanto prova questa macro che seleziona i file "XLS" di un certo percorso, selezionabile dall'utente, e scrive nel "Foglio1" colonne "A" e "B" il percorso ed il nome del file letto

Apri un file XLS nuovo e copia questa macro in un modulo
eseguila con "F5"

Codice: Seleziona tutto
Option Explicit
Public Percorso As String, strArr(1 To 65535, 1 To 1) As String, strName As String, FD As Object, I As Long

Sub ElencoFile()
    Set FD = Application.FileDialog(msoFileDialogFolderPicker)
    With FD
        If .Show = False Then
              MsgBox "Premere ""OK"" per confermare il percorso scelto"
              Exit Sub
        End If
        Percorso = .SelectedItems(1)
    End With
   
    Const searchTerm As String = "*.XLS"
    I = 1
    Let strName = Dir$(Percorso & "\*" & searchTerm)
    Do While strName <> vbNullString
        Foglio1.Cells(I, 1) = Percorso
        Foglio1.Cells(I, 2) = strName
        Let I = I + 1
        Let strArr(I, 1) = Percorso & "\" & strName
        Let strName = Dir$()
    Loop
End Sub


Buona prova da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi Apache84 » 02/02/10 10:38

Ciao a tutti ecco la soluzione che grazie a voi e altri aiuti ho individuato:

Codice: Seleziona tutto
Public str_from As String
Public str_to As String

 Sub macro1()
 
     Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim MyFile, MyFileFound
frm_sostituisci.txt_from.Text = ""
frm_sostituisci.txt_to.Text = ""
frm_sostituisci.Show
MyFile = ActiveWorkbook.FullName
num = 0
On Error Resume Next
Set fs = Application.FileSearch
With fs

Set FD = Application.FileDialog(msoFileDialogFolderPicker)
    With FD
        If .Show = False Then
              MsgBox "Premere ""OK"" per confermare il percorso scelto"
              Exit Sub
        End If
        Percorso = .SelectedItems(1)
    End With
.LookIn = Percorso
.Filename = "*.XLS"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count ' inizia il ciclo per iil numero dei file trovati
MyFileFound = .FoundFiles(I)
If MyFileFound <> MyFile Then
Range("a" & num + 1) = MyFileFound
num = num + 1
End If
Next
End If
End With
CONTA = Application.WorksheetFunction.CountA(Range("A1:A65000"))
FILE = ActiveWorkbook.Name
For I = 1 To CONTA
Workbooks.Open Filename:=Range("A" & I)
Cells.Replace What:=str_from, Replacement:=str_to, LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
FILE2 = ActiveWorkbook.Name
Windows(FILE2).Close (True)
Windows(FILE).Activate
Next I
Columns("A:A").Select
Selection.ClearContents
Application.ScreenUpdating = True
Range("A1").Select
   
End Sub


Poi ho creato un tasto che allego nell'immagine
Immagine

Tutto qui....
Ringrazio nuovamente tutti a presto!
Andrea
Apache84
Newbie
 
Post: 4
Iscritto il: 28/01/10 14:45

Re: Trova e Sostituisci un Valore su tutti file .xls presenti in

Postdi Anthony47 » 02/02/10 17:06

Grazie a te Andrea per aver condiviso la soluzione.

Ciao, alla prossima.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Trova e Sostituisci un Valore su tutti file .xls presenti in":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti