Form di ricerca dati

Anonimo
2023-11-04T09:53:11+00:00

Salve

Ho una form di ricerca dati

Vorrei incrementarla aggiungendo anche l'inserimento sempre dalla stessa form

Vi invio il file da one drive

la form attualmente mi da errore

"errore di compilazione variabile non definita"

Private Sub cmdCinema_Click()

    If Txtcinema.Text = "" Then 

        MsgBox "Inserire dati per la ricerca!" 

        Exit Sub 

    End If 

    ActiveSheet.UsedRange.Select 

    **riga = Worksheets(1).UsedRange.Rows.Count** 

    For indi = 2 To riga 

        If Range("B" & indi) <> Txtcinema.Text Then 

            Range("B" & indi).Select 

            Selection.EntireRow.Hidden = True 

        End If 

    Next 

End Sub

formdiricerca.xlsm

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2023-11-04T12:46:01+00:00

    l'uso di Option Explicit non è affatto una brutta abitudine

    vero

    ma se non dichiari niente.....e le macro del file non hanno un

    Dim pincopallo As stanco neanche a pagarlo......cosa lo metti a fare?

    a mandare in debug la macro😁

    vbaista del piffero🤣

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2023-11-04T12:15:00+00:00

    Sarebbe il caso di pulire il codice e dichiarare le variabili, l'uso di Option Explicit non è affatto una brutta abitudine, anzi:

    Private Sub cmdCinema_Click()  
    
    Dim riga As Long, indi As Long
    
            If Txtcinema.Text = "" Then  
    
               MsgBox "Inserire dati per la ricerca!"  
    
               Exit Sub  
    
            End If  
    
            ActiveSheet.UsedRange.Select  ' questa potresti evitarla
    
            riga = Worksheets(1).UsedRange.Rows.Count ' anche questa
            ' UsedRange ha il difetto di non definire sempre il range realmente usato
            ' inoltre assegnare a riga l'ultima, ha poco senso in quanto la usi una sola volta
            ' prova per curiosità l'istruzione seguente che ti ho messo nel ciclo For
    
            For indi = 2 To cells(Rows.Count, 1).End(xlUp).Row
    
                If UCase(Cells(indi, 2).Value) <> UCase(Txtcinema.Text) Then Range("B" & indi).EntireRow.Hidden = True
    
            Next  
    
    End Sub
    

    Oltre ai commenti nel codice, ti ho anche evidenziato due modi per usare la cella, sia con Cells che con Range, perché nel caso di colonne numeriche, la prima ti tornerà più utile.

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2023-11-04T10:57:23+00:00

    ciao

    certo che puoi basta aggiungere quello che ti serve

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-11-04T10:49:35+00:00

    Si la modifica ha risolto il problema

    Ora, se voglio aggiungere dati dalla form è possibile farlo senza cancellare quelli che vi sono già?

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2023-11-04T10:11:29+00:00

    Ciao

    non hai dichiarato la variabile

    leva quel

    Option Explicit

    sopra

    e sostituiscilo con

    Option Compare Text....................che ti permette di scrivere sia maiuscolo che minuscolo

    oppure aggiungi

    Option Compare Text e dichiara la variabile Riga

    La risposta è stata utile?

    0 commenti Nessun commento