Ciao a tutti ! Ho realizzato una tabella di dati
composta da quattro colonne , in cui inserisco una serie di parole
es. (A1:D500). Vorrei ricercando una data parola che mi si aggiunga
anche l'intera riga a cui appartiene la parola cercata . Tutto
sarebbe facile con Cerca.Orizz . Ora, l'istruzione che ho realizzato
mi consente solo di sapere in quale cella trovo la parola.
questa è l'istruzione : Private Sub CommandButton2_Click()
Worksheets(1).Activate Dim CL As Object Set Zona =
ActiveSheet.UsedRange Cerca = InputBox("Digita cosa cerchi")
If Cerca = "" Then Exit Sub For Each CL In Zona If
CL.Value Like "*" & Cerca & "*" Then CL.Select Dove
= CL.Address(rowabsolute:=False, columnabsolute:=False) Dim
domanda As Integer domanda = MsgBox("trovato" & Cerca &
"in" & Dove & ". Vuoi cercare ancora?", vbYesNo) If
domanda = vbNo Then Exit Sub End If End If Next
End Sub Un aiutino ? Grazie |
|
| di ENZO |
HO FATTO UNA VARIAZIONE, SE HO CAPITO IL TUO
PROBLEMA FAI SAPERE SE VA BENE
Application.ScreenUpdating = False
Worksheets(1).Activate Dim CL As Object Set Zona =
ActiveSheet.UsedRange Cerca = InputBox("Digita cosa cerchi")
If Cerca = "" Then Exit Sub For Each CL In Zona If
CL.Value Like "*" & Cerca & "*" Then CL.Select
SendKeys "{left 800}", True SendKeys "+{right 100}", True
SendKeys "+{end}+{right}", True Application.ScreenUpdating =
True Dove = CL.Address(rowabsolute:=False,
columnabsolute:=False) Dim domanda As Integer domanda =
MsgBox("trovato" & Cerca & "in" & Dove & ". Vuoi
cercare ancora?", vbYesNo) If domanda = vbNo Then Exit Sub
End If End If Next Application.ScreenUpdating = True
End Sub |
|
| di ENZO |
| DOVREBBE TROVARE LA PAROLA RICERCATA ED
EVIDENZIARTI ANCHE LA RIGA |
|
| di APOBEN64 |
Ciao Enzo, intanto approfitto dell'occasione per
farti i complimenti per la tua fattiva e competente attività in
questo forum; passando al problema in effetti mi servirebbe proprio
associare alla parola anche l'intera riga. Come noterai se
predisponi un foglio con queste istruzioni ho il messaggio di
risposta alla parola cercata e nel foglio (1) la riga in cui questa
è contenuta si evidenzia. Il problema stà nell'inerire in un altra
msgbox anche la riga associata. Ma come fare? |
|
| di ENZO |
INIZIALMENTE DOVRESTI UTILIZZARE UNA TEXT BOX DOVE
NELLA PROPRIETAì VISIBLE LA RENDI NON VISIBILE (LA OTTERRAI VISIBILE
SOLO SE TROVI LA PAROLA CHE CERCHI). VISTO CHE UTILIZZI 4 RIGHE
E RIESCI AD INDIVIDUARE IL SETTORE (A1 O A2 ETC) DOVE SI TROVA LA
PAROLA DOVRESTI RIUSCIRE AD ASSOCIARE ALLA TEXTBOX ( IPOTIZZIAMO CHE
SO CHE LA PAROLA E' IN A1 SCRIVO NELLA MACRO TEXTBOX1.TEXT= RANGE
("A1").TEXT & RANGE ("A2").TEXT ETC ETC) I VALORI DELLE 4 RIGHE
CORRISPONDENTI. E' UN PO UN CASINO COME SPIEGAZIONE - SPERO DI
ESSERE STATO CHIARO
|
|
| di Apoben64 |
Enzo, è quellO che voglio realizzare :alla ricerca
della "parola", mi viene associato come risulato anche le righe
delle altre 3 colonne. Ma nello specifico , intendo come codice,
quali istruzionI debbo usare ? Di seguito ti inserisco un'aLtra
soluzione che , come da te suggerito mi permette di inserire la
risposta alla "parola" cercata in una textbox inserita in un form.
ma oltre a questo non riesco ad andare avanti. "Private Sub
CommandButton3_Click() Worksheets(1).Activate Dim CL As
Object Dim Zona Dim CERCA, RifCella Dim Stringa, Parola,
Dove Set Zona = Worksheets(1).UsedRange CERCA=
InputBox("Cosa Cerchi?", "Inserisci la parola da cercare")
If CERCA = "" Then Exit Sub
For Each CL In Zona
Stringa = CL.Value Parola = CERCA
Dove =
InStr(Stringa, Parola) If Dove Then UserForm1.Show
CL.Select RifCella = CL.Address(rowabsolute:=False,
columnabsolute:=False) UserForm1.Label1.Caption = "In " &
RifCella UserForm1.TextBox1 = CL.Value
UserForm1.TextBox1.SelStart = Dove - 1
UserForm1.TextBox1.SelLength = Len(Parola)
'UserForm1.TextBox1.SetFocus 'Dim dammi As Integer dammi
= MsgBox("Proseguire la ricerca ?", vbYesNo) If dammi = vbNo
Then CL.EntireRow.Select Exit Sub End If If CL =
Zona.SpecialCells(xlCellTypeLastCell) Then GoTo 10 End If
Next 10: MsgBox "Ricerca Terminata" End Sub
C'è speranza ? Un grazie comunque !!!!! |
|
| di Mauro |
Ho letto un po' la discussione, mi sembra di capire
che ti serve l'indice e il testo della riga corrispondente alla
cella cercata? dopo: CL.select
inserisci: riga =
Selection.Row colonna = Selection.End(xlToRight).Column
RigaTesto = "" For indice = 1 To colonna RigaTesto =
RigaTesto & cell(riga, indice).Text Next
"riga"
contiene il numero di riga, "RigaTesto" contiene il testo di tutta
la riga. |
|
| di apoben64 |
| Ciao Mauro, ho applicato l'istruzione al primo
codice scritto , ma senza il risultato che vorrei ottenere. Mi
spiego, trovata la parola contenuta nella cella B1 , vorrei sapere
anche il testo contenuto A1,C1,D1 (cioè nella riga che compone la
mia tabella) in un msg o come nella secondo codice nel form .Grazie
ancora ! |
|
| di Mauro |
| è semplice! con il codice che ti ho dato basta che
salvi rigatesto in un array piuttosto ke in una variabile. |
|
| di apoben64 |
A beneficio dell'argomento, propongo anche la
seguente soluzione :
Option Explicit Private Sub
CommandButton1_Click() Dim CL As Object Dim Zona As
Excel.Range Dim Cerca As String Dim Dove As String Dim
domanda As Integer Dim txtTesto As String Dim I As Byte
txtTesto = "" Worksheets(1).Activate Set Zona =
ActiveSheet.UsedRange ZAVORRA_1: Cerca = InputBox("Digita
cosa cerchi") If Cerca = "" Then Exit Sub
Dove =
Zona.Find(Cerca).Row For I = 1 To 4 Step 1 txtTesto =
txtTesto & " " & Cells(Dove, I).Value Next domanda =
MsgBox("trovato """ & Cerca & """ nella riga " & Dove
& ". Tutte le parole """ & txtTesto & """ Vuoi
cercare ancora?", vbYesNo) If domanda = vbNo Then Exit Sub
Else GoTo ZAVORRA_1 End If Exit Sub NONTROVATO:
domanda = MsgBox("Non trovato!") Resume ZAVORRA_1 End
Sub Il codice funziona, domanda, come potrei farlo interagire
con l'uso di un form ? |
|
| di Mauro |
Ciao Luca, la routine che hai descritto può
essere collegata ad un controllo CommandButton inserito direttamente
nel foglio o, allo stesso modo, inserito in una UserForm. Nella
tua routine però ci sono vari errori: Se non trova la parola
cercata va in Error non gestito e non finisce su NONTROVATO:! ...
poi manca una EndIf. Inoltre è poco chiaro usare i cicli con i
GoTo. Meglio usare Do... Loop. Consiglio sempre di mantenere
pulito il codice. Questo vi aiuta a fare meno errori e guadagnare
tempo!!! |
|
| di apoben64 |
| Grazie Mauro, come al solito sei puntuale e
preciso, mi metto al lavoro. Un salutone |