Réponse d'un MsgBox et ImputBox?

Résolu/Fermé
Lolo14 - 8 mars 2012 à 21:12
 Lilo14 - 12 mars 2012 à 22:36
Bonjour à tous,

Je débute en visual basic sous excel et j'aimerais savoir comment interragir en fonction de la réponse à une ImputBox.
Je tente de faire un programme qui s'appelle Footlig pour suivre le championat de foot.

Pour initialiser le programme au départ, je demande à l'utilisateur de rentrer le nom des équipes avec la ImputBox suivante :


Sub NewChampionat()
MsgBox "Bienvenue dans FOOTLIG. Désirez-vous paramètrer le nouveau championat ?", vbYesNo, "Nouveau championat"
Range("C10").Value = InputBox("Veuillez entrer le nom de la première équipe:", "Equipe n° 1")
Range("C12").Value = InputBox("Veuillez entrer le nom de la deuxième équipe:", "Equipe n° 2")
Range("C14").Value = InputBox("Veuillez entrer le nom de la troisième équipe:", "Equipe n° 3")
End Sub

Je voudrais faire en sorte que lorsque l'utilisateur répond NON à la vbYesNo du début, la macro s'arrete.
Pareillement, j'aimerais que si l'utilisateur clique sur ANNULER lors de l'affichage d'une des ImputBox, la macro s'arrete également et que les ImputBox suivantes ne s'affichent pas.

J'ai essayé de placer une ligne IF mais ça ne fonctionne pas.
Une âme charitable peut-elle m'aider?

Mille merci par avance.
Je tiens à préciser à ceux qui seront assez sympas pour répondre qu'à mon avis j'aurais d'autres questions par la suite -))

2 réponses

Bonsoir,

Pour la première question, voila comment s'y prendre:

Dim reponse as Integer
Reponse = MsgBox ("Bienvenue dans FOOTLIG. Désirez-vous paramètrer le nouveau championat ?", vbYesNo, "Nouveau championat")
If Reponse = vbNo then Exit Sub


et pour la deuxieme question:

Dim NomEquipe as String
NomEquipe = InputBox("Veuillez entrer le nom de la première équipe:", "Equipe n° 1") 
If NomEquipe = "" then Exit Sub
Range("C10").Value = NomEquipe


repeter ça pour les equipes 2 et 3.

;)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
9 mars 2012 à 10:31
Salut,

Une proposition regroupant les solutions de yoda (salutations amicales au passage), avec une boucle en prime pour éviter de se retrouver avec 20 inputbox s'il y a 20 équipes... L'arrêt de la boucle se fait dans deux cas :
- soit si l'on clique sur OK d'une inputbox sans avoir saisi d'équipe,
- soit si l'on clique sur annuler d'une inputbox

Sub test()
Dim NomEquipe() As String, Cpt As Integer, Ligne As Integer, reponse As Integer

reponse = MsgBox("Bienvenue dans FOOTLIG. Désirez-vous paramètrer le nouveau championat ?", vbYesNo, "Nouveau championat")
If reponse = vbNo Then Exit Sub

Cpt = -1
Ligne = 10
Do
    Cpt = Cpt + 1
    ReDim Preserve NomEquipe(Cpt)
    NomEquipe(Cpt) = InputBox("Veuillez entrer le nom de l'équipe:", "Equipe n° " & Cpt + 1)
Loop While NomEquipe(Cpt) <> ""
For Cpt = LBound(NomEquipe) To UBound(NomEquipe) - 1
    Range("C" & Ligne).Value = NomEquipe(Cpt)
    Ligne = Ligne + 2
Next
End Sub
--
Cordialement,
Franck P
0
Bonsoir,
Merci Yoda et Franck. toujours agréable de voir qu'il existe des gens prets à répondre simplement pour aider (paske le "à charge de revanche", je le garde pour moi. c'est pas demain que je pourrai vous aider à mon tour sur le sujet -)) )
Néanmoins j'ai plongé d'un un bouquin ce we et je commence à y voir plus clair, et je m'apperçois combien ma question pouvait parraitre simpliste maintenant que j'en sais plus -))
Je m'attaque maintenant à l'insertion d'une ProgressBar et d'une image Gif animée, et c'est pas gagné -))
A bientôt surement -)) et merci encore
Laurent
0