RE-Combobox

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
 
@

@+Thierry

Guest
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
 

Statistiques des forums

Discussions
313 060
Messages
2 094 924
Membres
106 127
dernier inscrit
AS PRECY