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

ComboBOX ADDITEM incrémentation

  • Initiateur de la discussion Initiateur de la discussion recovery
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

recovery

Guest
Bonjour à tous

besoin d'aide ma combobox reste désespérément vide depuis mon classeur A j'aimerais alimenter cette dernière à chaque rentrée d'une donnée supplémentaire dans un classeur Source celui ci serait fermé voici un bout de code ainsi que les deux fichiers excel merci pour votre aide

Private Sub MiseAjour()
Chemin = ActiveWorkbook.Path
Set Source = GetObject(Chemin & "\Source.xls")


If ComboBox1.ListCount >= 1 Then
Dim ElementListe As Integer
Dim NbreElt As Integer
NbreElt = cboNom.ListCount - 1
For ElementListe = NbreElt To 0 Step -1
ComboBox1.RemoveItem (ElementListe)
Next ElementListe
End If



Dim compteur As Long
Dim AjoutAuteur As String
For compteur = 2 To Source.Sheets(1).Range("A1").End(xlDown).Row
AjoutAuteur = Source.Sheets(1).Range("A" & compteur).Value
On Error Resume Next
ComboBox1.AddItem (AjoutAuteur)
Next compteur
End Sub
 

Pièces jointes

Re : ComboBOX ADDITEM incrémentation

Bonsoir.
Vous devriez mettre Option Explicit en tête de chaque module.
Ça vous permettrait de voir plein de choses qui ne sont ni déclarées ni définies dans votre Module2. Et qui portent en plus des noms identiques à ceux d'objets internes à l'Userform1.
À +
 
Re : ComboBOX ADDITEM incrémentation

Qu'est-ce que vous voulez faire exactement ?
Expliquez un scénario plus précis des manœuvres qui doivent être effectuées et des résultats attendus.
Est-ce que vous souhaitez, par exemple que l'userform soit affiché à l'ouverture du classeur et qu'il reste affiché en permanence sans empêcher quoi que ce soit, et qu'à chaque activation d'un autre classeur, la liste du ComboBox soit remplacée par le contenu de la colonne A du classeur activé ?
P.S. Pour le moment quand on clique sur l'ellipse, l'Userform1 est affiché et le ComboBox a sa liste garnie des prénoms de la colonne A de la Feuil1. À partir de là, qu'est-ce qu'on doit pouvoir faire ? L'userfoem est affiché en modal et il n'y a pas de bouton pour y faire quoi que ce soit d'autre qu'un choix dans le ComboBox.
À +
 
Dernière édition:
Re : ComboBOX ADDITEM incrémentation

Bonjour recovery, Bernard,

Pourquoi pas une solution archi-simple (et classique) comme dans le fichier joint ?

Certains préfèrent les solutions compliquées, désolé 🙄

A+
 

Pièces jointes

Re : ComboBOX ADDITEM incrémentation

Ah, erreur de ma part:
La propriété ShowModal du Userform est à True mais il est affiché avec UserForm1.Show 0, ce qui revient au même que si elle était à False. Donc on peut lancer quelque chose de l'extérieur.
Alors dans l'userform:
VB:
Private Sub UserForm_Initialize()
ComboBox1.SetFocus
Me.ComboBox1.List = Feuil1.Range("A1:A" & [A65000].End(xlUp).Row).Value
End Sub
Dans le module, je suis arriver à faire tourner ça:
VB:
Private Sub MiseAjour()
Dim Source As Workbook
On Error Resume Next
Set Source = Workbooks("Source.xls")
If Err Then Err.Clear: Workbooks.Open ThisWorkbook.Path & "\Source.xls": Set Source = ActiveWorkbook
On Error GoTo 0
With Source.Sheets(1)
   UserForm1.ComboBox1.List = .Range("A1:A" & .[A65536].End(xlUp).Row).Value
   End With
Source.Close False
End Sub
Mais ça ne me paraît quand même pas très orthodoxe de modifier des contrôles de l'extérieur d'un userform. Mais je dois me tromper, vu que c'est possible puisqu'ils y sont accessibles en tant que propriétés, au même titre que des variables et procédures qui y seraient déclarées Public.
Cela dit la Sub MiseAjour, elle, est Private. Comment comptez vous la lancer ?
P.S. Un conseil: n'utilisez jamais RowSource, surtout dans les macros. Le seul cas ou ça fonctionne bien à coup sûr c'est si elle est fixée définitivement dans la fenêtre de propriétés du userform comme un nom dans le classeur avec une référence non dynamique. On ne peut pas changer la liste d'un ComboBox qui a sa propriété RowSouce définie.
À +
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
332
Réponses
10
Affichages
661
Réponses
4
Affichages
732
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…