test logique entre 7 textbox

  • Initiateur de la discussion Initiateur de la discussion CMoa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CMoa

XLDnaute Occasionnel
Bonsoir le Forum 🙂
j'ai une macro qui teste les textbox s'ils contiennent des chiffres entre 1 et 12 et selon le résultat la macro envoie vers la macro suivante.
1er test
If texbox1 = "" Then Me.Hide
If TextBox1 <> "" Then 'GoTo 1
If TextBox1 = 1 Then GoTo 1
If TextBox1 = 2 Then GoTo 2
If TextBox1 = 3 Then GoTo 3
If TextBox1 = 4 Then GoTo 4
If TextBox1 = 5 Then GoTo 5
If TextBox1 = 6 Then GoTo 6
If TextBox1 = 12 Then GoTo 12
suite
1 cal.......

j'ai reproduit cet exemple pour les 7 textbox de mon UserForm.
Je sais c'est pas très élégant mais je fais avec les moyens du bord.
Le souci c'est que je n'arrive pas à avoir la logique suivante:
Si le textbox1 est égal à 1 alors call macro1;si le textbox 1 est égal à 3 call macro 3 et si le textbox 1 est vide alors quitter la macro etc pour tous mes texbox.
J'utilise Doevents parce-que la macro met un temps certain 🙂 à s'exécuter.
Merci d'avance pour l'aide sur l'articulation de cette macro.
 
Re : test logique entre 7 textbox

J'essaye de t'apporter une modeste contribution...

Pourquoi ne pas utiliser une instruction Select Case comme ceci :

Vava = TextBox1.Value

Select Case vava

Case 1
macro1
Case 2
macro2
....
Case ""
MsgBox ("C'est rien")
End Select

et ainsi de suite pour toute tes textbox..
Tu peux aussi faire une boucle sur tes textbox, ce qui évite d'écrire 7 fois les mêmes lignes...

A++
 
Re : test logique entre 7 textbox

Bonsoir Blafi
Je ne sais pas faire cette boucle.
En fait ce que j'obtiens c'est l'exécution de la primière macro liée au premier textbox puis la macro s'arrête.
For a = 1 To 7
If texbox1 = "" Then Me.Hide
If TextBox1 <> "" Then 'GoTo 1
If TextBox1 = 1 Then GoTo 1
If TextBox1 = 2 Then GoTo 2
If TextBox1 = 3 Then GoTo 3
If TextBox1 = 4 Then GoTo 4
If TextBox1 = 5 Then GoTo 5
If TextBox1 = 6 Then GoTo 6
If TextBox1 = 12 Then GoTo 12


1 Workbooks("nom classeur.xls").Activate
Sheets("nom de feuille").Select
Workbooks("nom classeur.xls").Unprotect "zaza"
Call CreerClasseurs01
Call copie_feuille_tata
Call import_verrouillage_tous_classeurs
Call affecter_macros_boutons
Call renomer_VBA
Me.Hide
[L3] = 1

DoEvents
End If
If TextBox1.Value <> 1 Or TextBox1.Value <> 2 Or TextBox1.Value <> 3 Or TextBox1.Value <> 4 _
Or TextBox1.Value <> 5 Or TextBox1.Value <> 6 Or TextBox1.Value <> 12 Then
OK.Caption = "Annuler"
Me.Hide
End If
If TextBox1 = "" Then
Else: TextBox2.Visible = False
'Exit Sub
End If
Unload Me
DoEvents
Next
ici le second textbox etc....

lorsque je saisi 2 valeurs dans les 2 premiers textbox,seul le 1er textbox est traité.
Comment agencer ma macro pour que tous les textbox soit traîté s'il contiennet une valeur sinon 😱n arrête la macro.
Merci pour la contribution.
 
Re : test logique entre 7 textbox

Bonsoir à tous

Une autre approche

Dans le code d'un bouton, sur l'userform
Code:
Private Sub CommandButton1_Click()
For i = 1 To 4 'ici adapter selon le nombre de textbox
If Me.Controls("TextBox" & i) = i Then
Application.Run ("macro" & i)
End If
Next
End Sub
Dans un module
Code:
Public i As Integer
Public Sub macro1()
MsgBox 1
End Sub

