je te remercie vivement pour ton aide je regarderai tout cela demain car ce foutu bug m'a épuisé peut être ai - je vu trop grand en tout cas je te renouvelle mes remerciements bonne soiréeHello
le code est exceptionnellement (et anormalement à mon avis) long !
pour tes tableaux, je te conseille fortement d'utiliser les tables structurées avec des noms adéquats
regarde en PJ
sur le formulaire.. un nombre incroyable de controles tel que je n'ai pas trouvé le combobox qui est rempli en début de procédure "Useform_initialize" (je l'ai modifiée pour te montrer comment charger le combo avec la table strucuturée
Bonjour,
Comme l'intitulé l'indique voici le message qui s'affiche lorsque lorsque je lance ma macro "userform.show 0 " et ce après avoir insérer les premières données dans mon onglet "BD" auparavant vide. En d'autre terme une fois mes premières données rentrée, je ne peux plus appeler mon userform sans que le message en objet s'affiche.
je crois avoir déceler le code à l'origine de ce bug le voici "
Set f = Sheets("BD")
dans Useform initialize
Me.ChoixNom.List = f.Range("B2:B" & f.[B65000].End(xlUp).Row).Value
je joins mon fichier pour info ce dernier contient 3 combobox qui se superpose donc j'utilise combobox.visible = true selon l'onglet sollicité
Voilà si l'un d'entre vous peut m'aider, je l'en remercie par avance
ha si.. ca y est.. je l'ai trouvé;. il est planqué derrière 3 autres combobox....
pourquoi utiliser des combo différents selon la feuille??
il y a tellement de controle sur ton formulaire, que je n'arrive meme pas à voir TOUT le useform sur mon écran..
Je viens de m'y remettre aujourd'hui. Suite à tes modifications en lien avec le chargement de la combobox l'erreur 381 a disparue un grand GRAND merci. Peux tu m'en dire un peux plus sur ton code ci dessous ?Hello
le code est exceptionnellement (et anormalement à mon avis) long !
pour tes tableaux, je te conseille fortement d'utiliser les tables structurées avec des noms adéquats
regarde en PJ
sur le formulaire.. un nombre incroyable de controles tel que je n'ai pas trouvé le combobox qui est rempli en début de procédure "Useform_initialize" (je l'ai modifiée pour te montrer comment charger le combo avec la table strucuturée
Set f = Sheets("BD") 'set de la feuille à la varialbe f
With f 'avec la feuille (pas besoin de l'activer)
If .ListObjects("Tab_BD").ListRows.Count <> 0 Then 'si la table structurée "Tab_BD" n'est pas vide
Me.ChoixNom.List = f.ListObjects("Tab_BD").DataBodyRange.Value 'on place les données dans la list du combo'
End If
End With
Oui pris par le temps et de surcroit pas mes connaissances limitées en VBA j'ai essayé de faire au mieux mais à vouloir aller trop vite on ne fait que complexifier les choses. En tout cas maintenant sa fonctionne et je t'en remercie. Encore une question peut on trier par ordre croissant l'une des colonnes d'un tableau structuré la colonne B par exemple "Conca". Bonne SoiréeC'est quand meme une bonne usine à gaz...
des select case dans tous les sens.. juste pour dire : if Nom="" then exit sub
des select case mal utilisés==> exemple
select case responsable
case is "Père"
bla bla bla
end select
select case responsalbe
case is "Mère"
bla bla bla
end select
==> autant ne faire qu'un seul select case..
des bouts de code identiques et redondants
ex (101 lignes) dans 4 ou 5 macro différentes==> j'ai modifié pour créer une macro "LoadUSF" et une "SaveUSF"
plus grave.. des Noms de personnel et leur numéro de tel en dur dans le code==>
le jour où un agent change de poste et qu'il est remplacé.. et ou que le numéro de tel change.. tu fais quoi?? tu modifies dans le code??
j'ai créé une table "Structure" dans la feuille "Liste" pour inscrire les données
le code de la macro "ComboBox2Structure_Change" est modifiée pour aller chercher l'info qui va bien
des déclarations de variables en plein milieu du code (au fur et à mesure que tu les utilises)==> normalement les déclarations de font en début de macro
comme je le disais déjà, une indentation inexistante qui rend le code illisible
des macros entières mises en commentaire==> autant les supprimer
des noms de controles totalement ingérables.. label1....2.37... vu que tu gères leur contenu en fonction de certains critères.. il serait bon de leur donner un nom explicite.. j'imagine que tu dois passer des heures à chercher quel label il faut modifier..
des bouts de code pour des controles inexistants....
Bref.. y'a du tri à faire...