Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

select case booléen de 4 cellules

13 réponses
Avatar
fetnat
Bonjour,

J'ai 4 cellules qui contiennent de valeurs booléennes : E7, E8, C7, C8
C'est valeurs booléennes sont misent à jour par d'autres sub.

Je souhaite traiter les cas et déclencher un process.
Mais je ne trouve pas la syntaxe.
Target.Address est-il toujours lié à un evenement ? Si oui comment
tester 2 Cellules dans un select case sans evenement?

Ce qui est ci-dessous ne passe pas.
(les deux premiers case était pour tester mais je n'arrive pas jusque là...)

Sub testselectcasebool()
' test pour 4 cells booléenne
Dim Target As Range
Select Case Target.Address
Case "$C$7" ' presence B
If Range("C7") Then
MsgBox "cherche C"
End If
Case "$E$7" ' presence C
If Range("E7") Then
MsgBox "cherche B"
End If
Case "$C$7", "$E$7" ' presence B et presence C
If Range("C7") And Range("E7") Then
MsgBox "presence B et presence C"
End If
Case "$C$7", "$E$7" ' presence B et absence C
If Range("C7") And Not Range("E7") Then
MsgBox "presence B et absence C"
End If
Case "$C$7", "$E$7" ' absence B et presence C
If Not Range("C7") And Range("E7") Then
MsgBox "absence B et presence C"
End If
Case "$C$7", "$E$7" ' absence B et absence C
If Not Range("C7") And Not Range("E7") Then
MsgBox "absence B et absence C"
End If
End Select
End Sub

Merci pour toute aide et toute modification cosmétique qui enjolivera la
chose.

fetnat

3 réponses

1 2
Avatar
LSteph
Bonjour,

Je m'immisce
Tu as gravement raison de le faire!


.... Pourquoi le Ucase ? J'aurais mis Lcase a priori !
Tout à fait!

(J'avais écrit un peu autrement cette sub juste avant, en repiquant
les morceaux j'ai oublié d'enlever ce Ucase ou de le remplacer par
Lcase mais avec application.run cela doit pas être sensible...)

Merci de ton intervention avisée.

Cordialement.

LSteph

Re,
pour finir , le but étant de savoir quelle macro lancer
voici une façon amusante de traiter le pb
(...)
Sub traitement()
Dim mystr As String
mystr = [c7] & [c8] & [e7] & [e8]
mystr = UCase(mystr)
(...)


Bonjour Steph(l)

Je m'immisce. Pourquoi le Ucase ? J'aurais mis Lcase a priori !




Avatar
fetnat
Je reviens à la charge pour me confondre en remerciement. C'est vraiment
ce que je voulais faire et je ne le savais pas. Le select case passe à
la trappe, il est laminé, pulvérisé.

Cette élégante solution sera incluse dans cette procédure mais aussi à
plusieurs endroits de mon programme.

La var mystr = [c7] & [c8] & [e7] & [e8] récupère "VraiFauxFauxVrai"
alors que dans les cells on a FAUX et VRAI

et curieusement mystr = UCase(mystr) ou = LCase(mystr) retrouve bien la
macro vraifauxfauxvrai().

La règle des cinq C doit s'appliquer AMHA.

fetnat


Bonjour,

Je m'immisce
Tu as gravement raison de le faire!


.... Pourquoi le Ucase ? J'aurais mis Lcase a priori !
Tout à fait!

(J'avais écrit un peu autrement cette sub juste avant, en repiquant
les morceaux j'ai oublié d'enlever ce Ucase ou de le remplacer par
Lcase mais avec application.run cela doit pas être sensible...)

Merci de ton intervention avisée.

Cordialement.

LSteph

Re,
pour finir , le but étant de savoir quelle macro lancer
voici une façon amusante de traiter le pb
(...)
Sub traitement()
Dim mystr As String
mystr = [c7] & [c8] & [e7] & [e8]
mystr = UCase(mystr)
(...)


Bonjour Steph(l)

Je m'immisce. Pourquoi le Ucase ? J'aurais mis Lcase a priori !






Avatar
Francois L
Bonjour,

Je m'immisce
Tu as gravement raison de le faire!


.... Pourquoi le Ucase ? J'aurais mis Lcase a priori !
Tout à fait!

(J'avais écrit un peu autrement cette sub juste avant, en repiquant
les morceaux j'ai oublié d'enlever ce Ucase ou de le remplacer par
Lcase mais avec application.run cela doit pas être sensible...)


Re Steph(l),

Merci, je ne savais pas que le "application.run" était insensible :-)

--
François L


1 2