select case booléen de 4 cellules

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
lSteph
Le #4572451
Bonjour,

il y a le pb que select case sort dès qu'une condition est remplie,
essaie ce code et tapes 3 dans l'inputbox , tu vas sortir à test1
pourtant test2 serait vrai

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub itoss()
Dim i As Long
i = InputBox("Nombre:")
Select Case i

Case Is > 1
MsgBox "test 1"
Case Is > 2
MsgBox "test2"
Case Else
MsgBox "test ne souscrit pas aux conditions"
End Select
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''

donc il faut poser d'abord tes conditions les plus draconniennes et
vers les plus simple.

Cordialement.

lSteph

On 30 mai, 16:34, 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


lSteph
Le #4572401
...
ensuite il y a le second pb (que j'aurais dû voir en premier
d'ailleurs)
pourquoi target il n'y a en effet ici la cible d'aucun évennement.
Envisagerais tu de modifier quelles cibles?

Si ton test se résume à vérifier ce qui contient vrai ou faux et

Sub test()
Dim c As Range, myStr As String
myStr = "Résultat du test:" & vbCrLf
For Each c In [c7:e8]
Select Case c.Column
Case 3, 5
If c Then
myStr = myStr & c.Address & " Vrai" & vbCrLf
Else
myStr = myStr & c.Address & " Faux" & vbCrLf
End If
End Select
Next
MsgBox myStr
End Sub

'Cdlt

'LSteph

On 30 mai, 16:34, 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


lSteph
Le #4572381
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)
On Error Resume Next
Application.Run (mystr)
On Error GoTo 0
End Sub

Sub fauxfauxfauxfaux()
MsgBox "ffff"
End Sub
Sub vraivraivraivrai()
MsgBox "vvvv"
End Sub

'...etc


On 30 mai, 16:34, 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


fetnat
Le #4570841
Bonjour,

Mes excuses, je me suis absenté.

Oui, dès que la condition est remplie on sort. C'est ce qui me permet de
faire une hierarchie.
Vais-je traiter tous les cas, je l'espère.

J'ai choisi le select case car le code est plus clair. Les if imbriqués
ne sont pas facile à débugger pour moi.

Merci pour l'aide

fetnat


Bonjour,

il y a le pb que select case sort dès qu'une condition est remplie,
essaie ce code et tapes 3 dans l'inputbox , tu vas sortir à test1
pourtant test2 serait vrai

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub itoss()
Dim i As Long
i = InputBox("Nombre:")
Select Case i

Case Is > 1
MsgBox "test 1"
Case Is > 2
MsgBox "test2"
Case Else
MsgBox "test ne souscrit pas aux conditions"
End Select
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''

donc il faut poser d'abord tes conditions les plus draconniennes et
vers les plus simple.

Cordialement.

lSteph

On 30 mai, 16:34, 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








fetnat
Le #4570821
Oui c'est ce qui m'amène ici principalement. La reconnaissance du range
dans le select case. Ce n'est peut être pas ce qui est le plus pratique
pour du booléen.

Ton code me bluffe par la façon de choisir la colonne. Ca m'épate.

C'est clair et c'est un candidat sérieux pour la solution.

fetnat


...
ensuite il y a le second pb (que j'aurais dû voir en premier
d'ailleurs)
pourquoi target il n'y a en effet ici la cible d'aucun évennement.
Envisagerais tu de modifier quelles cibles?

Si ton test se résume à vérifier ce qui contient vrai ou faux et

Sub test()
Dim c As Range, myStr As String
myStr = "Résultat du test:" & vbCrLf
For Each c In [c7:e8]
Select Case c.Column
Case 3, 5
If c Then
myStr = myStr & c.Address & " Vrai" & vbCrLf
Else
myStr = myStr & c.Address & " Faux" & vbCrLf
End If
End Select
Next
MsgBox myStr
End Sub

'Cdlt

'LSteph

On 30 mai, 16:34, 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






fetnat
Le #4570751
de mieux en mieux dans le genre code magique...

Je ne comprends pas la ligne Application.run (mystr),pourquoi lancer une
application sur une chaîne de car ?
Ni comment on fait le lien avec les deux sub fxfxfxffx et vrvrvrvr.

L'aide de run ne m'éclaire pas.

Mais le resultat de la chaîne peut être facilement traiter avec un
select case.

Je te remercie beaucoup pour les orientations qui me donne de la matière
pour arriver au bout.

fetnat

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)
On Error Resume Next
Application.Run (mystr)
On Error GoTo 0
End Sub

Sub fauxfauxfauxfaux()
MsgBox "ffff"
End Sub
Sub vraivraivraivrai()
MsgBox "vvvv"
End Sub

'...etc


On 30 mai, 16:34, 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






fetnat
Le #4570711
je vais partir sur la sub suivante pour deux cellules puis inclure
quelques case pour inclure les deux cellules restantes. C'est assez
clair pour voir ce qu'on fait ou pour modifier par la suite.

