Boucle For/Condition If après un InputBox
Résolu
GouduriXx
-
Pierre1310 Messages postés 8854 Statut Membre -
Pierre1310 Messages postés 8854 Statut Membre -
Bonjour,
J'ai un soucis, J'ai un problème sur mon problème mais je ne vois pas ce problème.
Voilà la partie qui ne fonctionne pas est en gras. Malgrés que je rentre un chiffre entre 1 et 10 dans la inputbox "form" je n'arrive pas à passer cette condition "form=i", je reçois directement mon message "erreur3".
Pouvez vous me dire où ai-je fais une erreur svp ?
Merci d'avance
J'ai un soucis, J'ai un problème sur mon problème mais je ne vois pas ce problème.
Sub MAJ_Tab()
Equipe = InputBox("Dans quelle équipe ?" & Chr(10) & Chr(10) & "1-Equipe Xavier" & Chr(10) & "2-Equipe Olivier", "Qui a été formé", "Veuillez saisir le numéro de l'équipe de l'opérateur formé")
If Equipe = 1 Then
b = 0
<gras> Form = InputBox("Qui a été formé récemment ?" & Chr(10) & Chr(10) & "1-" & Cells(1, 3) & Chr(10) & "2-" & Cells(1, 4) & Chr(10) & "3-" & Cells(1, 5) & Chr(10) & "4-" & Cells(1, 6) & Chr(10) & "5-" & Cells(1, 7) & Chr(10) & "6-" & Cells(1, 8) & Chr(10) & "7-" & Cells(1, 9) & Chr(10) & "8-" & Cells(1, 10) & Chr(10) & "9-" & Cells(1, 11) & Chr(10) & "10-" & Cells(1, 12), "Opérateur formé", "Entrer le numéro de l'opérateur formé")
For i = 1 To 10
If Form = i Then 'pk ça ne marche pas</gras>
a = 0
Poste = InputBox("Sur quel poste a t-il été formé ?", "Quelle formation", "Veuillez indiquer le nom du poste comme indiqué dans le tableau")
For j = 2 To 18
If Poste = Cells(j, 1) Then
Niveau = InputBox("A quel niveau a t'il été formé" & Chr(10) & Chr(10) & "1-Niveau qualifié" & Chr(10) & "2-Niveau professionnel" & Chr(10) & "3-Niveau expert", "Niveau de formation", "Indiquer par 1,2 ou 3 le niveau de formation")
If Niveau = 1 Then
Cells(j, 3) = 1
Else
If Niveau = 2 Then
Cells(j, 3) = 2
Else
If Niveau = 3 Then
Cells(j, 3) = 3
Else
Erreur1 = MsgBox("Ce niveau n'existe pas", vbExclamation, "Recommencez")
End If
End If
End If
Else
a = a + 1
If a = 17 Then
Erreur2 = MsgBox("Ce poste n'existe pas ou ne correspond pas à l'orthographe du tableau", vbExclamation, "Recommencez")
End If
End If
Next
Else
b = b + 1
If b = 10 Then
Erreur3 = MsgBox("Cet opérateur n'existe pas", vbExclamation, "Recommencez")
End If
End If
Next
Else
Voilà la partie qui ne fonctionne pas est en gras. Malgrés que je rentre un chiffre entre 1 et 10 dans la inputbox "form" je n'arrive pas à passer cette condition "form=i", je reçois directement mon message "erreur3".
Pouvez vous me dire où ai-je fais une erreur svp ?
Merci d'avance
3 réponses
-
Bonjour,
Tu as essayer de forcer manuellement dans un premier temps?
Essaye ça et regarde si tu vas toujours dans l'erreur3.
-
Oui j'ai essayé en retirant ma boucle for i= et en mettant if form=1 et dans ce cas ça fonctionne bien. Ca ne fonctionne pas uniquement quand je rajoute ma boucle for mais j'ai besoin d'une boucle pour vérifier tous les cas. Je ne peux pas me permettre de faire une condition If pour chacune des réponses inputbox possible :/
-
-
-
-
-
Bonjour,
Une inputbox retourne un String, donc "1", "2" etc... qui sera forcément différent de 1, 2 etc
Essaye ce test :Sub test() Form = InputBox("Qui a été formé récemment ?" & Chr(10) & Chr(10) & "1-" & Cells(1, 3) & Chr(10) & "2-" & Cells(1, 4) & Chr(10) & "3-" & Cells(1, 5) & Chr(10) & "4-" & Cells(1, 6) & Chr(10) & "5-" & Cells(1, 7) & Chr(10) & "6-" & Cells(1, 8) & Chr(10) & "7-" & Cells(1, 9) & Chr(10) & "8-" & Cells(1, 10) & Chr(10) & "9-" & Cells(1, 11) & Chr(10) & "10-" & Cells(1, 12), "Opérateur formé", "Entrer le numéro de l'opérateur formé") For i = 1 To 10 If Form = CStr(i) Then MsgBox "Condition vérifiée valeur : " & i End If Next End Sub
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je -
J'ai testé en mettant "dim i as Byte" et maintenant ça fonctionne !
Merci pour votre aide.
Ca m'apprendra à pas déclarer mes variables.
Bonne fin de journée à vous-
-
Oui mais pourtant si tu regarde la inputbox qui suit et l'autre boucle for, je n'est pas déclaré ma variable j et pourtant ça fonctionne bien. Depuis hier je me casse la tête pour ça j'aurais du venir direct ici :).
Après les déclarations de variables je gère pas du tous je sais jamais trop comment déclarer ^^ -
https://www.excel-pratique.com/fr/vba/variables.php
Utilise ça.
N'utilise le variant qu'en dernier recours. -
-
-