nobilis
Messages postés32Date d'inscriptionvendredi 11 février 2005StatutMembreDernière intervention21 mars 2005
-
21 févr. 2005 à 16:00
nobilis
Messages postés32Date d'inscriptionvendredi 11 février 2005StatutMembreDernière intervention21 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
phantom_2005
Messages postés184Date d'inscriptionmercredi 8 décembre 2004StatutMembreDernière intervention 1 septembre 20101 21 févr. 2005 à 16:10
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
nobilis
Messages postés32Date d'inscriptionvendredi 11 février 2005StatutMembreDernière intervention21 mars 20051 21 févr. 2005 à 16:31
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
phantom_2005
Messages postés184Date d'inscriptionmercredi 8 décembre 2004StatutMembreDernière intervention 1 septembre 20101 21 févr. 2005 à 16:36
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
Marnilla
Messages postés26Date d'inscriptionjeudi 27 janvier 2005StatutMembreDernière intervention10 mai 2005 21 févr. 2005 à 16:46
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