Gérer le bouton annuler ImputBox

Fermé
mll-sandiih Messages postés 9 Date d'inscription jeudi 28 juillet 2016 Statut Membre Dernière intervention 26 août 2018 - 28 juil. 2016 à 17:05
mll-sandiih Messages postés 9 Date d'inscription jeudi 28 juillet 2016 Statut Membre Dernière intervention 26 août 2018 - 4 août 2016 à 14:11
Bonjour tout le monde,

J'aimerais gérer le bouton annuler de mon imputbox et j'ai trouvé une solution mais elle ne fonctionne pas trop, si j'appuie sur annuler, ma msgbox s'affiche et ça quitte, jusque là tout va bien
mais même si je rentre ce qu'il faut et que j'appuie sur OK ma msgbox de mon annuler s'affiche et ça quitte :(

VOICI MON CODE
_____________________________________________
Dim adresse As String, compteur As Integer

compteur = 1 'permet de gérer le bouton annuler sans boucle infinie (genre case absolument obligatoire -- )

adresse = InputBox("Veuillez entrer le nom et l'adresse du chantier étudié svp", "Nom et adresse") 'La variable adresse reçoit la valeur entrée dans l'InputBox
Worksheets("Extraction").Activate
Cells(1, 2).Value = adresse
Worksheets("Soufflage").Activate
Cells(1, 2).Value = adresse 'ces 4 lignes permettent de copier le contenu dans une ou plusieurs cellules
Do While Len(adresse) = 0
compteur = compteur + 1
If compteur = 2 Then GoTo NePasContinuer
MsgBox "Cette donnée est obligatoire. Plus que " & 2 - compteur & " essais."
adresse = InputBox("Veuillez entrer le nom et l'adresse du chantier étudié svp", "Nom et adresse") 'La variable adresse reçoit la valeur entrée dans l'InputBox
Worksheets("Extraction").Activate
Cells(1, 2).Value = adresse
Worksheets("Soufflage").Activate

Loop
NePasContinuer:
MsgBox "Ok, on verra ça plus tard."

Exit Sub

__________________________________________________

J'imagine que l'erreur viens du Exit Sub mais je sais pas :(

2 réponses

ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
28 juil. 2016 à 18:05
Bonjour

Un exemple

Const NbEssaisMax = 3

Public Sub OK()
Dim compteur As Long, adresse As String
adresse = ""
compteur = NbEssaisMax
While adresse = "" And compteur <> 0
adresse = InputBox("Chantier étudié", "Nim et adresse ?")
If adresse = "" Then
compteur = compteur - 1
If compteur <> 0 Then MsgBox "il vous reste " & compteur & " essais"
End If
Wend
If adresse = "" Then
MsgBox "on verra plus tard"
Else
Sheets("Extraction").Cells(1, 2) = adresse
Sheets("Soufflage").Cells(1, 2) = adresse
End If
End Sub

Cdlmnt
0
Merci infiniment ça fonctionne ;)
Mais mtn questions pr comprendre ... Que signifie le "Public Sub OK()" et le "<>" dans "compteur <> 0" ?
Je ne veux pas juste copier coller :p

Thanks :)
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
3 août 2016 à 16:28
1. Public Sub OK()
C'est la déclaration de la procedure OK, je l'ai mise dans un module général (Module 1 par exemple) et déclarée publique pour qu'on puisse y avoir accès de n'importe où.
2. compteur <> 0
Pour compteur différent de 0
Au départ, compteur = nombre d'essais maxi
puis
Tant que adresse est vide et que compteur est différent de 0
on fait un truc
on décrémente compteur (compteur = comteur-1)
Donc la boucle est terminée dès que adresse n'est pas vide ou que compteur est egal à 0

Cdlmnt
0
mll-sandiih Messages postés 9 Date d'inscription jeudi 28 juillet 2016 Statut Membre Dernière intervention 26 août 2018
4 août 2016 à 14:11
Merci beaucoup !! En revanche le Public Sub me pose pb car j'ai l'impression qu'il fait doublon avec mon Sub Bouton, du coup ça ne fonctionne pas
Voici une partie de mon code du coup

Sub Bouton1_Clic()
MsgBox "Bienvenue dans l'outils bilan aéraulique." & Chr(10) & Chr(10) & "Laissez-vous guider par les instructions :)"
'petit message de bienvenue

[Plein d'autres lignes]

Public Sub OK()
Dim adresse As String, compteur As Integer

    Const NbEssaisMax = 2 'représente le nbr de fois ou il faut annuler pr quitter


Dim compteur As Long, adresse As String
adresse = ""
compteur = NbEssaisMax
While adresse = "" And compteur <> 0
  adresse = InputBox("Chantier étudié", "Nom et adresse ?")
  If adresse = "" Then
    compteur = compteur - 1
    If compteur <> 0 Then MsgBox "il vous reste " & compteur & " essais"
  End If
Wend
If adresse = "" Then
  MsgBox "Ok, on verra ça plus tard"
Else
  Sheets("Extraction").Cells(1, 2) = adresse 'Permet d'entrer le nom et l'adresse du chantier dans la cellule B1
  Sheets("Soufflage").Cells(1, 2) = adresse
End If
End Sub
     
    
 MsgBox "Commençons par regarder le soufflage:"

[Plein d'autres lignes]
0