Condividi tramite

cerca testo in più file

Anonimo
2013-08-02T17:23:52+00:00

Ciao a tutti,

dal codice che vi posterò cerco una parola in un file txt di cui specifico il percorso, e mi riporta una msgboxcon l'intera riga cui si trova la parola

tuttavia mi servirebbe cercare una parola in TUTTI i files EXCEL di una cartellaindicata.

Sub CERCA_NEI_FILES()

Dim NomeFile As String

NomeFile = "C:\AA\q.TXT"

Dim TestoRicercato

TestoRicercato = "*to*"

Const ForReading = 1, ForWriting = 2, ForAppending = 3

Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 'predefinita=-2 Unicode=-1 ASCII=0

Dim FileScripting, File, TestoStreaming

Set FileScripting = CreateObject("Scripting.FileSystemObject")

If FileScripting.FileExists(NomeFile) Like "Vero" Then

   Set File = FileScripting.GetFile(NomeFile)

   Set TestoStreaming = File.OpenAsTextStream(ForReading, TristateFalse)

   Dim Linea

   Do While TestoStreaming.AtEndOfStream <> True

       Linea = TestoStreaming.ReadLine

       If Linea Like TestoRicercato Then

          MsgBox Linea

       End If

   Loop

   TestoStreaming.Close

Else

   MsgBox "Il file non esiste"

End If

qual'è il comando da utilizzare?

grazie per l'aiuto

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-08-05T13:09:59+00:00

Ho effettuato qualche test e le relative correzzioni:

Option Compare Database

Option Explicit

Function TrattaExcel()

' aggiungi a riferimenti Microsoft Excel xxx Object Library

    Dim xlApp   As Excel.Application

    Dim xlBook  As Excel.Workbook

    Dim xlSheet As Excel.Worksheet

    Dim wRiga As Long

    Dim wColonna As Long

    Dim Campo As String

    Set xlApp = CreateObject("Excel.Application")

    xlApp.Visible = False         ' se non vuoi vedere a video l'xls che viene aperto

    Set xlBook = xlApp.Workbooks.Open("D:\MyPgm\Prova.xls")

' Anche qui se nei vari file pensi di avere più fogli devi ciclare su più

' su tutti i xlBook.Worksheets.Count -1 puntando ciascuno con xlBook.Worksheets(ind)

    Set xlSheet = xlBook.Worksheets("Foglio1")

    For wRiga = 1 To xlSheet.Cells.Rows.Count - 1

        For wColonna = 1 To xlSheet.Cells.Columns.Count - 1

             Campo = xlSheet.Cells(wRiga, wColonna)

       Next wColonna

    Next wRiga

Chiudi:

    xlBook.Close SaveChanges:=False

    xlApp.Quit

    Set xlSheet = Nothing

    Set xlBook = Nothing

    Set xlApp = Nothing

End Function

Ciao Mimmo

La risposta è stata utile?

0 commenti Nessun commento

8 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-08-05T09:19:14+00:00

    Ciao Andrea,

    in effetti, non avevo considerato questo piccolo particolare :-)

    Quindi con l'aiuto dell'esempio di Mimmo e le informazioni che puoi trovare qui http://msdn.microsoft.com/en-us/library/office/ff839746.aspx  potresti cavartela.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-08-05T09:07:30+00:00

    Ciao Andrea,

    nel forum puoi trarre spunto dal seguente link:

    http://answers.microsoft.com/it-it/office/forum/office_2010-access/leggere-foglio-excel-da-vba/cb0b3952-61d7-48a4-b763-725a7bb05760

    con la parola chiave 'Excel' comunque trovi anche dell'altro.

    Ciao Mimmo.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-08-05T08:28:33+00:00

    Ciao Cinzia, grazie per l'aiuto.

    Purtroppo il principale problema è che non legge i files excel ma solo i txt.

    Ho tentato anche una soluzione con input #1, ma anche lui non si addentra nei files xls/xlms

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-08-05T07:57:53+00:00

    Ciao AndreaM

    Per fare quello che vuoi basta avere l'elenco di tutti i files Excel presenti in una determinata cartella e poi applicare a ciascun file la routine che hai già scritto. 

    Qui trovi  un paio di suggerimenti che potrebbero esserti utili su come enumerare i files presenti in una cartella http://www.freevbcode.com/ShowCode.asp?ID=1331

    La risposta è stata utile?

    0 commenti Nessun commento