Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2007, 20h39   #1
Membre régulier
 
Avatar de amerex
 
Inscription : septembre 2007
Messages : 224
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Canada

Informations forums :
Inscription : septembre 2007
Messages : 224
Points : 91
Points : 91
Par défaut Détection de l'annulation d'un InputBox

Bonjour!
Une petite question, toute simple, je l'espère:
Je demande une valeur à l'aide d'une inputbox. Voici mon code:
Code :
var2 = InputBox("Entrez le solde à ajouter." & vbNewLine & vbNewLine & "Solde actuel: " & var1 & "$", "Modifier un solde")
J'aimerais savoir s'il est possible de faire savoir à VBA que lorsque l'utilisateur clique sur annuler ou ferme l'input box, de ne rien faire, plutôt que de démarrer le débugger...?

Merci
amerex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 20h44   #2
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Bonjour,

Que penses tu de :

Code :
1
2
3
4
5
6
7
8
9
10
11
var2 = InputBox("Entrez le solde à ajouter." & _
                vbNewLine & vbNewLine & "Solde actuel: " & _
                var1 & "$", "Modifier un solde")
 
If StrPtr(var2) = 0 Then
    MsgBox "Vous avez annulé"
ElseIf var2 = "" Then
    MsgBox "Vous n'avez rien saisi"
Else
    MsgBox "Vous avez saisi " & var2
End If
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 20h50   #3
Membre régulier
 
Avatar de amerex
 
Inscription : septembre 2007
Messages : 224
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Canada

Informations forums :
Inscription : septembre 2007
Messages : 224
Points : 91
Points : 91
Je viens d'essayer de l'insérer dans mon code... le debugger s'active...
Je vous place mon code entier pour cette macro...:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim var1 As Currency
Dim var2 As Currency
Dim var3 As Currency
 
var1 = Sheets("_depemp").Range("B2").Value
var2 = InputBox("Entrez le solde à ajouter." & _
                vbNewLine & vbNewLine & "Solde actuel: " & _
                var1 & "$", "Modifier un solde")
 
If StrPtr(var2) = 0 Then
    MsgBox "Vous avez annulé"
ElseIf var2 = "" Then
    MsgBox "Vous n'avez rien saisi"
Else
    MsgBox "Vous avez saisi " & var2
End If
var3 = var1 + var2
Sheets("_depemp").Range("B2").Value = var3
MsgBox ("Un ajout de " & var2 & "$ a été ajouté, montant le solde à " & var3 & "$ .")
Label51.Caption = ""
Label51.Caption = var3
Le debugger accroche à la saisie de la variable "var2"... à l'inputbox :S
amerex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 21h00   #4
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718


Faut adapter de telle sorte que le traitement ne soit lancé que lorsque queleque chose est saisi, sans quoi ça ne sert à rien

De plus, Var2 doit être de type string pour que strptr fonctionne
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 21h05   #5
Membre régulier
 
Avatar de amerex
 
Inscription : septembre 2007
Messages : 224
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Canada

Informations forums :
Inscription : septembre 2007
Messages : 224
Points : 91
Points : 91
Génial, ça fonctionne, j'ai changé le type de variable et j'ai spécifié un "END", de sorte que la macro ne continue pas les opérations. Mon code est celui ci-bas. MERCI beaucoup! Il me reste maintenant qu'à modifier les 51 autres macros haha!!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Label51_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim var1 As Currency
Dim var2 As String
Dim var3 As Currency
 
var1 = Sheets("_depemp").Range("B2").Value
var2 = InputBox("Entrez le solde à ajouter." & _
                vbNewLine & vbNewLine & "Solde actuel: " & _
                var1 & "$", "Modifier un solde")
 
If StrPtr(var2) = 0 Then
    MsgBox "Vous avez annulé"
    End
ElseIf var2 = "" Then
    MsgBox "Vous n'avez rien saisi"
    End
Else
    MsgBox "Vous avez saisi " & var2
End If
var3 = var1 + var2
Sheets("_depemp").Range("B2").Value = var3
MsgBox ("Un ajout de " & var2 & "$ a été ajouté, montant le solde à " & var3 & "$ .")
Label51.Caption = ""
Label51.Caption = var3
End Sub
amerex est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web