UserForm_Initialize et ComboBox

Bonjour,

Je suis confronté à un problème , que je trouve très incohérent:

J'ai 2 UserForm. Dans l'un je peux ajouter une valeur dans une feuille sur la ligne 2. Cette valeur se vient remplacer la 1ere cellule vide de la ligne en partant de la gauche. Jusque la pas de problème.
Dans mon autre USF se trouve une liste déroulante qui doit contenir toutes les valeurs de la ligne 2. Pour cela , dans le UserForm_Initialize() je remplis cette ComboBox. Le problème c'est que malgré la paramétrisation dans l'initialisation de l'USF, cette ComboBox ne prend pas en compte les changements récents , c'est a dire les ajout depuis l'ouverture du premier USF.

Pour que la mise a jour se fasse , il faut que je ferme tout et que je relance mon programme VBA. J'ai mis un bouton pour actualiser la liste déroulante avec EXACTEMENT le même code que dans l'initialisation , avec un .Clear avant tout de même, et cela fonctionne parfaitement.

Je ne sais pas si j'ai été bien clair je vais mettre un exemple en dessous, j'aimerai bien comprendre ce qui cloche , je pense que je ne saisit pas forcément toute la subtilité de la fonction UserForm_Initialize.

Exemple:
Je lance mon programme. Dans ma feuille , la cellule A2= Blanc , et B2= Noir . Dans mon premier USF je rentre dans une TextBox : "Jaune". je clique sur mon bouton Valider et la cellule C2 prend la valeur "Jaune".

A l'aide d'un bouton j'ouvre mon 2eme USF où ce trouve la fameuse ComboBox récalcitrante. En effet quand je clique dessus , elle m'affiche uniquement "Blanc" et "Noir".
Pour que le "Jaune" apparaisse je doit quitter le programme VBA et le relancer , ou appuyer sur mon super bouton actuliser.

Voila j'espere que j'ai été clair , n'hésitez pas à me faire savoir dans le cas contraire

A vous lire,
Ewen

Bonjour

Ouvrez vous vos userform en modal ? Je suis absolument pas sur que ça puisse venir de là mais peut être.

Auriez vous un fichier exemple pour tester ?

Bonjour,

ehe...

Cette version d'Excel ne me dit rien ?

Veuillez préciser et joindre le fichier. (un exemple ne servirait probablement à rien.

En revanche vous pouvez supprimer tout ce qui ne sert à rien dans votre fichier : Il suffit que les 2 Userform soit opérationnels.

A+

Bonjour a vous deux , merci de m'avoir répondu.

Ouvrez vous vos userform en modal ?

Je ne sais pas vraiment ce que cela signifie, pouvez vous m'éclairer?

j'ai joint un fichier exemple, il est très concis mais reporte exactement mon problème

De l’intérêt de Option Explicit en tête de chaque module... (C'est une routine à laquelle s'astreignent même les développeurs un peu chevronnés...)

Je suppose que quand tu auras rectifié ça, le problème sera résolu !

Nota : Pour avoir Option Explicit d'office dans tous les module, ça se passe dans VBA :

Outils > Options + Cocher déclaration des variables obligatoires.

A+

Ok j'ai modifier deux trois truc.

En fait tu ne fait que cacher et faire réapparaitre tes userform, par conséquent il ne passe pas par le statut inizialize à chaque fois. J'ai donc rajouter un statut est la ça fonctionne.

Je me suis permis de clear le texte après qu'il est était copié dans la cellule mais tu peu le sortir si tu veux

Super merci ! C'était donc ca la petite subtilité , j'y aurais pas du tout pensé, merci Arnaud!

Je vais me renseigné sur le fonction Explicit Galopin , merci a toi pour le conseil

L'essayer c'est l'adopter...

Ça ne s'ajoutera automatiquement que sur tes futurs nouveaux modules. Sur ceux déjà existants tu devras le rajouter toi même

A+

Rechercher des sujets similaires à "userform initialize combobox"