XL 2016 Alimenter une ListBox selon le choix fait en ComboBox

hatem_yh

XLDnaute Nouveau
Bonjour à tous,

Je suis en train de créer un programme pour réaliser un Devis avec (userForm), En fait, j'ai une base de données sur plusieurs feuilles (Sheets). je veux à chaque fois visualiser une base de données dans la ListBox selon mon choix en ComboBox.
Exemple : j'ai 3 feuille (sheets) nommé : Chauffage , Ventilation et Clim . Je souhaite quand je clic sur Chauffage il m'affiche le tableau de base de données dans la ListBox etc..

Merci d'avance.

Hatem.
 

job75

XLDnaute Barbatruc
Bonjour hatem_yh, ChTi160,
Exemple : j'ai 3 feuille (sheets) nommé : Chauffage , Ventilation et Clim . Je souhaite quand je clic sur Chauffage il m'affiche le tableau de base de données dans la ListBox etc..
Sans fichier joint je vous propose ce code à placer dans le module de l'UserForm :
VB:
Private Sub ComboBox1_Change()
Dim w As Worksheet, P As Range
ListBox1.Clear 'RAZ
On Error Resume Next 'si la feuille n'existe pas
Set w = Sheets(ComboBox1.Text)
On Error GoTo 0
If w Is Nothing Then Exit Sub
Set P = w.[A1].CurrentRegion
If P.Rows.Count = 1 Then Exit Sub 'on suppose qu'il y a une ligne de titres
ListBox1.ColumnCount = P.Columns.Count 'nombre de colonnes
If P.Columns.Count = 1 Then Set P = P.Resize(, 2) 'au moins 2 cellules
ListBox1.List = P.Offset(1).Resize(P.Rows.Count - 1).Value 'crée la liste
End Sub

Private Sub UserForm_Initialize()
ComboBox1.List = Array("Chauffage", "Ventilation", "Clim")
End Sub
A vous de compléter la 1ère macro pour dimensionner les colonnes de la ListBox.

A+
 

hatem_yh

XLDnaute Nouveau
Re bonjour Monsieur, En fait, je veux ajouter un bouton dans ce UserForm qui sert à ajouter un texte dans une cellule vide d'après ce que j'ai mis dans deux textBox.
voici le code que j'ai mis :

Private Sub CommandButton1_Click()
Dim Ligne As Long
Ligne = 1
Do While Not IsEmpty(Sheets("Devis").Range("B3" & Ligne))
Ligne = Ligne + 1
Loop
Sheets("Devis").Range("B3" & Ligne).Value = TextBox10.Value
Sheets("Devis").Range("C3" & Ligne).Value = TextBox11.Value
End Sub

Le problème c'est qu'il commence depuis la ligne 31 et pas la ligne 3.

Merci d'avance.
 

job75

XLDnaute Barbatruc
Bonjour hatem_yh,
j'ai essayé d'ajouter les noms de colonnes dans la liste Box j'arrive pas. pouvez-vous m'expliquer comment faire?
D'abord il faut mettre les largeurs des colonnes de la ListBox dans sa propriété ColumnWidths.

Ensuite il suffit d'ajouter des Labels dans l'UseForm, les dimensionner et les positionner correctement.

Fichier (2).

A+
 

Pièces jointes

  • CVC(2).xlsm
    29.8 KB · Affichages: 20

hatem_yh

XLDnaute Nouveau
Bonjour hatem_yh,

D'abord il faut mettre les largeurs des colonnes de la ListBox dans sa propriété ColumnWidths.

Ensuite il suffit d'ajouter des Labels dans l'UseForm, les dimensionner et les positionner correctement.

Fichier (2).

A+
Bonjour Monsieur,
merci pour votre réponse.
En fait, je veux ajouter un bouton dans ce UserForm qui sert à ajouter un texte dans une cellule vide d'après ce que j'ai mis dans deux textBox.
voici le code que j'ai mis :

Private Sub CommandButton1_Click()
Dim Ligne As Long
Ligne = 1
Do While Not IsEmpty(Sheets("Devis").Range("B3" & Ligne))
Ligne = Ligne + 1
Loop
Sheets("Devis").Range("B3" & Ligne).Value = TextBox10.Value
Sheets("Devis").Range("C3" & Ligne).Value = TextBox11.Value
End Sub

Le problème c'est qu'il commence depuis la ligne 31 et pas la ligne 3.

Merci d'avance.
 

Statistiques des forums

Discussions
312 203
Messages
2 086 195
Membres
103 153
dernier inscrit
SamirN