Confronto stringhe di testo



  • Confronto stringhe di testo
    di garziagiuseppe data: 08/04/2014 11:25:59

    Ciao a tutti, ho 2 textbox popolate da stringa di testo con caratteri e numeri. nella TextBox3 ho la seguente stringa: TBM-R-05-080
    Nella TextBox10 ho la seguente stringa: TBM-R-05-080.

    Se questi valori sono uguli o se nella TexBox3 le ultime 3 cifre sono inferiori a quelle della TextBox10, devo poter uscire dall'esecuzione della macro, sotto la parte del codice in cui eseguo questo confronto.

    Grazie in anticipo dell'aiuto
     
    If TextBox10 >= TextBox3 Then
    MsgBox ("Codice prodotto non può essere uguale o inferiore all'utlimo codice inserito"), Title:="Incongruenza"
    Exit Sub
    End If



  • di Lucas87 data: 08/04/2014 11:34:25

    Ciao.
    questo fa il controllo che hai chiesto e esce dalla macro
     
    If TextBox3.Text = TextBox10.Text Or Right(TextBox3.Text, 3) < Right(TextBox10.Text, 3) Then
        Exit Sub
    End If



  • di garziagiuseppe data: 08/04/2014 13:26:45

    Grazie Luca, ho corretto la macro, ma pur incrementando il valore delle ultime 3 cifre della TextBox3, continua ad uscirmi dalla macro non riconoscendo che TextBox3 é maggiore di TextBox10.

    Sotto la macro come da me modificata.
     
    If TextBox3.Text = TextBox10.Text Or Right(TextBox3.Text, 3) < Right(TextBox10.Text, 3) Then
        MsgBox ("Il codice prodotto non può essere uguale" & Chr(10) _
        & "o inferiore all'ultimo record registrato!"), Title:="Correggi Codice prodotto!"
        TextBox3.SetFocus
        Exit Sub
    End If



  • di Lucas87 data: 08/04/2014 14:00:37

    A me funziona:
    In textbox3 TBM-R-05-080
    in textbox10 TBM-R-05-080

    mi compare il messaggio + esce

    In textbox3 TBM-R-05-080
    in textbox10 TBM-R-05-081

    mi compare il messaggio + esce

    In textbox3 TBM-R-05-081
    in textbox10 TBM-R-05-080

    NON mi compare il messaggio e NON esce



  • di Raffaele_53 (utente non iscritto) data: 08/04/2014 15:14:04

    >>>If TextBox10 >= TextBox3 Then
    >>>non riconoscendo che TextBox3 é maggiore di TextBox10 ???

    >= maggiore e uguale
    <= Minore e uguale

    Dentro un Private Sub TextBox10_Exit(ByVal Cancel As MSForms.ReturnBoolean), funziona



  • di garziagiuseppe data: 08/04/2014 15:45:04

    Effettivamente ho provato il codice in un'altra userform e funziona. Ma in quella che serve a me non va.
    Questa sera provo ad allegare il file, in tal modo potrete aiutarmi a capire dove sbaglio.

    Grazie



  • di Lucas87 data: 08/04/2014 15:53:00

    Prova a seguire passo passo le istruzioni del codice con F9 F5 F8 e vedi a che punto si comporta in modo diverso da quello che vorresti



  • di garziagiuseppe data: 08/04/2014 16:03:08

    Ho già provato passo passo, arriva all'istruzione di verifica e poi appare il messaggio che ho inserito io.

    Non capisco



  • di Lucas87 data: 08/04/2014 16:28:25

    Non saprei...
    Prova a far inserire in alcune celle i valori

    Right(TextBox3.Text, 3)
    Right(TextBox10.Text, 3)

    per vedere se effettivamente va a prendere quelli giusti



  • di garziagiuseppe data: 08/04/2014 17:29:22

    Ho allegato il file.
    In sintesi funziona così:
    Scelgo dalla Combobox il prodotto. Selezionato il prodotto, nella textBox10 mi viene inserito l'ultimo articolo inserito in relazione al prodotto scelto. Clicco sul tasto "Incremento", per incrementare in progressione la TextBox3. Clicco su "Inserisci nuovo record", ed è Qui che riscontro il problema. La macro non prosegue pur avendo incrementato la TextBox3.



  • di Raffaele_53 (utente non iscritto) data: 08/04/2014 21:24:26

    Cerco di spiegarmi.
    La textbox10 è la terza da sinistra, quando viene caricata viene scritto un nome tipo "scrivania"
    Adesso If TextBox3.Text = TextBox10.Text non possono essere uguali
    Mentre Right(TextBox3.Text, 3) > Right(TextBox10.Text, 3) è questa è vera, pertanto OR esegue il codice.

    Io ho cambiato la riga in ComboBox1_Click ----->TextBox10.Text = TextBox3.Text
    in CommandButton2_Click ---->If TextBox3.Text <> TextBox10.Text And Right(TextBox3.Text, 3) <= Right(TextBox10.Text, 3) Then

    Oppure in altro modo
    If Mid(TextBox3.Text, 1, 8) = Mid(TextBox10.Text, 1, 8) And Right(TextBox3.Text, 3) <= Right(TextBox10.Text, 3) Then
    If TextBox3.Text <> TextBox10.Text And Right(TextBox3.Text, 3) <= Right(TextBox10.Text, 3) Then



  • di Raffaele_53 (utente non iscritto) data: 08/04/2014 21:27:20

    Ho errato l'ultima riga
    If Mid(TextBox3.Text, 1, 8) = Mid(TextBox10.Text, 1, 8) And Right(TextBox3.Text, 3) <= Right(TextBox10.Text, 3) Then



  • di garziagiuseppe data: 08/04/2014 22:35:05

    E no.... la cappellata che ho fatto è che la textbox di riferimento non è la terza da sinistra ma la seconda che ho nominato "filtroappoggio".
    Quindi nella macro "filtroappoggio" deve prendere il posto della "TexBox10", come riportato sotto.

    Perdonatemi ragazzi... ho 50 anni, non sempre sono lucido.
     
    If TextBox3.Text = filtroappoggio.Text Or Right(TextBox3.Text, 3) < Right(filtroappoggio.Text, 3) Then
        MsgBox ("Il codice prodotto non può essere uguale" & Chr(10) _
        & "o inferiore all'ultimo record registrato!"), Title:="Correggi Codice prodotto!"
        TextBox3.SetFocus
        Exit Sub
    End If



  • di Raffaele_53 (utente non iscritto) data: 09/04/2014 11:53:50

    Se non erro...
    >>> If TextBox3.Text = filtroappoggio.Text
    Non può essere Vera (se hai cliccato su incrementa), Or esegue Right(TextBox3.Text, 3) < Right(filtroappoggio.Text, 3) Then
    Questa potrebbe essere uguale e la esegue (casomai =<), se per errore NON hai cliccato su incrementa.

    Io proverei If Mid(TextBox3.Text, 1, 8) = Mid(filtroappoggio.Text , 1, 8)
    Una condizione vera
    And Right(TextBox3.Text, 3) > Right(filtroappoggio.Text , 3) Then
    Due condizioni Vere

    Else
    Msgbox
    End if
    Oppure come desideri Tu.