Originariamente inviato da Moax
Ciao ragazzi,
è possibile tramite userform fare un ricerca di una parola in decine di pagine excel e che poi in 4 textbox vengano riportati i dati di 4 celle dov'è stata trovata quella parola?
Mi spego meglio.
nella userform scrivo la parola che devo cercare.
questa ricerca deve essere fatta su oltre 100 fogli e deve cercare dalla colonna "A15 alla colonna A39"
una volta trovata la parola (che non può essere ripetuta in altri fogli) deve mandarmi un "rapportino" in un'altra userform composta da 4 textbox dove:
Textbox1= parola cercata
Textbox2= cella A4 della pagina in cui si trova la parola cercata
Textbox3= cella A5 della pagina in cui si trova la parola cercata
Textbox4= cella A6 della pagina in cui si trova la parola cercata
Vi prego aiutatemi.
ciao
Certo che e' possibile !
La cosa e' solo complicata dal fatto che i fogli (presumo) non sono nello stesso file degli UserForm, e quindi bisognera' accedere a ciascun file/foglio e ripetere la ricerca...
Per una ricerca SUL SOLO FOGLIO 1 potrebbe essere cosi' fatto, ipotizzando di avere su UserForm1 il campo Textbox1 dove scrivere la parola cercata e un CommandButton1 per avviare la ricerca, e su UserForm2 i quattro campi (Textbox1,2,3,4) dove mettere i risultati:
codice:
'da inserire nel codice dell'UserForm1
Private Sub CommandButton1_Click()
Dim parola As String
Dim i As Integer
parola = UCase$(Trim$(Me.TextBox1.Text))
With Sheets(1)
For i = 15 To 39
If UCase$(Trim$(CStr(.Cells(i, 1)))) = parola Then
UserForm2.TextBox1 = .Cells(i, 4)
UserForm2.TextBox2 = .Cells(4, 1)
UserForm2.TextBox3 = .Cells(5, 1)
UserForm2.TextBox4 = .Cells(6, 1)
UserForm2.Show
Exit Sub
End If
Next
End With
MsgBox "NON TROVATA !"
End Sub
N.B.: la sequenza Ucase$(Trim(...)) serve ad eliminare eventuali spazi iniziali e finali nelle parole, e a confrontare le parole in MAIUSCOLO, per evitare di non trovare una parola per una differenza di formattazione... (cosi' "Prova" e' trovata anche se scritta "prova" con l'iniziale minuscola)