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

Dranreb

XLDnaute Barbatruc
Bonsoir
Essayez déjà avec une seconde variable globale As ComboBoxLiées portant un autre nom.
Transformer vos plage en vrais tableaux ne vous intéresse-t-il pas ?
L'emploi de mon complément CBxLCtlA.xlam non plus ?
Édition: L'écriture sur une 3ème feuille, ça ne va pas non plus. Ou peut être que si mais LaLigne ne me semble pas initialisé. D'ailleurs c'est laquelle ? Celle du 1er tableau ou de l'autre ? Il vous faut les 2, non ? Il vous faut deux Sub _BingoUn(Ligne) pour les obtenir !
 
Dernière édition:

yolojo

XLDnaute Occasionnel
Merci Dranreb pour votre réponse mais j'avoue ne pas vraiment comprendre ce dont vous me parlez.
Essayez déjà avec une seconde variable globale As ComboBoxLiées portant un autre nom.
A quoi correspond cette variable et où dois je creer cette nouvelle variable ?
Transformer vos plage en vrais tableaux ne vous intéresse-t-il pas ?
qu'entendez-vous par plage ?
L'emploi de mon complément CBxLCtlA.xlam non plus ?
je ne comprend pas de quoi vous me parlez
L'écriture sur une 3ème feuille, ça ne va pas non plus. Ou peut être que si mais LaLigne ne me semble pas initialisé. D'ailleurs c'est laquelle ? Celle du 1er tableau ou de l'autre ? Il vous faut les 2, non ?
si je comprends bien vous voulez savoir quel tableau correspond à quel champ ? dans le userform, deux champ sont de couleur verte. Dans le premier (Numéro), en fonction de la valeur saisie, les champ "Nom" et Prénom" seront rempli avec les données du tableau "liste salariés".
la saisie dans le second champ vert (N°du cadeau) remplira les champ "Lettre", "Désignation" et "Prix" en fonction des données du tableau "Liste cadeaux".
Un troisième choix pourrais etre possible en sélectionnant l'option " chèque Cadhoc de 40€) qui remplacera le choix du cadeau (dans le second vert)
Il vous faut deux Sub _BingoUn(Ligne) pour les obtenir !
la non plus, je ne vois pas de quoi vous parlez !

Je suis vraiment désolé d'être aussi inculte sur le codage en VBA. Je n'ai pendant ces années, à défaut de comprendre vos codes,, tenter de la adapter à mes utilisations, mais là je craint ne pas être en capacité de le modifié seul ou du moins sans votre aide.
Merci d'avance pour votre patience.
 

Dranreb

XLDnaute Barbatruc
Vous devez tout définir en double si vous voulez chercher des infos dans deux plages.
ComboBoxLiéees est un type de donnée objet permettant de prendre en charge des ComboBox de différentes colonnes d'une seule même plage, ayant de préférence fait l'objet d'une mise sous forme de tableau (en Excel 2016, menu Accueil, groupe Styles, commande Mettre sous forme de tableau). Mais vous pouvez en utiliser plusieurs différents si vous avez besoin de récupérer des données de plusieurs plages. Ils se déclarent en tête du module par une instruction Private WithEvents LeNomDeVotreVariable As ComboBoxLiées
Ah oui il vous manque vraiment toutes les bases, même les termes courant en Excel. On appelle une plage un groupe de cellules contiguës dans une feuille. En VBA elle est représentée par un objet Excel de type Range. S'il elle a été mise sous forme de tableau elle est de plus couverte par un objet Excel de type ListObject qui offre bien des facilités pour la gérer.
Je vous parlais de cette ressource :
BingoUn est un évènement déclenché par un objet ComboBoxLiées. Il se prend en charge par une Private Sub LeNomDeVotreVariable_BingoUn(ByVal Ligne As Long).
Je veux bien vous aider, mais allez vous installer cette ressource, et êtes vous d'accord pour mettre les plages sous forme de tableaux ?
 
Dernière édition:

yolojo

XLDnaute Occasionnel
Merci bien pour cette réponse
j'accepterais volontiers votre aide et je suis pret à installer les ressources nécessaires et à mettre les plages sous forme de tableau si cela peut m'aider à avancer. Mais comme vous l'avez justement dit mes connaissances sont limités en VBA même si je me débrouille un petit peu sur Excel je n'ai pas forcément le vocabulaire adapté pour comprendre les termes que vous employez. Je ne demande qu'à apprendre .
Merci de votre patience
 

yolojo

XLDnaute Occasionnel
J'ai essayé de créer une nouvelle variable appelée CBL2.
J'ai doublé les lignes de codes (voir image ci-jointe)
est-ce que je suis sur la bonne voie ?
1594934774902.png
 

yolojo

XLDnaute Occasionnel
je viens également de créer dans mes deux onglets "liste salariés" et "liste cadeaux" deux tableaux contenant les plages de cellules utilisées. Ma question est : A chaque fois que je voudrais rajouter des lignes à mon tableau, il faudra que je le redéfinisse les limite de mes tableux dans gestionnaire de noms ?
 

Dranreb

XLDnaute Barbatruc
Pas trop mal, mais pour mieux s'y retrouver il vaudrait mieux les appeler CLsSal et CLsCad.
Les titres des colonnes peuvent être spécifiés en guise de spécification de colonne aux Add si les plages ont fait l'objet d'une mise sous forme de tableaux. Plus besoin de noms en plus dans le classeur. Non, il n'y aura pas besoin de s'occuper du nombre de lignes des tableaux.
Si vous êtes toujours d'accord pour utiliser le complément, téléchargez le CBxLCtlA.xlsm de la ressource, ouvrez le et accordez lui la permission de s'installer en .xlam sur votre dossier de compléments. Cochez provisoirement "CBx liées et Ctl associés" dans menu Développeur, groupe Compléments, commande Compléments Excel.
 

Dranreb

XLDnaute Barbatruc
Moi, dans la rubrique Microsoft Excel Objets je renommerais aussi "Feui5" en "WshLstSal" et "Feuil4" en "WshLstCad" et "Feuil2" en … "WshChoix" ? Mais bon, je suis maniaque et je renomme toujours tout.
Il manque toujours les CLsSal_BingoUn et CLsCad_BingoUn pour obtenir les deux LCouSal et LCouCad à la place de votre unique LaLigne actuel …
Je ne travaille jamais directement avec des cellules individuelles. Je passe toujours par un tableau dynamique d'une ligne que j'affecte ensuite en une fois à toute la ligne de cellules.
Je les appelle généralement TVLCad() par exemple comme Tableau des Valeurs de la Ligne courante de Cadeau.
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 078
Membres
103 455
dernier inscrit
saramachado