PopAds.net - The Best Popunder Adnetwork

Ricerca dati Excel

  • 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