XL 2016 Comment différencier 2 codes VBA pour qu'ils s'exécutent

thomasdu43

XLDnaute Occasionnel
Bonjour,
Je souhaite coller un code VBA dans une feuille contenant déjà un code. Le code à coller est identique à l'autre, seules les cellules de destination et la base de données à laquelle il se réfère changent.
Comment distinguer chaque code l'un de l'autre ?

Ci-dessous le début du code et en rouge les éléments différenciants de chacun d'eux.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([b3:b3], Target) Is Nothing And Target.Count = 1 Then
Set d1 = CreateObject("Scripting.Dictionary")
For Each c In [choix1]: d1(c.Value) = "": Next c
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula1:=Join(d1.keys, ",")
End If
'-- niv 2
If Not Intersect([b4:b4], Target) Is Nothing And Target.Count = 1 Then
Set d1 = CreateObject("Scripting.Dictionary")
For Each c In [choix2]
If c.Offset(0, -1) = Target.Offset(-1) Then d1(c.Value) = ""
Next c
If d1.Count > 0 Then
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula1:=Join(d1.keys, ",")
End If
End If


Faut il qu'ils soient dans 2 feuilles différentes ?

Merci de votre aide.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Sur la base du fichier de l' autre conversation puisque le fichier joint qui était ici a disparu.

Ce n'est pas la macro qu'il faut changer mais les sources qui sont définies dans les noms Choix1, Choix2, Choix3.
J'y ai remplacé simplement le nom de la feuille d'origine.
Je vois que ces noms sont définis en comptant le nombre de valeur dans la colonne entière A:A. C'est une méthode déconseillée (fuite de mémoire, alourdissement des temps de calculs).
Vous êtes sous 2016, alors pourquoi ne pas utiliser les tableaux structurés (sous xl2010 c'est dans insertion/tableaux - sous 2016 ?).
Donnez-leur des noms explicites genre Tbl_BDPropriétés, Tbl_BDGénérale.

Cordialement
 

Pièces jointes

  • thomasdu43-2-Rob.xlsm
    47.3 KB · Affichages: 1

thomasdu43

XLDnaute Occasionnel
Bonjour,

Sur la base du fichier de l' autre conversation puisque le fichier joint qui était ici a disparu.

Ce n'est pas la macro qu'il faut changer mais les sources qui sont définies dans les noms Choix1, Choix2, Choix3.
J'y ai remplacé simplement le nom de la feuille d'origine.
Je vois que ces noms sont définis en comptant le nombre de valeur dans la colonne entière A:A. C'est une méthode déconseillée (fuite de mémoire, alourdissement des temps de calculs).
Vous êtes sous 2016, alors pourquoi ne pas utiliser les tableaux structurés (sous xl2010 c'est dans insertion/tableaux - sous 2016 ?).
Donnez-leur des noms explicites genre Tbl_BDPropriétés, Tbl_BDGénérale.

Cordialement
ok merci. Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 077
Membres
103 111
dernier inscrit
Eric68350