XL 2016 fichier ne fonctionne plus

yolojo

XLDnaute Occasionnel
Bonjour à tous
Danreb m'avait créer un fichier très utile que j'utile régulièrement depuis des années et que j'adapte à mes besoins professionnels quotidiens.
Malheureusement j'ai eu besoin de travailler avec deux listes différentes. j'ai donc essayer de modifier mon fichier et depuis plus rien de fonctionne.
Si quelqu'un peut me venir en aide ?
Je vous joints le fichier en question.
Merci d'avance
 

Pièces jointes

  • Commande cadeaux.xls
    935 KB · Affichages: 32

yolojo

XLDnaute Occasionnel
si j'essai d'ouvrir le projet CBxLCtlA.xlam , il me demande un mot de passe !
j'ai un module références contenant référence à CBxLCtlA.xlam qui vient de se créer mais je ne peut l'ouvrir
J'ai remis les ComboBoxLiés au masculin mais ce n'est pas mieux.
en même temps je n'ai toujours pas trouvé pur rajouter les les ClsSal_BingoUn et CLsCad_BingoUn
 

Dranreb

XLDnaute Barbatruc
C'est normal tout ça. Non, il doit être au féminin.
Feuil4 et Feuil5 sont restés au lieu des WshLst… plus clairs.
Il n'y plus lieu de mettre Rows(2) derrière car si on lui spécifie une expression Worksheet il comprend qu'il doit chercher son 1er ListObject. Je procède aussi aux modifications de mon coté, je proposerai le code dès qu'il tournera …
 

Dranreb

XLDnaute Barbatruc
Il ne faudrait jamais s'écrire les procédures de prise en charge d'évènements. Toujours utiliser pour cela les listes déroulantes qui surmontent la fenêtre de code. J'ai mis un moment à trouver ce truc :
UserForm_Initialise au lieu de UserForm_Initialize !
Je continue les tests …
 

Dranreb

XLDnaute Barbatruc
J'en suis là, ça commence à fonctionner :
VB:
Option Explicit
Private WithEvents CLsSal As CLsCAs.ComboBoxLiées, LCouSal As Long, TVLSal()
Private WithEvents CLsCad As CLsCAs.ComboBoxLiées, LCouCad As Long, TVLCad()
Private Sub UserForm_Initialize()
   Set CLsSal = CLsCAs.Création.ComboBoxLiées ' Attribue à CLsSal un exemplaire nouvellement créé d'objet ComboBoxLiées.
   CLsSal.Plage WshLstSal  ' Indiquer au moins la 1ère ligne de la plage à couvrir. Mais c'est mieux si c'est un tableau Excel et qu'on indique juste la feuille…
   CLsSal.Add Me.ComboNumCarte, "Carte" ' Enseigne la ComboNumCarte comme devant recevoir des listes de choix prise de la colonne "NumCarte"
   CLsSal.Add Me.ComboNom, "Nom" ' Enseigne la ComboNom comme devant recevoir des listes de choix prise de la colonne "Nom"
   CLsSal.Add Me.ComboPrénom, "Prénom" ' Enseigne la ComboPrénom devant recevoir des listes de choix prise de la colonne "Prénomé. Mettez autant de CLs.Add qu'il y a de ComboBox à gérer.
   CLsSal.CouleurSympa          ' Permet de distinguer si les ComboBox contiennent un choix prévu ou non. Peu utile s'ils ont .MatchRequired = True.
   CLsSal.Actualiser            ' Démarre la gestion des ComboBox
   Set CLsCad = CLsCAs.Création.ComboBoxLiées ' Attribue à CLsSal un exemplaire nouvellement créé d'objet ComboBoxLiées.
   CLsCad.Plage WshLstCad ' Indiquer au moins la 1ère ligne de la plage à couvrir. Mais c'est mieux si c'est un tableau Excel et qu'on indique juste la feuille…
   CLsCad.Add Me.ComboN°, "NumCadeau" ' Enseigne la ComboN° comme devant recevoir des listes de choix prise de la colonne "NumCadeau"
   CLsCad.Add Me.ComboLettre, "Lettre" ' Enseigne la ComboLettre comme devant recevoir des listes de choix prise de la colonne "Lettre"
   CLsCad.Add Me.Combodesign, "Designation" ' Enseigne la Combodesign comme devant recevoir des listes de choix prise de la colonne "Designation"
   CLsCad.Add Me.ComboTarifs, "Tarifs" ' Enseigne la ComboTarifs comme devant recevoir des listes de choix prise de la colonne "Tarifs"
   CLsCad.Actualiser
   End Sub
Private Sub CLsSal_BingoUn(ByVal Ligne As Long)
   LCouSal = Ligne
   TVLSal = CLsSal.Lignes(LCouSal).Range.Value
   End Sub
Private Sub CLsCad_BingoUn(ByVal Ligne As Long)
   LCouCad = Ligne
   TVLCad = CLsCad.Lignes(LCouCad).Range.Value
   End Sub
Private Sub CmdAnnuler_Click()
   CLsSal.Nettoyer: LCouSal = 0
   CLsCad.Nettoyer: LCouCad = 0
   End Sub
Private Sub CmdArreter_Click()
   Unload Me
   End Sub
Private Sub CmdValider_Click()
   Dim TVLChx(1 To 1, 1 To 7)
   TVLChx(1, 1) = TVLSal(1, 1)
   TVLChx(1, 2) = TVLSal(1, 2)
   TVLChx(1, 3) = TVLSal(1, 3)
   TVLChx(1, 4) = TVLCad(1, 1)
   TVLChx(1, 5) = TVLCad(1, 2)
   TVLChx(1, 6) = TVLCad(1, 3)
   TVLChx(1, 7) = TVLCad(1, 4)
   WshChoix.[A65536].End(xlUp).Offset(1).Resize(, 7).Value = TVLChx
' S'il était aussi sous forme de tableau on aurait pu faire :
'  wshchoix.listobjects(1).listrows.add.range.value = tvlchx
   CLsSal.Nettoyer
   CLsCad.Nettoyer
   End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 467
Messages
2 088 678
Membres
103 915
dernier inscrit
VT14907