MsgBOX continu
Bonjour à tous !
Novice dans le domaine, j'essaye de faire apparaître un petit code VBA permettant l'apparition d'un message lorsque deux cases ont été remplies.
Concrêtement:
Lorsqu'un utilisateur a rempli les cases B1 et B2 , un message apparait lui indiquant une autre tâche.
Voici ce que je pensais faire:
Private Sub Worksheet_Change(ByVal Target As Range)
'Variable
Dim b1 As Integer
Dim b2 As Integer
b1 = Range("B1")
b2 = Range("B2")
'Commentaire en fonction de la case cochée
If b1 = 1 And b2 = 2 Then
MsgBox "Veuillez vérifier que vous avez bien complétez toute la colonne"
End If
End SubVoici mes deux problèmes:
1) J'aimerais que le message d'erreur apparaisse lorsque l'utilisateur a entré n'importe quoi (date, texte,..) dans la case. (J'ai essayé avec
If Not b1"" And b2"" Thenmais cela ne fonctionne pas.
2) Lorsque mon message est apparu une première fois, il apparait tout le temps dés que je change n'importe quelle cellule de la feuille. J'imagine que cela veut dire que la boucle n'est pas fermé étant donné que les deux cases restent remplies. Du coup, comment puis-je faire pour sortir de la boucle une fois que ce message est apparu? (j'ai essayé avec une boucle Do while puis If avec exit Do mais rien n'y fait).
D'avance un tout tout grand merci pour l'aide que vous allez m'apporter!
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim b1 As Integer, b2 As Integer
If Not Intersect(Target, Me.Range("B1:B2")) Is Nothing Then
b1 = Me.Range("B1"): b2 = Me.Range("B2")
If b1 = 1 And b2 = 2 Then
MsgBox "Veuillez vérifier que vous avez bien complétez toute la ligne"
Else
'Message d'erreur
End If
End If
End SubNote que B1 et B2 sont sur deux lignes différentes : ton premier message est-il bien clair ?
Wow,
Merci pour la rapidité de ta réponse!
Mon deuxième problème est résolu, quand est-il de mon premier problème? Sais-tu comment je peux faire modifier mon code afin de faire apparaître le message si la B1 et la B2 sont remplies avec n'importe quelles valeurs (0, a,..).
Voici ce que j'ai tenté mais ca ne fonctionne pas:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim b1 As Integer
Dim b2 As Integer
If Not Intersect(Target, Me.Range("B1:B2")) Is Nothing Then
b1 = Me.Range("B1")
b2 = Me.Range("B2")
If Not b1 ="" And b2 = "" Then
MsgBox "Veuillez vérifier que vous avez bien completé l'entièreté de la colonne"
End If
End If
End Sub1) Relis la procédure que j'ai communiquée précédemment.
2) Tu ferais bien de vérifier ta condition ! J'ai quelques doutes qu'elle réponde à ce que tu souhaites
Cordialement.