Problème d'alimentation de ComboBox

Bonsoir le forum

Je suis en train de réaliser un UserForm me permettant de remplir un tableau.

En m'appuyant sur un modèle de code que Thau Thème a écrit pour moi sur un autre projet, j'ai ré-écris ce que j'avais besoin , ça me permet de comprendre et d'apprendre.

Mais voilà en définissant les alimentations dynamiques je n'arrive pas à alimenter mes ComboBox et je ne comprends pas pourquoi.

De plus existe-il le moyen de définir un format bien précis et donc obligatoire de remplissage d'un TextBox ( ex : FI-33063-001V)

ce qui compte c'est le nombre de caractères et les lettres en majuscules

Si tout le document est bloqué est majuscule c'est très bien

y-a-t-il la possibilité de modifier les conditions de remplissage des "Box" en fonçant certaines et pas d'autres ?

Je joins le fichier

je vous remercie d'avance pour votre disponibilité et pour votre aide

36cemjf2015.xlsm (23.81 Ko)

Bonsoir,

Pour répondre à la 1ère question...

Euh, même si l'USF se nomme UserForm1, il ne faut pas mettre son nom dans l'Initialize

Private Sub UserForm1_Initialize() 'à l'initialisation de l'UserForm

Mais mettre tout simplement :

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm

Et ensuite, comme il n'y a pas d'onglet nommé "Immeuble", tu auras aussi une erreur...

Et ensuite, pour la 2ème question, privilégier un balayage de plage de cellules, avec .AddItem, qu'utiliser la méthode .List

Style :

Dim Cel As Range

For Each Cel In AN.Range("B3:B" & AN.Cells(Application.Rows.Count, 2).End(xlUp).Row)
    If Cel <> "" Then Me.ComboBox1.AddItem UCase(Cel.Value)
Next Cel

Bon courage

Bonsoir,

>Et ensuite, pour la 2ème question, privilégier un balayage de plage de cellules, avec .AddItem, qu'utiliser la méthode .List

Pourquoi? List est + rapide

Ceuzin

Re-,

Pourquoi? List est + rapide

Sans aucun doute, mais la liste est figée, on ne peut pas vérifier si une cellule est vide ou non, si le format désiré est correct, bref, on charge effectivement la liste, mais en "brut"...

Personnellement, je fais comme cela, maintenant, chaque méthode a sans doute ses avantages, et inconvénients

Mais ce n'est que mon humble avis, et je suis très loin d'avoir ton expérience en la matière.

D'ailleurs, je fréquente (et utilise) très fréquemment ton site, où j'y puise bon nombre d'astuces.

Bonne soirée

Bonsoir le fil

Merci pour la réactivité

Dis moi cousinhub

Ce bout de code c'est bien pour alimenter le ComboBox1?

Dim Cel As Range

For Each Cel In AN.Range("B3:B" & AN.Cells(Application.Rows.Count, 2).End(xlUp).Row)

If Cel <> "" Then Me.ComboBox1.AddItem UCase(Cel.Value)

Next Cel

Si j'ai 4 ComboBox est ce qu'il faut que je déclare 4 Dim Cel As Range ou je modifie juste les colonnes correspondantes aux autres ComboBox?

D'avance merci pour ta réponse

Re-,

Ce bout de code c'est bien pour alimenter le ComboBox1?

Comme marqué dans le code :

Me.ComboBox1.AddItem

Il s'agit bien du ComboBox1...

Et il n'est nul besoin de déclarer Cel plus d'une fois, il suffit juste de changer la plage de cellules à "balayer"...

Bonne soirée

Bonjour,

>Sans aucun doute, mais la liste est figée, on ne peut pas vérifier si une cellule est vide ou non, si le format désiré est correct, bref, on charge effectivement la liste, mais en "brut"...

Rien n'empêche d'analyser chaque item et d'alimenter un tableau ou un dictionnaire

puis ensuite d'alimenter le combobox avec le cbx.list=tableau ou cbx.List=dico.keys / dico.items

Ceuzin

Bonsoir le forum

bonsoir le fil

Merci beaucoup pour votre aide et votre disponibilité

J'ai alimenté mes ComboBox

avec ceci

Dim Plage As String

With Sheets("ANNEXES")

Plage = .Range("B3:B" & .Range("B65536").End(xlUp).Row).Address

End With

ComboBox1.RowSource = "ANNEXES!" & Plage

bon ça sa fonctionne

Mais je n'arrive pas à envoyer les données de mes "Box" vers le tableau avec la commande qui définit la première ligne vide

je remet le fichier corriger

d'avance merci de votre aide et de vos explications

47cemjf2015.xlsm (26.70 Ko)
Rechercher des sujets similaires à "probleme alimentation combobox"