Tasto ricerca in fogli excel
Hai un problema con Excel? 
Tasto ricerca in fogli excel
di Alexander84 (utente non iscritto) data: 27/05/2013 19:28:45
Ciao ragazzi,
rieccomi qui a chiedervi nuovamente aiuto.
Vengo al sodo.
Ho un file excel con diversi fogli, all'interno dei quali ci sono dei codici divisi per categorie.
Nel primo foglio voglio inserire una textbox e un pulsante di ricerca che vada a cercarmi il codice completo (o parte del codice) all'interno dei fogli e mi apra automaticamente il foglio contenente il codice cercato.
E' possibile inserire il tutto all'interno del primo foglio, senza utilizzare una userform?
In allegato un esempio, con... praticamente nulla.
Grazie mille.
di totygno71 data: 27/05/2013 20:25:37
Ciao Alexander
ti rispondo io...
la risposta è si... si può fare tutto senza l'utilizzo di userform aggiuntive...
Ho visto il tuo file...ma di codici da ricercare neanche l'ombra... dove sono?
di mabolsie (utente non iscritto) data: 27/05/2013 20:34:09
Ciao alexander e totigno71, non capisco la testè frase:
"Nel primo foglio voglio inserire una textbox e un pulsante di ricerca che vada a cercarmi il codice completo (o parte del codice) all'interno dei fogli e mi apra automaticamente il foglio contenente il codice cercato."
potresti spiegarmela un pò meglio , la stessa domanda la giro a totigno se per caso l'ha capita.
Grazie ciao max
di totygno71 data: 27/05/2013 20:47:12
Ciao mab
io fin li ci sono arrivato
se apri il file nel primo foglio c'è una textbox e un pulsante
credo che l'amico alex vorrebbe inserire nella textbox il codice da ricercare premendo il puslante. il problema è che non si capisce dove sono i codici da ricercare...
di mabolsie (utente non iscritto) data: 27/05/2013 20:50:40
grazie totygno adesso mi è più chiara la situazione se non erro il ns amico vorrebbe inoltre aprire il foglio contenente il famigerato codice.
ciao max
di Alexander84 (utente non iscritto) data: 27/05/2013 21:12:45
Si ragazzi, scusate le poche informazioni ma ero di fretta.
Il file l 'ho fatto al momento ed é praticamente vuoto.
In pratica nel primo foglio vorrei inserire un pulsante che vada a cercare negli altri fogli la stringa inserita dall'utente nella textbox. Una volta trovato il codice mi deve semplicemente aprire il relativo foglio.
di totygno71 data: 27/05/2013 21:16:37
si ma dove deve cercare sti codici? in qualsiasi cella dei vari fogli oppure sono tutti in una determinata colonna?
di mabolsie (utente non iscritto) data: 27/05/2013 21:45:00
@totygno
ti allego il file come penso debba funzionare però il codice non fa quello che vogliamo cioè fermarsi dove trova il codice, dagli un'occhiata tu ed aggiustalo
Ciao Max
di Alexander84 (utente non iscritto) data: 27/05/2013 22:29:31
Deve cercare in qualsiasi cella della cartella di lavoro, qualora forse possibile.
di Alexander84 (utente non iscritto) data: 27/05/2013 22:31:51
Grazie Totygno.
Gli darò un'occhiata non appena posso.
Grazie mille x la disponibilità.
di Alexander84 (utente non iscritto) data: 27/05/2013 22:33:52
Pardon, grazie a Mabolsie x il file..
di mabolsie (utente non iscritto) data: 27/05/2013 22:46:25
@ Alexander
...mi sto spaccando la testa per far fermare il ciclo quando trova la casella con il codice in txbox.
provaci anche tu
mi sembra che il succo del problema si centrato, per far cercare in qualsiasi cella non c'è problema basta modificare il Range nel codice
se riesco ti allegherò il codice
p.s. speriamo che si aggreghi qualche cervellone
Ciao Max
di totygno71 data: 28/05/2013 09:55:17
Ho modificato come da richiesta il file di max
ho tolto la textbox e inserito il vaolre da cercare in D2 solo perchè ma si poteva tranquillamente lasciare la textbox
@ max
quando si dimensionano le variabili bisognerebbe scrivere (Dim nf As Integer, i As Integer) e non
(Dim nf, i As Integer) perchè cosi nf viene dimesionata come variant e non integer
ci potrebbero essere anche altri aggiustamenti che lascio a te fare come proprietario del codice ^_^
di mabolsie data: 28/05/2013 18:18:31
@ toty
grazie della correzione terrò presente, il mio codice è open source quindi chiunque può fare quel che vuole, quindi ti invito ad apportare delle migliorie cosi che possa arricchire il mio bagaglio culturale.
Ciao Max
di totygno71 data: 28/05/2013 18:56:52
Open source ^_^
di Alexander84 (utente non iscritto) data: 03/06/2013 18:29:14
Ho avuto solo oggi modo di vedere l'allegato.
Non capisco come mai ma a me non funziona, mi visualizza sempre il terzo foglio. :(
di mabolsie data: 03/06/2013 21:03:12
Ciao Alexander ti allego il file del mio codice (non funzionante) modificato da totygno(funzionante).
Scaricatelo e provalo
Ciao Max
di Alexander84 (utente non iscritto) data: 03/06/2013 21:03:56
Ho inserito l'ultima versione, quella senza textbox, ma mi incasino con i vari exit for, end if, exit sub, etc.
Vorrei solo inserire un messaggio in caso in cui il codice non venga trovato.
Chi mi suggerisce una buona guida su VB?
di Alexander84 (utente non iscritto) data: 03/06/2013 21:08:08
Mi hai anticipato di qualche minuto.
Attualmente, se il codice inserito è inesistente, il programma apre sempre l'ultimo foglio.
Io vorrei evitare ciò e in particolare vorrei che restituisse un messaggio rimanendo sullo stesso foglio in cui si trova il pulsante di ricerca.
di mabolsie data: 03/06/2013 21:59:19
Ti allego il nuovo codice copialo su quello vecchio e provalo
Ciao Max
Option Explicit
Sub cercachetrovi()
Dim nf As Integer, i As Integer
Dim cl As Range, cod As Variant
cod = [D2]
'###############################
'Nuovo passo, controlla che in d2 ci sia il codice
If cod = "" Then
MsgBox "Attenzione manca il codice !!!"
GoTo trovai:
End If
'###############################
Application.ScreenUpdating = False
nf = Sheets.Count
For i = 2 To nf
Sheets(i).Select
For Each cl In Range("A1:H25")
If cl = cod Then
cl.Select
MsgBox "L'ho trovai ^_^"
GoTo trovai:
Exit For
Exit Sub
End If
Next
Next
Application.ScreenUpdating = True
Exit Sub
trovai:
End Sub |
di mabolsie data: 03/06/2013 22:07:50
ho aggiunto un controllo in più ti controlla anche che nella cella del codice sia inserito solo un numero.
Ciao Max
Sub cercachetrovi()
Dim nf As Integer, i As Integer
Dim cl As Range, cod As Variant
cod = [D2]
'#############################################
'nuovo passo, controlla anche che nella cella ci sia solo un numero
If Not IsNumeric(cod) Or cod = "" Then
MsgBox "Attenzione manca il codice !!!"
GoTo trovai:
End If
'#############################################
Application.ScreenUpdating = False
nf = Sheets.Count
For i = 2 To nf
Sheets(i).Select
For Each cl In Range("A1:H25")
If cl = cod Then
cl.Select
MsgBox "L'ho trovai ^_^"
GoTo trovai:
Exit For
Exit Sub
End If
Next
Next
Application.ScreenUpdating = True
Exit Sub
trovai:
End Sub
|
di Alexander84 (utente non iscritto) data: 04/06/2013 13:48:37
Il codice preferisco tenerlo alfanumerico così posso eseguire la ricerca anche utilizzando le descrizioni.
Se nel ciclo if, volessi inserire una msgbox, che avvisa se un codice non viene trovato, in che punto la inserisco?
di Vecchio Frac data: 04/06/2013 16:47:55
cit. "GoTo trovai:"
---> uffaaaaaa ^_^
di mabolsie data: 04/06/2013 18:30:53
@ VF
Ciao Vecio, cosa vuol dire Uffaaaaaa ?!?
Ciao Max
di Vecchio Frac data: 04/06/2013 18:47:24
LOL,
è solo la mia nota antipatia per l'uso di GoTo e GoSub...
Via tutte le label e le etichette! uscite semplicemente con Exit se dovete interrompere il codice in quel punto.
If Not IsNumeric(cod) Or cod = "" Then
MsgBox "Attenzione manca il codice !!!"
Exit Sub
End If
di mabolsie data: 04/06/2013 18:55:35
@VF
Ok ! Grazie
Ciao Max
di mabolsie data: 04/06/2013 23:29:50
Ciao Ale...
Ti ho allegato il nuovo file con le tue richieste l' ho arricchito un pò vedi se ti piace ma sopratutto se funziona come vuoi tu.
p.s. ho accontentato VF
Vuoi Approfondire?