Ricerca Dati

Storico discussioni

Ricerca dati di apoben64
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

Cognolato Studio © 2005