• Initiateur de la discussion Initiateur de la discussion David
  • 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 !

D

David

Guest
Bonjour à tous, et encore merci pour tout vos réponses qui m'on
déja beaucoup aidé !
Continué a faire vivre ce forum c'est formidable.

Voici aujourdh'ui ma demande:

Sur un classeur qui est géré en VBA (création,modificaton de fiche sur une feuil nomé "PRODUIT")
Je voudrais sur le même userform qui gére cette feuil ajouter un conbobox
qui m'affiche d'autres données présent sur une autre feuil qui correspond
au article de la feuil "PRODUIT".

EX:

feuil"PRODUIT" ------> Chaussure noire
feuil"DESIGN"--------> 12 choix de type de chaussure

Merci d'avance pour votre aide

David
 
Bonsoir David, le Forum

Pour "Figurer" un peu voici un cas de figure :

1 classeur avec X Feuilles dont dont l'onglet est nommé "Database" et où les données à reporter dans ta ComboBox se situe en colonne "A"... à partier de la cellule "A2" (A1 étant l'entête) jusqu'en "Ax" (on ne sait pas où cele s'arrête)

Voici Trois Méthodes Possibles, pour Alimenter dynamiquement une ComboBox ou une ListBox : (il n'y en a pas d'autre à ma connaissance)



METHODE ADDITEM :
Description de l'aide : Ajoute un élément à la liste d'une zone de liste ou d'une liste modifiable à colonne unique. Ajoute une ligne à la liste d'une zone de liste ou d'une liste modifiable multicolonnes.

Exemple concret :
Private Sub UserForm_Initialize()
Dim i As Byte, x As Byte
i = Sheets("Database").Range("A65536").End(xlUp).Row
For x = 2 To i
With ComboBox1
.AddItem Sheets("Database").Range("A" & i)
End With
Next x
End Sub



METHODE ROWSOURCE :
Description de l'aide : Spécifie la source de données fournissant une liste à un contrôle ComboBox ou ListBox.

Exemple concret :
Private Sub UserForm_Initialize()
Dim Plage As String
With Sheets("Database")
Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Address
End With
ComboBox1.RowSource = "Database!" & Plage
End Sub

NB : la méthode "RowSource" ci-dessus ne supporte pas des nom de feuille (onglet) avec des espaces et certains caractères spéciaux



METHODE LIST :
Description de l'aide : Renvoie ou définit la liste des entrées d'un contrôle ListBox ou ComboBox.

Exemple concret :
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim Tab1() As String
With Sheets("Database")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
ReDim Tab1(1 To Plage.Count)
For Each Cell In Plage
i = i + 1
Tab1(i) = Cell
Next
ComboBox1.List = Tab1
End Sub


Donc il suffit de bien préciser dans chacune de ces méthodes quel est le nom d'onglet de feuille ("Database"), c'est pas bien compliqué.

Bon Travail et bon Courage David
@+Thierry
 
- 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.
Retour