Confronto stringhe di testo
Hai un problema con Excel? 
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.
Vuoi Approfondire?