Public Sub macro2()
MsgBox 2
End Sub
'créer autant de macro[B]n[/B] que [B]n[/B] textbox
 
Dernière édition:
Re : test logique entre 7 textbox

Bonsoir Staple1600
J'ai exactement la même chose avec mes macros en + compliqué.
Dans ton exemple,si je met 1 dans la textbox1 alors la macro 1 est lancé.si je met 2 dans le textbox 1 pas de réponse.
En fait ;mon souci c'est que je ne sais pas où placer les next;end if exit sub pour pouvoir avoir la boucle sur tous mes textbox.
Merci pour ta réponse.
 
Re : test logique entre 7 textbox

Re 🙂
Voici le code pour le premier textbox.Ce que je cherche à faire c placer les charnières : next;end if et next pour que tous les textbox soient vérifiés:
Code:
For a = 1 To 7
If texbox1 = "" Then Me.Hide
If TextBox1 <> "" Then 'GoTo 1
If TextBox1 = 1 Then GoTo 1
If TextBox1 = 2 Then GoTo 2
If TextBox1 = 3 Then GoTo 3
If TextBox1 = 4 Then GoTo 4
If TextBox1 = 5 Then GoTo 5
If TextBox1 = 6 Then GoTo 6
If TextBox1 = 12 Then GoTo 12


1 Workbooks("nom classeur.xls").Activate
Sheets("nom de feuille").Select
Workbooks("nom classeur.xls").Unprotect "zaza"
Call CreerClasseurs01
Call copie_feuille_tata
Call import_verrouillage_tous_classeurs
Call affecter_macros_boutons
Call renomer_VBA
Me.Hide
[L3] = 1

DoEvents
End If
If TextBox1.Value <> 1 Or TextBox1.Value <> 2 Or TextBox1.Value <> 3 Or TextBox1.Value <> 4 _
Or TextBox1.Value <> 5 Or TextBox1.Value <> 6 Or TextBox1.Value <> 12 Then
OK.Caption = "Annuler"
Me.Hide
End If
If TextBox1 = "" Then
Else: TextBox2.Visible = False
'Exit Sub
End If
Unload Me
DoEvents
Next
[COLOR="Red"]ici le second textbox etc....jusqu'à 7[/COLOR]
Merci pour ton aide.
 
Re : test logique entre 7 textbox

Bonsoir à tous
Voici une bribe de mon fichier en pièce jointe.
Depuis quelques temps déjà je bataille avec cette macro.
Je souhaite dans la mesure du possible tester mes textbox et en fonction du résultat de chacun envoyer telle ou telle macro juqsqu'à ce que le textbox soit vide et alors on arrête la macro.

exemple:

si textbox1=1 alors appeler macro x
si textbox1=2 alors appeler macro y
si textbox1=3 alors appeler macro z
si textbox1=4 alors appeler macro a

si textbox suivant est vide alors sortir de la macro

suite.... next ou end if ???????

si textbox2=1 alors appeler macro x
si textbox2=2 alors appeler macro y
si textbox2=3 alors appeler macro z
si textbox2=4 alors appeler macro a

si textbox suivant est vide alors sortir de la macro

suite.... next ou end if ???????

etc...jusqu'à 4 (dans cet exemple)

Tout en sachant que la textbox1 peut contenir la valeur 4;il faudrait que cette macro puisse traîter la textbox suivante si elle contient 1 ou 2 ou 3.

Je sais plus si c'est assez clair sinon voir fichier joint.
Merci d'avance pour l'aide.
 

Pièces jointes

Re : test logique entre 7 textbox

Bonsoir ninbihan;le Forum 🙂

Vu sous cet angle ; c'est clair ; court ; net et précis.
Il manquait juste le renvoie de la valeur de la textbox en A3.
J'ai pu modifier : c'est dans mes cordes 😀.
En tout cas c'est ce que je voulais.
Merci pour ton aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Réponses
4
Affichages
439
Réponses
3
Affichages
834
Retour