J'ai une procédure existante qui utilise un Select Case, et qui est
déclenchée par un évènement Worksheet Change. Elle fonctionne très bien.
Cependant, je voudrais maintenant que les cas possibles répondent à une
combinaison de 2 conditions. J'ai de la difficulté avec le script de la
procédure à adopter.
Exemple de ma procédure actuelle:
Private sub_Work...change...blablabla
Dim c As Range
For Each c In Range("C26:C30")
Select Case c
Case "toto1"
Rows(c.Row).Interior.ColorIndex = 0
Case Else
Rows(c.Row).Interior.ColorIndex = 48
End Select
End Sub
Comment faire pour y coupler une seconde condition, disons pour la même
plage de la colonne E (26 à 30) ? Admettons que la condition doit être que la
valeur de la cellule de la colonne E doit être = à "toto2".
Où spécifier mon Range E26 à E30 ?
Comment y inscrire ma seconde condition (j'ai tenté avec un AND mais sans
succès).
J'avais cru cette ficelle trop ancienne pour que vous y reveniez....j'avais pris la liberté de réaborder le tout dans une nouvelle aujourd'hui.
Ben non...on essaye d'assurer le SAV mais on a aussi droit à des pauses ;-)
Bonne journée !
Ben ici, c'est presque bonne nuit ;-)
AV
Stéphan DuQuébec
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle ligne de leur colonne respective (pas nécessairement sur la même ligne) pour que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante. Je ne veux pas abuser de votre support. Je conserve précieusement votre procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _ And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
AV
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle
ligne de leur colonne respective (pas nécessairement sur la même ligne) pour
que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante.
Je ne veux pas abuser de votre support. Je conserve précieusement votre
procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _
And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle ligne de leur colonne respective (pas nécessairement sur la même ligne) pour que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante. Je ne veux pas abuser de votre support. Je conserve précieusement votre procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _ And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
AV
michdenis
Bonjour Stéphan,
Une variante de la procédure d'Alain,
'------------------------------ Sub Trouver()
Dim A As Variant, B As Variant
A = Application.Match("toto1", Range("C26:C30"), 0) B = Application.Match("toto2", Range("E26:E30"), 0) If IsNumeric(A) And IsNumeric(B) Then If A = B Then MsgBox "Toto1 est sur la même ligne que Toto2" MsgBox "La ligne est : " & Range("C26:C30")(A).Address Else MsgBox "Les 2 sont présents mais sur des lignes séparées" End If End If
End Sub '------------------------------
Salutations!
"Stéphan DuQuébec" a écrit dans le message de news:
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle ligne de leur colonne respective (pas nécessairement sur la même ligne) pour que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante. Je ne veux pas abuser de votre support. Je conserve précieusement votre procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _ And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
AV
Bonjour Stéphan,
Une variante de la procédure d'Alain,
'------------------------------
Sub Trouver()
Dim A As Variant, B As Variant
A = Application.Match("toto1", Range("C26:C30"), 0)
B = Application.Match("toto2", Range("E26:E30"), 0)
If IsNumeric(A) And IsNumeric(B) Then
If A = B Then
MsgBox "Toto1 est sur la même ligne que Toto2"
MsgBox "La ligne est : " & Range("C26:C30")(A).Address
Else
MsgBox "Les 2 sont présents mais sur des lignes séparées"
End If
End If
End Sub
'------------------------------
Salutations!
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans le message de news:
5F990E13-0EC9-4A4E-BFE9-EA94D7FCA9DA@microsoft.com...
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle
ligne de leur colonne respective (pas nécessairement sur la même ligne) pour
que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante.
Je ne veux pas abuser de votre support. Je conserve précieusement votre
procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _
And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
A = Application.Match("toto1", Range("C26:C30"), 0) B = Application.Match("toto2", Range("E26:E30"), 0) If IsNumeric(A) And IsNumeric(B) Then If A = B Then MsgBox "Toto1 est sur la même ligne que Toto2" MsgBox "La ligne est : " & Range("C26:C30")(A).Address Else MsgBox "Les 2 sont présents mais sur des lignes séparées" End If End If
End Sub '------------------------------
Salutations!
"Stéphan DuQuébec" a écrit dans le message de news:
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle ligne de leur colonne respective (pas nécessairement sur la même ligne) pour que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante. Je ne veux pas abuser de votre support. Je conserve précieusement votre procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _ And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
AV
Stéphan DuQuébec
Michdenis, merci !
C'est effectivement une variante qui m'intéresse !
Bonjour Stéphan,
Une variante de la procédure d'Alain,
'------------------------------ Sub Trouver()
Dim A As Variant, B As Variant
A = Application.Match("toto1", Range("C26:C30"), 0) B = Application.Match("toto2", Range("E26:E30"), 0) If IsNumeric(A) And IsNumeric(B) Then If A = B Then MsgBox "Toto1 est sur la même ligne que Toto2" MsgBox "La ligne est : " & Range("C26:C30")(A).Address Else MsgBox "Les 2 sont présents mais sur des lignes séparées" End If End If
End Sub '------------------------------
Salutations!
"Stéphan DuQuébec" a écrit dans le message de news:
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle ligne de leur colonne respective (pas nécessairement sur la même ligne) pour que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante. Je ne veux pas abuser de votre support. Je conserve précieusement votre procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _ And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
AV
Michdenis, merci !
C'est effectivement une variante qui m'intéresse !
Bonjour Stéphan,
Une variante de la procédure d'Alain,
'------------------------------
Sub Trouver()
Dim A As Variant, B As Variant
A = Application.Match("toto1", Range("C26:C30"), 0)
B = Application.Match("toto2", Range("E26:E30"), 0)
If IsNumeric(A) And IsNumeric(B) Then
If A = B Then
MsgBox "Toto1 est sur la même ligne que Toto2"
MsgBox "La ligne est : " & Range("C26:C30")(A).Address
Else
MsgBox "Les 2 sont présents mais sur des lignes séparées"
End If
End If
End Sub
'------------------------------
Salutations!
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans le message de news:
5F990E13-0EC9-4A4E-BFE9-EA94D7FCA9DA@microsoft.com...
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle
ligne de leur colonne respective (pas nécessairement sur la même ligne) pour
que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante.
Je ne veux pas abuser de votre support. Je conserve précieusement votre
procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _
And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"
C'est effectivement une variante qui m'intéresse !
Bonjour Stéphan,
Une variante de la procédure d'Alain,
'------------------------------ Sub Trouver()
Dim A As Variant, B As Variant
A = Application.Match("toto1", Range("C26:C30"), 0) B = Application.Match("toto2", Range("E26:E30"), 0) If IsNumeric(A) And IsNumeric(B) Then If A = B Then MsgBox "Toto1 est sur la même ligne que Toto2" MsgBox "La ligne est : " & Range("C26:C30")(A).Address Else MsgBox "Les 2 sont présents mais sur des lignes séparées" End If End If
End Sub '------------------------------
Salutations!
"Stéphan DuQuébec" a écrit dans le message de news:
Bonsoir AV,
Votre procédure fonctionne très bien.
Mais les termes toto1 & toto2 peuvent ainsi se trouver sur n'importe quelle ligne de leur colonne respective (pas nécessairement sur la même ligne) pour que se déclenche le Msgbox. Manque de précision dans ma demande.....
Mais j'ai eu aussi d'autres pistes intéressantes dans ma ficelle suivante. Je ne veux pas abuser de votre support. Je conserve précieusement votre procédure qui était une possibilité qui m'était encore inconnue.
Merci.
De façon plus conventionnelle :
If IsNumeric(Application.Match("toto1", Range("C26:C30"), 0)) _ And IsNumeric(Application.Match("toto2", Range("E26:E30"), 0)) Then MsgBox "ok"