Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Ciao a tutti.
Ho un problema nell'utilizzo del metodo find.
Dall'help VBA:
"Le impostazioni di LookIn, LookAt, SearchOrder e MatchByte vengono salvate ogni volta che si utilizza questo metodo"
Significa che se viene impostato un valore da codice, questo rimane salvato/selezionato nella finestra di dialogo della ricerca anche dopo l'utilizzo.
Es.
Imposto LookAt:=xlWhole, ovvero è come se spuntassi "Confronta intero contenuto della cella", cioè se cerco "ombre" non considera "OMBREllo".
A questo punto se vado a fare una ricerca manualmente oppure utilizzo il codice senza specificare il parametro LookAt (e voglio che mi venga indicato anche "ombrello"), comunque mantiene l'impostazione e quindi viene falsata la ricerca.
Esiste quindi un sistema per riportare alla situazione standard?
L'unica soluzione che mi viene in mente è inserire prima di end sub una riga di codice dove faccio la ricerca di un valore a caso andando a impostare ogni parametro con la configurazione iniziale.
Set r = Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
di lepat (utente non iscritto) data: 12/03/2014 09:30:58
cito dalla guida in linea
Le impostazioni di LookIn, LookAt, SearchOrder e MatchByte vengono salvate ogni volta che si utilizza questo metodo. Se non si specificano valori per questi argomenti quando si richiama il metodo la volta successiva, verranno utilizzati i valori salvati. L'impostazione di questi argomenti comporta la modifica delle impostazioni nella finestra di dialogo Trova. Quest'ultima modifica nella finestra di dialogo Trova comporta a sua volta la modifica dei valori utilizzati se si omettono gli argomenti. Per evitare problemi, impostare questi argomenti esplicitamente ogni volta che si utilizza questo metodo.
di Lucas87 data: 12/03/2014 09:43:33
Appunto....
Ma se imposto un parametro da codice e poi vado a fare una ricerca manualmente (in un altro momento e su un altro file) il parametro rimane comunque selezionato.
Il rischio è che venga fatta una ricerca non corretta perchè non ci si accorge che il parametro è flaggato. Per questo motivo mi serve avere un sistema che riporti le impostazioni di ricerca allo stato iniziale.
di Vecchio Frac data: 12/03/2014 18:29:50
Non credo che ci sia un "find reset" via codice.
Bisognerà crearselo con un find fittizio con i parametri resettati.
Si può anche utilizzare "Application.FindFormat.Clear" e "Application.ReplaceFormat.Clear" per resettare almeno i formati.