Condividi:        

excel macro trova file con parola all'interno del documento

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

excel macro trova file con parola all'interno del documento

Postdi turbonet » 02/04/15 11:27

cerco un aiuto per questa macro che funziona bene.
vorrei inserire la funzione che cerca una parola o una frase all'interno del documento.
ho fatto diversi tentativi e ricerche, purtroppo non riesco a realizzare la funzione che vorrei.
chiedo a voi del forum un aiuto per completare questa macro.
grazie dell'attenzione che vorrete accordarmi e delle vostre risposte per la soluzione del problema.


segue macro:
Sub CercaFile()
FoglioRep = "Foglio1" '<<< Il foglio dove saranno elencati i risultati
Perc = "E:\web\" '<<< Il Path in cui cercare
Sheets(FoglioRep).Select

Tipo = Range("A2")
Invent = Range("B2")
NSerie = Range("C2")

Range("D:D").ClearContents
myFFile = Dir(Perc & "*" & Invent & "*" & NSerie & "*")
Do
If myFFile = "" Then Exit Do
If UCase(Left(myFFile, Len(Tipo))) = UCase(Tipo) Then
If Right(myFFile, 4) = ".htm" Then _
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Rows.Count, "D").End(xlUp).Offset(1, 0), _
Address:=Perc & myFFile, TextToDisplay:=myFFile
End If
myFFile = Dir
Loop
End Sub
turbonet
Utente Junior
 
Post: 16
Iscritto il: 01/04/15 21:24

Sponsor
 

Re: excel macro trova file con parola all'interno del docume

Postdi Anthony47 » 02/04/15 23:20

Premetto che sono convinto che un comando msdos sia piu' che sufficiente, ad esempio usando il comando FINDSTR, e anche piu' veloce; comunque mi pare che mentre la tua macro cerchi una stringa nel nome del file tu vorresti fare una ricerca dentro tutti i file di una certa directory e vedere se dentro il file e' contenuta una stringa.
Per valutare le chance di eseguire l' operazione dovresti indicare il tipo di file di cui si parla.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel macro trova file con parola all'interno del docume

Postdi turbonet » 03/04/15 09:05

grazie della risposta, provo a spiegarmi meglio:
in una cartella del pc chiamata "e:\web" ci sono circa 12000 file *.htm.
la mia neccessità e di cercare i file che contengano una parola o una frase specifica per poter fare il conteggio ed altro, come ad es. la statistica ecc...
attualmente uso il cerca di windows, con questa macro velocizzo molto le operazioni che devo fare.
comunque la soluzione migliore sarebbe inserire nella macro la funzione find perchè nel foglio di excel ho delle celle con le formule, se fosse possibile, altrimenti anche un'altra soluzione che mi velocizza le operazioni.

saluti
turbonet
Utente Junior
 
Post: 16
Iscritto il: 01/04/15 21:24

Re: excel macro trova file con parola all'interno del docume

Postdi Anthony47 » 03/04/15 22:27

Pero' non ho ancora capito se ti interessa cercare i file il cui nome contenga una certa stringa (questo probabilmente lo fai gia' con la tua macro), o i file htm (qualsiasi sia il loro nome) che all' interno contengono una certa stringa, o una combinazione di queste due condizioni, o un' altra cosa ancora.
Poi, quando la condizione si avvera, vuoi che il file sia elencato su foglio Excel, o solo conteggiato?

Nota che sono convinto che "si puo' fare" con Excel, una volta chiarito "che cosa"; ma continuo a essere convinto che fatto con comandi di sistema non puo' che essere piu' veloce, senza contare che da Win7 in avanti (non so se c' era gia' in Vista) e' attiva l' indicizzazione dei documenti (compreso htm) che stravelocizza le ricerche fatte con parole chiave. Ti suggerisco di pubblicare una richiesta specifica per fare la cosa tramite comandi di sistema o nella sezione Programmazione oppure Sistemi Operativi Windows.
Excel invece dovra' aprire il documento1, cercare la parola1, chiudere e aprire il documento2 e cosi' fino al documento 12mila; quando piu' tardi vorrai cercare la parola2 ripeterai tutto il processo... Non proprio una cosa da 5 secondi a ricerca....

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel macro trova file con parola all'interno del docume

