Double condition macro excel

Résolu
Evedll Messages postés 79 Statut Membre -  
Evedll Messages postés 79 Statut Membre -
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

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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
  2. Evedll Messages postés 79 Statut Membre
     
    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
  3. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    Re le forum

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

    Mytå
    0
  4. Evedll Messages postés 79 Statut Membre
     
    Salut Myta,
    Je viens de tester ta ligne de code, c'est impeccable
    Merci beaucoup

    Evelyne
    0