Double condition macro excel

Résolu/Fermé
Signaler
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018
-
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018
-
Bonsoir,

La plage (E16 : E25) est nommée Croix_Paiement
La plage (F16 : F25) est nommée Type_Paiement

Si en E16 se trouve une croix : x
Et Si F16 est : vide
J'aimerai que s'affiche une boite de dialogue qui précise qu'il faut saisir le type de paiement.
Et cela jusqu'aux cellules E25 et F25

D E F
Montant Type de paiement
16 6,00 € x Chq
17 5,50 € x
18
19
20
21
22
23
24
25


Je ne sais pas si c'est bien d'avoir nommé les 2 plages.
Je pense qu'il faut faire des boucles mais je ne sais pas comment déclarer mes valeurs et faire les boucles.
J'ai essayé ça mais il semble y avoir une erreur à partir de Croix_Paiement = c
Pour la suite je ne sais pas si c'est bon car il arrête la macro


Sub ControlePaiement()
Dim Type_Paiement As Range
Dim Croix_Paiement As Range
Croix_Paiement = c
Type_Paiement = t

If c.Value = "x" And t.Value = "" Then
MsgBox "Saisir le type de paiement"

End If
End Sub


Si quelqu'un peut m'aider car je progresse petit à petit mais il semble que je sois encore loin du compte !
Je vous remercie d'avance de votre attention.
Bonne nuit
Evelyne

4 réponses

Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
897
Salut le forum

Un essai vite fait

Sub ControlePaiement()
Dim C As Range

For Each C In [Type_Paiement]
  If UCase(C) = "X" And C.Offset(0, 1) = "" Then
    MsgBox "Saisir le type de paiement"
    Exit Sub
  End If
Next C
End Sub

Mytå
0
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018

Bonsoir Myta,
Je viens d'essayer ta macro mais il semble que cela ne fonctionne pas.
Pourtant ce que tu as écris me semble logique mais je ne m'y connais pas assez.
Je te remercie cependant d'avoir répondu à ma demande.
Bonne nuit,
Evelyne
0
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
897
Re le forum

Essaye en remplaçant :
For Each C In [Type_Paiement]
par
For Each C In Range("E16:E25")

Mytå
0
Messages postés
72
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
25 octobre 2018

Salut Myta,
Je viens de tester ta ligne de code, c'est impeccable
Merci beaucoup

Evelyne
0