Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 problème d'execution 9 sur Userform

youpi457032

XLDnaute Occasionnel
Bonjour,
Je possède un fichier que j'ai tenté de modifier pour coller à mes besoins
J'ai réussi à créer à l'aide de contributeurs de ce forum que je remercie un nouveau filtre qui fonctionne très bien.
Je possède un Userform formulaire_élève qui auparavant fonctionnait très bien (dans mon ancien fichier).
En modifiant la macro de cet userform pour coller à mes nouveaux besoins (restructuration de la base de données oblige), mon userform formulaire élève ne fonctionne plus. J'ai une erreur d'execution 9 (l'indice n'appartient pas à la sélection) que je me retrouve incapable de détecter... Après des heures de bidouillage en tout genre je suis à bout !!!
si quelqu'un peut m'aider....
Je remercie d'avance celui, ceux, celle ou celles qui accepteront de m'aider...
Je joins le fichier qui pose problème (anonymisé)
la macro a examiner se trouve sur le userform formulaire elève
 

Pièces jointes

  • filtre multicritères travail (4).xlsm
    772.9 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Bonsoir.
CL.Add Me.Recherche, 68
Bizarre cette colonne 68 alors que votre Tableau1 n'en comporte que 24.
Vous savez que lorsque la plage est couverte par un ListObject vous pouvez spécifier les intitulés des colonnes en guise de spécifications de colonnes dans les Add.

C'est peu utilisé mais un ControlsAssociés peut aussi être déclaré avec l'attribut WithEvents si ça peut vous être utile. Ça semble être le cas vu que vous avez de nombreuses répétitions de Private Sub Tnn_Change() qui pourraient être remplacées par une seule Private Sub CA_Change(ByVal CAM As CLsCAs.CAsso). Un argument Mode peut être spécifié au CA.Add en 3ème position pour pouvoir y faire un Select Case CAM.Mode afin d'orienter le traitement.

Édition: Et désolé, je viens de voir CL.Plage Feuil1.Rows(2), NbCol:=69 or cette option n'est pas prise en compte s'il trouve un ListObject. Donc CL.PlgTablo.Address = "$A$2:$X$188".
Tout comme CL.Lignes.Parent.DataBodyRange.Address d'ailleurs…
 
Dernière édition:

youpi457032

XLDnaute Occasionnel
Re bonsoir,
bon je n'y comprends plus rien... ca me dépasse...
en effet mon tableau compte 24 colonnes .... j'aimerai qu'il en compte en effet 69.... c'est évident... comment je fais cela ???
je reposte mon fichier,
avec le fichier de reference qui permet l'utilisation des contrôles CA.add
je n'ai pas créé ce fichier référence.... il m'a été fournis clé en main...
est-ce que vous pouvez regarder pourquoi mon userform form Formulaire élève refuse de s'executer ?
Merci
 

Pièces jointes

  • filtre multicritères travail (4).xlsm
    762 KB · Affichages: 2
  • CBxLCtlA.xlsm
    174.4 KB · Affichages: 2

Dranreb

XLDnaute Barbatruc
Il y a une commande Redimensionner le tableau dans le groupe Propriétés du menu de conception de la table.
Oui j'ai déjà le CBxLCtlA, vu que j'en suis l'auteur !
Corrigez d'abord la taille du tableau, car je soupçonne que le CL est complètement paumé avec cette colonne 68 en dehors du tableau.
Hé, mais je viens de voir que vous y avez mis des NOM Prénom ! C'est totalement inutile. Confiez simplement les colonnes A et B à deux ComboBox prise en charge par CL. ComboBoxLiées ça veut dire plusieurs ComboBox liées. Et celles ci sont faites avant tout pour y taper des choses, comme les TextBox. Le bouton flèche n'a pas à être forcément toujours utilisé.
Rappel: vous pouvez y spécifier les intitulés des colonnes au lieu de leurs numéros. Comme ça si vous en ajoutez ou supprimez, le reste suit. Faire Set CA.Colonnes = CL.Colonnes au début pour pouvoir en disposer aussi pour le CA.
 

youpi457032

XLDnaute Occasionnel
bonsoir !
Merci de prêter un oeil bienveillant à mon problème !
J'ai en effet redimensionner tout mon tableau, mais rien n'y fait !
j'ai toujours cette erreur d'execution 9
je ne comprends pas.... pourquoi le formulaire refuse de s'intialiser
L'indice n'appartient à la Sélection .... mais de quel indice parle t- il ?????
Peux tu m'aider !!!???? je suis largué !!! de chez largué !!!
j'ai un premier fichier que j'avais créé à l'aide de ta feuille référence.... ce fichier fonctionnait parfaitement...
hors j'ai dû restructurer ma base, don nouveau ficher à partir d'une base retravaillée...
j'ai retravaillé mers CA.Add en fonction de mes nouveaux besoins...;
puis bidouiller le reste de ma macro.... Or rien n'y fait.... je ne détecte pas le problème...
je joins les deux fichiers (l'ancien qui fonctionne) et le nouveau dont j'aurai grandment besoin mais qui plante...
voilà...
si tu pouvais m'aider à déboguer tout ça.... je suis preneur ....
 

Pièces jointes

  • filtre multicritères travail (4).xlsm
    827.9 KB · Affichages: 1
  • ancien fichier fonctionnel.xlsm
    169.7 KB · Affichages: 1

Dranreb

XLDnaute Barbatruc
Ça ne va toujours pas. Le ListObject a seulement 67 colonnes et la Recherche est indiquée pour 68
Pourquoi ne faites vous pas ce que je dis: Rempacer les TextBox T1 et T2 par des CBxNom et CBxPrénom et les confier à CL au début par CLAdd CBxNom, "Nom de l'élève": CL.Add CBxPrénom, "Prénom de l'élève" et supprimer la CBx Recherche.
Je n'ai pas d'erreur 9 mais d'abord un plantage dans la classe CassoCBx. Apparemment il ne supporte pas la propriété Style à 2 - fmStyleDropDownList, il veut 0 - fmStyleDropDownCombo sinon ça provoque une erreur lorsqu'il essaye d'affecter un texte qui n'est pas dans sa liste.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour
Je vous conseille vivement de renommer différemment vos contrôles. CBxCours1 au lieu de T14, CBxÉvèn1 au lieu de T20 etc. et d'utiliser les intitulés du tableau en guise de colonne.
Après avoir mis en commentaires les instructions qui essaient d'affecter quelque chose à une inexistante propriété List de plusieurs TextBox (probablement à cause des mauvais noms, d'ailleurs), j'arrive à avoir un affichage chez moi avec ça :
 

Pièces jointes

  • CLsCAsYoupi457032.xlsm
    807.6 KB · Affichages: 4

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…