Postdi turbonet » 04/04/15 11:38

salve a tutti, grazie della risposta,
cercare i file il cui nome contenga una certa stringa non e' importante.
a me interessa cercare file *.htm che all' interno contengono una certa stringa o frase
poi, quando la condizione si avvera, voglio che il file sia elencato su foglio Excel, ed esattamente nella colonna "D"
voglio provare prima con excel, se i risultati sono scadenti, scriverò nelle altre aree, come comandi di sistema, Programmazione, Sistemi Operativi Windows.
ciao.
turbonet
Utente Junior
 
Post: 16
Iscritto il: 01/04/15 21:24

Re: excel macro trova file con parola all'interno del docume

Postdi enrico43 » 04/04/15 22:38

Ma scusa, dove sta cosa si deve cercare, lettura del pensiero? (E daie) o forse quello che c'è in A2 B2 e C2. Poi cerchi una sola volta la ricorrenza nei file mettendola nella colonna D, perchè se fai un altra ricerca si cancella il contenuto della colonna.
Nei files htm c'è solo testo o anche numeri e formule, perchè la ricerca è diversa.
Colgo l'occasione per ricambiare gli auguri di Buona Pasqua, estendendoli ai Mod ed a tutto il forum.
Ciao
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel macro trova file con parola all'interno del docume

Postdi Anthony47 » 05/04/15 01:23

Leggi le considerazioni di enrico43, sopra.

Ho sviluppato quanto ho capito; trattandosi di materiale di dubbia utilita' cerco di farla semplice...

Parti da un foglio su cui crei questa struttura di informazioni:
Immagine
upload
Cioe'
-in B1 il percorso su cui cercare, compreso la lettera del drive
-in B2 scrivi il tipo di file; la ricerca sara' fatta aggiungendo il carattere jolly "*", es: htm*
-da A8 in giu' scrivi le stringhe da ricercare; ne puoi inserire piu' di una, e la logica e' di OR, cioe' basta una stringa trovata per concludere positivamente la ricerca.

Poi inserisci nel progetto vba del file questa macro:
Codice: Seleziona tutto
Sub findStr()
Dim IFound, I As Long, myF As String, myPath As String, myType As String, LastA As Long
'
myPath = Range("B1") & "\"
myType = Range("B2") & "*"
'
LastA = Cells(Rows.Count, 1).End(xlUp).Row
'
If Mid(myPath, 2, 1) = ":" Then ChDrive Left(myPath, 1)
myF = Dir(myPath & "*." & myType)
Application.EnableEvents = False
With ThisWorkbook.ActiveSheet
    While myF <> ""
        Application.ScreenUpdating = True: DoEvents
        .Range("B4") = .Range("B4") + 1
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        Workbooks.Open myPath & myF
        Application.DisplayAlerts = True
        For I = 8 To LastA
        mylook = .Cells(I, 1).Value
            Set IFound = ActiveSheet.Cells.Find(what:=mylook, LookIn:=xlValues, LookAt:=xlPart)
            If Not IFound Is Nothing Then
                .Cells(Rows.Count, 4).End(xlUp).Offset(1, 0) = myPath & myF
                .Range("B5") = .Range("B5") + 1
                Exit For
            End If
        Next I
        ActiveWorkbook.Close False
    myF = Dir
    Wend
End With
Application.EnableEvents = True
MsgBox ("Completato")
End Sub

Fatto questo torni su Excel, compili i parametri, e lanci la macro findStr.
Durante l' esecuzione le celle B4 e B5 indicano quanti file sono stati "cercati" e quanti "trovati", e in colonna D vengono segnalati i file "trovati"

Prima prova con un centinaio di file per farti un'idea dei tempi.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "excel macro trova file con parola all'interno del documento":


Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti