Ricerca di numeri in textbox

Anonimo
2021-03-14T11:35:39+00:00

Buon giorno a tutti.

Ho trovato un tutorial che spiegava come creare una TextBox per il filtro di ricerca in un foglio Excel, funziona bene con il testo ma non con i numeri.

Come posso modificare il codice VBA per far si che funzioni anche con quelli ?


Private Sub Frequenza_Change()
Range("A19").AutoFilter field:=1, Criteria1:=Frequenza.Text & "*"
If Frequenza.Text = "" Then
Selection.AutoFilter
End If

End Sub

Così com'è, ho visto che, per far riconoscere un testo parziale, devo utilizzare il carattere jolly "*", è possibile evitare l'asterisco e far si che automaticamente mi faccia la ricerca anche se con pochi caratteri ?

Su questo foglio lavoreranno colleghi che sanno a mala pena aprire un foglio Excel, figuriamoci fargli capire ed accettare di utilizzare il carattere jolly per le ricerche.

Grazie anticipatamente per le risposte.

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

16 risposte

Ordina per: Più utili
  1. Anonimo
    2021-03-16T14:00:11+00:00

    Esempio di prova depurato di molti dati e pulsantini vari.

    https://1drv.ms/x/s!Ap66BUzzcpkrcwmsI6NUbJ0\_xkg?e=OF5q0o

    Ciao

    Ciao Max,

    Sostituisci il codice per i due TextBox con:

    '========>>

    Option Explicit

    '-------->>

    Private Sub Descrizione_Change()  'Descrizione_Change()

        Dim vVal As Variant

        vVal = Descrizione.Text & "*"

        Me.Range("A19").AutoFilter Field:=3, Criteria1:=vVal

    End Sub

    '-------->>

    Private Sub Frequenza_Change()

        Dim vVal As Variant

            vVal = Frequenza.Text

            Me.Range("A19").AutoFilter Field:=1, Criteria1:=vVal

            If vVal = "" Then

                Me.Range("A19").AutoFilter

            End If

    End Sub

    '<<========

    Nota che il valore nel Frequeza TextBox deve essere inserito nella forma 430.800,0, ovvero includendo il punto e la virgola. Nota inoltre che il filtro automatico rispetta i criteri inseriti in entrambi i TextBox. Se tu desideri che i criteri dei due TextBox operino in modo indipendente, sarà necessario adattare il codice sopra per cancellare inizialmente il filtro automatico.

    Potresti scaricare il mio file di prova Max20210316.xlsm

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2021-03-15T18:43:28+00:00

    Esempio di prova depurato di molti dati e pulsantini vari.

    https://1drv.ms/x/s!Ap66BUzzcpkrcwmsI6NUbJ0\_xkg?e=OF5q0o

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-03-15T13:16:25+00:00

    Grazie Norman per la risposta.

    Non funziona il riconoscimento numerico, appena inserisco la prima cifra, azzera tutte le righe del foglio, adattando il codice alla colonna 3 (che contiene testo) non funziona il carattere Jolly.

    Il codice suggerito funziona per me.

    Ti chiederei gentilmente di caricare il file problematico, dopo averlo depurato dei dati sensibili, su un servizio di condivisione di file, ad esempio Microsoft OneDrive o DropBox, e postare un link al file in una risposta qui.

    Per caricare il file su Microsoft OneDrive, vedi:

       Condividere file e cartelle di OneDrive

    Per caricare il file su DropBox, vedi:

    Come faccio a condividere file e cartelle in Dropbox?

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2021-03-14T16:25:47+00:00

    Grazie Norman per la risposta.

    Non funziona il riconoscimento numerico, appena inserisco la prima cifra, azzera tutte le righe del foglio, adattando il codice alla colonna 3 (che contiene testo) non funziona il carattere Jolly.

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2021-03-14T12:28:28+00:00

    Ho trovato un tutorial che spiegava come creare una TextBox per il filtro di ricerca in un foglio Excel, funziona bene con il testo ma non con i numeri.

    Come posso modificare il codice VBA per far si che funzioni anche con quelli ?


    Private Sub Frequenza_Change()
    Range("A19").AutoFilter field:=1, Criteria1:=Frequenza.Text & "*"
    If Frequenza.Text = "" Then
    Selection.AutoFilter
    End If

    End Sub

    Così com'è, ho visto che, per far riconoscere un testo parziale, devo utilizzare il carattere jolly "*", è possibile evitare l'asterisco e far si che automaticamente mi faccia la ricerca anche se con pochi caratteri ?

    Su questo foglio lavoreranno colleghi che sanno a mala pena aprire un foglio Excel, figuriamoci fargli capire ed accettare di utilizzare il carattere jolly per le ricerche.

    Ciao MaxTheRed,

    Prova qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Private Sub Frequenza_Change()

        Dim vVal As Variant

        With Frequenza

            If IsNumeric(.Text) Then

                vVal = CDbl(.Text)

            Else

                vVal = .Text & "*"

            End If

            Range("A19").AutoFilter field:=1, Criteria1:=vVal

            If .Text = "" Then

                Selection.AutoFilter

            End If

        End With

    End Sub

    '<<========

    Nota che il carattere jolly viene aggiunto dal codice alle ricerche di testo e non necessita di alcun inserimento da parte dell'utente.

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento