Select Case - Target - Plage

Sarlone

XLDnaute Occasionnel
Bonjour
afin de continuer mon programme, je souhaite effectuer la chose suivante:
si le double-clic a lieu dans la plage d9:d32 alors macro1
si le double-clic a lieu dans la plage f9:f32 alors macro2
si le double-clic a lieu dans la plage h9:h32 alors macro3
si le double-clic a lieu dans la plage u7:z7 alors macro4
puis je utiliser select case avec une plage , dans la procedure double click?
j'ai essayé mais sans succès

de plus j'ai besoin de Target dans les macro 1, 2 ,3et 4
mais target n'est pas reconnue dans les macro 1,2,3 et 4 que j'ai placées dans module 1
Pouvez vous m'eclairer merci
Cordialement
 

CBernardT

XLDnaute Barbatruc
Re : Select Case - Target - Plage

Bonjour Sarlone et le forum,

Pour la question 1 essaye cette syntaxe :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D9:D32")) Is Nothing Then
MACRO1
ElseIf Not Application.Intersect(Target, Range("F9:F32")) Is Nothing Then
MACRO2
ElseIf Not Application.Intersect(Target, Range("H9:H32")) Is Nothing Then
MACRO3
ElseIf Not Application.Intersect(Target, Range("U7:Z7")) Is Nothing Then
MACRO4
End If
End Sub

Pour la question 2 il nous faut un extrait simplifié de ton fichier pour voir où cela coince;)
 

Sarlone

XLDnaute Occasionnel
Re : Select Case - Target - Plage

merci CbernardT

Kjin m'avait suggéré:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A1:L7")) Is Nothing Then Action
If Not Application.Intersect(Target, Range("A77:J87")) Is Nothing Then Action1
End Sub
mais les else conviennent mieux car il y a un enchainement de conditions
( je lui avais pas tout donné comme indication, il faut le reconnaitre )

Pour ce qui est du ficchier simplifié, je vais essayer car il doit pas depasser une certaine taille, je poste ca dans la journée

merci pour la rapidité de la reponse
A+
 

Pierrot93

XLDnaute Barbatruc
Re : Select Case - Target - Plage

Bonjour Sarlone, Bernard

peut être ainsi si j'ai bien compris :

Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D9:D32")) Is Nothing Then
    Call macro1(Target): Cancel = True
    ElseIf Not Application.Intersect(Target, Range("F9:F32")) Is Nothing Then macro2 Target: Cancel = True
    ElseIf Not Application.Intersect(Target, Range("H9:H32")) Is Nothing Then macro3 Target: Cancel = True
    ElseIf Not Application.Intersect(Target, Range("U7:Z7")) Is Nothing Then macro4 Target: Cancel = True
End If
End Sub

laes procédures sont ensuite déclarées ainsi :

Code:
Sub macro1(macellule As Range)

End Sub

bon après midi
@+
 

Sarlone

XLDnaute Occasionnel
Re : Select Case - Target - Plage

merci Pierrot93

j'essaye ca cet aprem
peux tu me dire (je chercherai de mon coté aussi car l'ai vu qqpart)
1) l'utilité de option explicit
2) et ça : Call macro1(Target): Cancel = True
call macro1(target) g pigé , mais pas le reste

merci
A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Select Case - Target - Plage

Bonjour le fil, bonjour le forum,

Comme Pierrot doit faire la sieste je me permets de prendre la relève...

Option Explicit va t'obliger à déclarer toutes les variables de ton code. Elle t'oblige donc à une rigueur parfois pénible mais qui, finalement, évite bien des bugs. Par exemple avec Option Explicit la boucle :
Code:
For x = 1 to 6
ne sera possible aue si tu as déclaré Dim x as Byte.

Pour la seconde question, le double-clic engendre le mode édition par défaut. Dans la macro événementielle BeforeDoubleClick tu evites l'entrée en mode édition avec Cancel = True.
 

Pierrot93

XLDnaute Barbatruc
Re : Select Case - Target - Plage

Re,

pour le 1 "option explicit" placé en tête de module, oblige à ce que toutes les variables soient déclarées, cela évite bien souvent des erreurs, et permet également d'en détecter certaines plus failement...

pour le 2, pas trop compris.....

Edition : Re Robert:), pas raffraichis moi, enfin mon écran...
 

Discussions similaires

Réponses
3
Affichages
829

Statistiques des forums

Discussions
312 083
Messages
2 085 188
Membres
102 809
dernier inscrit
Sandrine83