Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[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:

gosselien

XLDnaute Barbatruc
Re : MsgBox avec condition sur 2 colonnes

Hello gosselien,

Ta macro ne marche pas malheureusement,

Thanks, Kim.

Ici ça fonctionne
Il doit arrêter quand il a trouvé "X" et soit Passage soit Réunion et cet arrêt se fait au premier trouvé (ligne 4) avec le msgbox pour le signaler...
Ou alors j'ai pas tout pigé (ce qui est dans le domaine du possible aussi )
 

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

pilou76

XLDnaute Occasionnel
Re : MsgBox avec condition sur 2 colonnes

Je me répète mais si tu remplaces le "OR" par "AND" cela fonctionne chez moi
"And" au lieu de "OR"
If c = "X" And (c.Offset(, 1) <> "Passage" And c.Offset(, 1) <> "Réunion") Then
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…