Ciao piter e benvenuto nel forum.
Ho l’ impressione che per “foglio” intendi il file completo (che invece dovrebbe essere una “cartella di lavoro” composto da N “fogli di lavoro”).
Se e’ cosi’ allora con questa macro cerchi nella directory a cui appartiene il file di partenza se ci sono gia’ file col nome simile a quello ipotizzato:
- Codice: Seleziona tutto
Sub FileCerca()
'
'
TargetFileN = "pippo" '<<<<in questa variabile il nome ipotizzato del file
SourceDir = ThisWorkbook.Path
Set fs = Application.FileSearch
With fs
.LookIn = SourceDir
.SearchSubFolders = False
.Filename = TargetFileN & ".xls"
If .Execute() = 0 Then
MsgBox "No files in " & SourceDir '<<< Nessun file presente <<<AAA
Exit Sub
End If
End With
'Trovati file, verificare:
With fs
MsgBox "Ci sono " & .FoundFiles.Count & " file(s) found." '<<<1
For i = 1 To .FoundFiles.Count
NomeFile = Replace(.FoundFiles(i), SourceDir & "\", "")
MsgBox NomeFile '<<<2
'Qui le istruzioni per confrontare il nome file predisposto '<<< File trovati, verificare <<<BBB
' con il nome corrente
Next i
End With
End Sub
Il nome ipotizzato va caricato nella variabile TargetFileN; se non ci sono file simili a quello in TargetFileN la macro esegue le istruzioni marcate <<<AAA, che dovrai modificare per adattarle alla tua necessita’; se invece ci sono file simili (es TargetFileN = “pippo”, trovati “pippolo.xls” e “superpippo.xls”) allora cadrai sulle istruzioni <<<BBB, sempre da adattare.
I MsgBox (<<<1 e <<<2) sono solo dimostrativi, li puoi togliere appena cominciano a dare fastidio.
Se invece intendevi proprio “foglio di lavoro di una cartella excel”, allora puoi adattare queste istruzioni, che restituiscono in ShNome uno dopo l’ altro i nomi di ognuno dei fogli di lavoro del file in questione:
- Codice: Seleziona tutto
For I = 1 To ActiveWorkbook.Worksheets.Count
ShNome = Sheets(I).Name
'Qui le istruzioni per confrontare il nome foglio predisposto
' con il nome corrente
Next I
Ciao.