Ne faire apparaître MsgBox qu'une seule fois [Résolu]

Messages postés
32
Date d'inscription
vendredi 11 février 2005
Dernière intervention
21 mars 2005
- - Dernière réponse : nobilis
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Dernière intervention
21 mars 2005
- 22 févr. 2005 à 10:27
Bonjour à tous,

Voici mon problème :
Je voudrais faire apparaître une MsgBox("Attention ! Jacques sera absent aujourd'hui") dès qu'une cellule de ma 12ème ligne contient la valeur "Ma" ou "Co" ou "Re". Cette MsgBox ne doit apparaître qu'une seule fois. Pour l'instant, mon programme répète la MsgBox pour chaque colonne contenant ces valeurs.

Merci d'avance pour votre aide

Voici mon programme :

For li_col = 3 To 26 'Parcourt les colonnes C à Z If Cells(12, li_col).Value "Ma" Or Cells(12, li_col).Value "Co" Or Cells(12, li_col).Value = "Re" Then
attention = MsgBox("Attention ! Jacques sera absent aujourd'hui")
End If
Next

Nobilis
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Dernière intervention
21 mars 2005
3
Merci
YEEES !

Ca fonctionne, grand merci

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 114 internautes nous ont dit merci ce mois-ci

Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Dernière intervention
1 septembre 2010
1
0
Merci
Declare un Boolean DejaAffichee

For li_col = 3 To 26 'Parcourt les colonnes C à Z If Cells(12, li_col).Value "Ma" Or Cells(12, li_col).Value "Co" Or Cells(12, li_col).Value = "Re" And Not DejaAffichee
Then
attention = MsgBox("Attention ! Jacques sera absent aujourd'hui")
DejaAffichee = True
End If
Next

J'espère que ca répond a ta question
@+


--------------------------------------------------------------------------------
Phantom_2005
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Dernière intervention
21 mars 2005
0
Merci
Merci Phantom.

Je viens d'essayer avec le prog ci-dessous mais ça ne fonctionne pas. La boîte apparaît toujours autant de fois qu'il y a de cellules remplies.

Dim DejaAffichee As Boolean


For li_col = 3 To 26 'Parcourt les colonnes C à Z If Cells(12, li_col).Value "Ma" Or Cells(12, li_col).Value "Co" Or Cells(12, li_col).Value = "Re" And Not DejaAffichee Then
attention = MsgBox("Attention ! Jacques sera absent aujourd'hui")
DejaAffichee = True
End If
Next
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Dernière intervention
1 septembre 2010
1
0
Merci
peut etre :


For li_col = 3 To 26 'Parcourt les colonnes C à Z If ( Cells(12, li_col).Value "Ma" Or Cells(12, li_col).Value "Co" Or Cells(12, li_col).Value = "Re" ) And Not DejaAffichee Then
attention = MsgBox("Attention ! Jacques sera absent aujourd'hui")
DejaAffichee = True
End If
Next li_col


--------------------------------------------------------------------------------
Phantom_2005
Messages postés
26
Date d'inscription
jeudi 27 janvier 2005
Dernière intervention
10 mai 2005
0
Merci
Bonjour Nobilis,

Je ne sais pas à quoi te sert ta variable "attention" maistu peux toujours essayer ça :

attention="" ' initialise la variable ( de préférence)

For li_col = 3 To 26 'Parcourt les colonnes C à Z If ((Cells(12, li_col).Value "Ma" Or Cells(12, li_col).Value "Co" Or Cells(12, li_col).Value = Re") and (attention <> "")) Then
attention = MsgBox("Attention ! Jacques sera absent aujourd'hui")
End If

Next

Tu peux toujours essayer ça quelques fois les parenthèses ont leur importance.

Sinon si ton programme s'arrete là :

For li_col = 3 To 26 'Parcourt les colonnes C à Z If Cells(12, li_col).Value "Ma" Or Cells(12, li_col).Value "Co" Or Cells(12, li_col).Value = Re") Then
attention = MsgBox("Attention ! Jacques sera absent aujourd'hui")
End If

if attention <> "" then
Exit Sub ' te permet de sortie de la procédure
end if

Next

Cordialement Marnilla
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Dernière intervention
21 mars 2005
0
Merci
Merci pour ton aide Marnilla !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.