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

Signaler
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005
-
Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005
-
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

6 réponses

Messages postés
32
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
21 mars 2005

YEEES !

Ca fonctionne, grand merci
3
Merci

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

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

Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
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
Statut
Membre
Dernière intervention
21 mars 2005

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
Statut
Membre
Dernière intervention
1 septembre 2010
1
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
Statut
Membre
Dernière intervention
10 mai 2005

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
Statut
Membre
Dernière intervention
21 mars 2005

Merci pour ton aide Marnilla !