[RESOLU] MsgBox avec condition sur 2 colonnes

Kim75

XLDnaute Occasionnel
Bonjour le forum,

Avec ma tête engourdie je bloque sur cette macro :
Je voulais juste afficher un message d’alerte au cas où :
- Une cellule dans la colonne H égale à « X » est trouvée
Et que parallèlement à la même ligne dans la colonne I
- La valeur est différente de « Réunion » ou de « Passage »
Ce serait sympa si quelqu'un pouvait corriger cette bêtise :(

Cordialement, Kim.
 

Pièces jointes

  • MsgBox_Condition_2Colonnes.xlsm
    19.7 KB · Affichages: 23
Dernière édition:

gosselien

XLDnaute Barbatruc
Re : MsgBox avec condition sur 2 colonnes

Bonjour,

ceci peut être :


Code:
Sub Macro_1()
Dim ws As Worksheet, c As Range
Set ws = Sheets("BD")
For Each c In Range(ws.[H2], ws.[H65000].End(xlUp)) ' H65000
    If c = "X" And (c.Offset(, 1) <> "Passage" Or c.Offset(, 1) <> "Reunion") Then
        MsgBox "Dans l'onglet BD, des bureux inaffectés sont mal renseignés," & _
        vbCrLf & vbCrLf & "Merci de renseigner la colonne I de la valeur Passage ou Réunion !", vbOKOnly + vbExclamation, "  Attention !": Exit Sub ' Exit si trouvé
    End If
Next c
End Sub
 

pilou76

XLDnaute Occasionnel
Re : MsgBox avec condition sur 2 colonnes

Chez moi cela semble fonctionner. Ou alors je n'ai pas capté complètement ta problématique !
J'ai rajouté un bouton sur ta feuille
Cordialement
 

Pièces jointes

  • Copie de MsgBox_Condition_2Colonnes-2.xlsm
    27.8 KB · Affichages: 27

Kim75

XLDnaute Occasionnel
Re : MsgBox avec condition sur 2 colonnes

Pilou,

Ta macro ne fonctionne pas, alors que je n'y rien modifié,
J'ai modifié juste les données dans la colonne I, et fait en sorte qu'elles soient conformes
C'est à dire qu'à côté des valeurs "X", en colonne I, il n'y ait que des valeurs "Réunion" ou Passage"
Dans ce cas là, l'alerte ne devrait pas s'afficher, car les données sont conformes par définition

Par ailleurs ne marche pas aussi cette macro qui affiche la valeur 8 au lieu de 0 dans ce fichier

Code:
MsgBox Application.CountIfs(ws.[H:H], "X", ws.[I:I], "<>" & "Réunion") + Application.CountIfs(ws.[H:H], "X", ws.[I:I], "<>" & "Passage")

Kim.
 

Pièces jointes

  • MsgBox_Condition_2Colonnes-2.xlsm
    27.8 KB · Affichages: 21
Dernière édition:

Kim75

XLDnaute Occasionnel
Re : MsgBox avec condition sur 2 colonnes

gosselien

Tiens pour te faire plaisir, j'ai mis ta macro dans le fichier joint
Tu verras que ça ne marche pas comme je l'ai expliqué à pilou

Kim
 

Pièces jointes

  • MsgBox_Condition_2Colonnes-3.xlsm
    27.4 KB · Affichages: 19

Kim75

XLDnaute Occasionnel
Re : [Resolu] MsgBox avec condition sur 2 colonnes

Tiens pilou

Voici le fichier avec le code que tu proposes et qui ne marche pas
Mais bon j'ai finalement pu le faire marcher avec la fonction :
Code:
Application.CountIfs(ws.[H:H], "X", ws.[I:I], "<>" & "Réunion", ws.[I:I], "<>" & "Passage")

Merci à tous, Kim.
 

Pièces jointes

  • MsgBox_Condition_2Colonnes-4.xlsm
    22 KB · Affichages: 27

gosselien

XLDnaute Barbatruc
Re : [RESOLU] MsgBox avec condition sur 2 colonnes

Re,

autre test...essaye de ton côté :)

Sub Macro_1()
Dim ws As Worksheet, c As Range
Set ws = Sheets("BD")
For Each c In Range(ws.[H2], ws.[H65000].End(xlUp)) 'H65000 et pas G65000
If c = "X" And (c.Offset(, 1) <> "Passage" Or c.Offset(, 1) <> "Réunion") Then
MsgBox "Dans l'onglet BD, des bureux inaffectés sont mal renseignés," & _
vbCrLf & vbCrLf & "Merci de renseigner la colonne I de la valeur Passage ou Réunion !", vbOKOnly + vbExclamation, " Attention !": Exit Sub
End If
Next c
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 216
Messages
2 107 389
Membres
109 821
dernier inscrit
tristan28