Tutorial Il metodo FIND

Stato
Chiusa ad ulteriori risposte.

ges

Excel/VBA Expert
Amministratore
21 Giugno 2015
29.637
2.465
Como
2011MAC 365WIN
1.023
Aggiungo due esempi di ricerca in più files esterni

RICERCA DI UNA PAROLA UNIVOCA
Visual Basic:
Sub Cerca_In_Piu_Files_UNA() 'UNA SOLA PAROLA
    Dim percorso As String
    Dim nomeFile As String
    Dim WB As Workbook
    Dim sh As Worksheet
    Dim risultato As String
    Dim c As Range
    Dim r As Long
    Dim uR As Long
    Dim cercato As String
    cercato = InputBox("Scrivi la parola da cercare")
    If cercato = "" Then Exit Sub
    percorso = ThisWorkbook.Path & "\" '<= PERCORSO DA ADATTARE
    nomeFile = Dir(percorso)
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    uR = ThisWorkbook.Worksheets(1).Cells(Rows.Count).End(xlUp).Row
    Do While nomeFile <> ""
        If nomeFile <> ThisWorkbook.Name Then
            Set WB = Application.Workbooks.Open(percorso & nomeFile)
            Set sh = WB.Worksheets(1)
            With sh.Cells
                Set c = .FIND(cercato)
                If Not c Is Nothing Then
                        risultato = risultato & "File: " & Left(nomeFile, InStr(nomeFile, ".") - 1) & _
                        " - Foglio: " & sh.Name & " " & " - Cella: " & c.Address(0, 0)
                         WB.Close False
                         Exit Do
                End If
            End With
            WB.Close False
        End If
        nomeFile = Dir
    Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    If risultato <> "" Then
        MsgBox "La parola cercata è presente in:" & vbCrLf & risultato, vbInformation, "NOTIFICA"
    Else
        MsgBox "La parola cercata: " & cercato & " non è stata trovata!", vbInformation, "NOTIFICA"
    End If
End Sub

RICERCA DI PIU' PAROLE
Visual Basic:
Sub Cerca_In_Piu_Files_PIU() 'PIU' PAROLE
    Dim percorso As String
    Dim nomeFile As String
    Dim WB As Workbook
    Dim sh As Worksheet
    Dim risultato As String
    Dim firstAddress, c As Range
    Dim cercato As String
    cercato = InputBox("Scrivi la parola da cercare")
    percorso = ThisWorkbook.Path & "\" '<= PERCORSO DA ADATTARE
    nomeFile = Dir(percorso)
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Do While nomeFile <> ""
        If nomeFile <> ThisWorkbook.Name Then
            Set WB = Application.Workbooks.Open(percorso & nomeFile)
            Set sh = WB.Worksheets(1)
            With sh.Cells
                Set c = .FIND(cercato)
                If Not c Is Nothing Then
                    firstAddress = c.Address
                    Do
                        Set c = .FindNext(c)
                        risultato = risultato & "File: " & Left(nomeFile, InStr(nomeFile, ".") - 1) & _
                            " - " & " cella: " & c.Address(0, 0) & vbCrLf
                    Loop While c.Address <> firstAddress
                End If
            End With
            WB.Close False
        End If
        nomeFile = Dir
    Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    If risultato <> "" Then
        MsgBox "La parola cercata è presente in:" & vbCrLf & risultato, vbInformation, "NOTIFICA"
    Else
        MsgBox "La parola cercata: " & cercato & " non è stata trovata!", vbInformation, "NOTIFICA"
    End If
End Sub
 
  • Like
Reactions: Rubik72 and ggratis
Stato
Chiusa ad ulteriori risposte.

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!