BeforeDouble Click sur plusieurs colonnes

Bonjour, j'ai cette macro qui active mon messagebox quand je clique sur la colonne W. Mais j'aimerais maintenant l'étendre de la colonne W à la colonne AF.

Seulement quand je fais la modif, sur ligne_d et di il y a un probleme. Est ce que vous avez une idée à me conseiller ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("W4:W200")) Is Nothing Then

Cancel = True 'Annule la modif de la cellule

ligne_d = Target.Offset(0, -17).Value

di = Target.Offset(0, -22).Value

Call InfosCommDICA.afficher(ligne_d, di) 'Va chercher le module pour rentrer les données

End If

End Sub

En gros j'aimerais que mon sub beforedoubleclick, marche de la meme manière si on clique sur n'importe quelle colonne de W à AF.

Bonjour,

Il suffit de changer la référence souhaitée dans l"intersect :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("W4:AF200")) Is Nothing Then
    Cancel = True 'Annule la modif de la cellule
    ligne_d = Target.Offset(0, -17).Value
    di = Target.Offset(0, -22).Value
    Call InfosCommDICA.afficher(ligne_d, di) 'Va chercher le module pour rentrer les données
End If
End Sub

Aussi, pensez bien à déclarer vos variables ligne_d et di du même type que les paramètres de la macro afficher.

Cdlt,

PS : Pour poster du code, n'hésitez pas à utiliser les balises </> du ruban d'icônes.

Bonjour oui c'est ce que j'ai fait mais ma ligne D et DI ne marche plus du coup et j'ai un message d'erreur.

Effectivement j'utiliserai cette fonction pour mon code merci du conseil

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("W4:AF200")) Is Nothing Then
    Cancel = True  'Annule la modif de la cellule

    ligne_d = Target.Offset(0, -17).Value 'le probleme est pour que ça calcul la colonne ou est l'information car actuellement elle est calculé par rapport à la colonne "W"

    di = Target.Offset(0, -22).Value   'idem

    Call InfosCommDI.afficher(ligne_d, di)
End If

End Sub

Les 2 variables ligne_d et di rentrent en argument de la macro afficher. Il est impératif de les déclarer dans ce cas. Il faut que leur type respectif corresponde bien au type du paramètre correspondant dans la macro afficher.

Sinon, on peut faire ça :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("W4:AF200")) Is Nothing Then
    Cancel = True 'Annule la modif de la cellule
    InfosCommDICA.afficher Target.Offset(0, -17).Value, Target.Offset(0, -22).Value
End If
End Sub

Cdlt,

Salut,

Je me demande si la colonne ne serait pas également importante à indiquer dans les paramètres de la Sub InfosCommDICA.afficher...

Sinon qu'elle utilité de prévoir le double-clic sur les colonnes W=>AF...

Rechercher des sujets similaires à "beforedouble click colonnes"