VBA - Liste en cascade et déplacement de formule vers la droite

lamailloche

XLDnaute Junior
Bonjour le Forum,
Liste en cascade : pour être positionner sur le 1er élément de la liste pour le second menu, j'ai dans Visual Basic Editor, insérer dans le Worsheet/Change de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" And Target.Count = 1 And Target <> "" Then
Target.Offset(2, 0) = Sheets("Paramètres").Range("GT_Manager")(1).Offset(1, Application.Match(Target, [PLTnew], 0) - 1)
End If
End Sub

Là, c'est ok !

Le souci vient après, quand je veux tirer une formule vers la droite sur plusieurs colonnes (1 colonne, ca fonctionne) par rapport à une cellule active, visual affiche une erreur "Incompatibilité de type" et pointe sur la ligne :
If Target.Address = "$D$2" And Target.Count = 1 And Target <> "" Then

Je ne comprends pas (il faut dire que j'ai pompé sur le site de J Boisgontier et beaucoup de choses m'échappent)
En espérant avoir été claire et que vous trouverez une réponse à mon problème.
Merci
 

lamailloche

XLDnaute Junior
Re : VBA - Liste en cascade et déplacement de formule vers la droite

Merci mais j'avoue que je ne comprends pas, alors je joins une copie d'écran de ma page excel.

If Not Intersect(Target, [d2:e2]) Is Nothing And Target.Count = 1 And Target <> "" Then

Pourquoi [d2:e2]) ?
 

Pièces jointes

  • ScreenShot.bmp
    883.5 KB · Affichages: 53

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : VBA - Liste en cascade et déplacement de formule vers la droite

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$D$2" And Target.Count = 1 Then
    If Target <> "" Then
       Target.Offset(2, 0) = Sheets("Paramètres").Range("GT_Manager")(1).Offset(1, Application.Match(Target, [PLTnew], 0) - 1)
    End If
  End If
End Sub

JB
 

Discussions similaires

Statistiques des forums

Discussions
312 322
Messages
2 087 284
Membres
103 507
dernier inscrit
tapis23