Sub testselectcasebool()
' test pour 4 cells booléenne
Dim mystr As String
mystr = [c7] & [c8] & [e7] & [e8]
mystr = UCase(mystr)
Select Case mystr
Case "VRAIFAUXVRAIFAUX" ' presence B et presence C
If Range("C7") And Range("E7") Then
MsgBox "presence B et presence C"
End If
Case "VRAIFAUXFAUXVRAI" ' presence B et absence C
If Range("C7") And Not Range("E7") Then
MsgBox "presence B et absence C"
End If
Case "FAUXFAUXVRAIVRAI" ' absence B et presence C
If Not Range("C7") And Range("E7") Then
MsgBox "absence B et presence C"
End If
Case "FAUXVRAIFAUXVRAI" ' 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
' VRAIFAUXVRAIFAUX ' presence B et presence C
' VRAIFAUXFAUXVRAI ' presence B et absence C
' FAUXFAUXVRAIVRAI ' absence B et presence C
' FAUXVRAIFAUXVRAI ' absence B et absence C


Bonne soirée et encore merci

fetnat



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)
On Error Resume Next
Application.Run (mystr)
On Error GoTo 0
End Sub

Sub fauxfauxfauxfaux()
MsgBox "ffff"
End Sub
Sub vraivraivraivrai()
MsgBox "vvvv"
End Sub

'...etc


On 30 mai, 16:34, 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






LSteph
Le #4570461
Bonsoir,

Alors revois de plus près cette 3ème suggestion, à mon sentimentt elle
répond mieux et plus simplement, selon ce que j'ai compris.

Je ne comprends pas la ligne Application.run (mystr),pourquoi lancer une
application sur une chaîne de car ?


C'est juste pour appeler la macro correspondante selon ce que j'ai lu de
ta demande:
Je souhaite traiter les cas et déclencher un process.




Ni comment on fait le lien avec les deux sub
c'est précisément ce run qui execute les sub que tu auras prévue

pour chacune des possibilités

Sub vraifauxfauxvrai()
'ici ton process à la place du msgbox
End sub

Une sub pour chaque cas au lieu d'un select case!

@+

lSteph



de mieux en mieux dans le genre code magique...

Je ne comprends pas la ligne Application.run (mystr),pourquoi lancer une
application sur une chaîne de car ?
Ni comment on fait le lien avec les deux sub fxfxfxffx et vrvrvrvr.

L'aide de run ne m'éclaire pas.

Mais le resultat de la chaîne peut être facilement traiter avec un
select case.

Je te remercie beaucoup pour les orientations qui me donne de la matière
pour arriver au bout.

fetnat

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)
On Error Resume Next
Application.Run (mystr)
On Error GoTo 0
End Sub

Sub fauxfauxfauxfaux()
MsgBox "ffff"
End Sub
Sub vraivraivraivrai()
MsgBox "vvvv"
End Sub

'...etc


On 30 mai, 16:34, 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








fetnat
Le #4570361
Bonjour LSteph,

Ah oui ! j'ai les idées plus claires ce matin.
L'exemple que j'ai pris VFFV n'existait pas. En créant la macro, c'est
parfait, j'ai compris avant la fin de ta réponse.
Je comprends comment ça marche. C'est très élégant je trouve...

Sub vraifauxfauxvrai()
MsgBox "vffv"
End Sub

Je mets au rebus le select case, je suis converti.

Mille mercis et bonne journée.

fetnat




Bonsoir,

Alors revois de plus près cette 3ème suggestion, à mon sentimentt elle
répond mieux et plus simplement, selon ce que j'ai compris.

Je ne comprends pas la ligne Application.run (mystr),pourquoi lancer une
application sur une chaîne de car ?


C'est juste pour appeler la macro correspondante selon ce que j'ai lu de
ta demande:
Je souhaite traiter les cas et déclencher un process.



Ni comment on fait le lien avec les deux sub
c'est précisément ce run qui execute les sub que tu auras prévue

pour chacune des possibilités

Sub vraifauxfauxvrai()
'ici ton process à la place du msgbox
End sub

Une sub pour chaque cas au lieu d'un select case!

@+

lSteph



de mieux en mieux dans le genre code magique...

Je ne comprends pas la ligne Application.run (mystr),pourquoi lancer
une application sur une chaîne de car ?
Ni comment on fait le lien avec les deux sub fxfxfxffx et vrvrvrvr.

L'aide de run ne m'éclaire pas.

Mais le resultat de la chaîne peut être facilement traiter avec un
select case.

Je te remercie beaucoup pour les orientations qui me donne de la
matière pour arriver au bout.

fetnat

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)
On Error Resume Next
Application.Run (mystr)
On Error GoTo 0
End Sub

Sub fauxfauxfauxfaux()
MsgBox "ffff"
End Sub
Sub vraivraivraivrai()
MsgBox "vvvv"
End Sub

'...etc


On 30 mai, 16:34, 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










Francois L
Le #4570351
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 !

--
François L

Publicité
Poster une réponse
Anonyme