Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2011, 16h45   #1
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
Par défaut Remplir une listbox et mettre les donnees sur 1 colonne

Bonjour
J'ai un userform avec un combobox et une listbox
avec le choix de ma comboxbox dont les donnees sont dans la colonne A
Je cherche a remplir la lisbox en fonction du choix de ma lisbox,
ex: a partir en A10 j'ai des noms, en B10 et jusqu'a la derniere colonne remplie, je souhaiterais recuperer ces donnees qui sont dans ces colonnes, mais les mettre en vertical dans la lisbox.

merci, si quelqu'un a une idee
cris
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 17h15   #2
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Agent Technique
Secteur : Santé

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
Bonjour
tu peux essayer quelques choses comme çà:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Dim plage As Range, dercol As Integer
 
With Sheets("Feuil1")
dercol = .Range("A10").End(xlToRight).Column
 
Set plage = .Range(.Cells(10, 1), .Cells(10, dercol))
 
For Each c In plage
Me.ListBox1.AddItem c.Value
Next c
 
End With
adapte le à ton cas
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 12h37   #3
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
1- cela fonctionne que sur la range A10, mais les noms sont de A10 a Axxx

2- de plus dans les cellules il y un retour a la ligne,

ex:
21/12/2010 a 10H00
consultation
et l'affichage est comme ceci 21/12/2010 a 10H00 code retour ligne puis consultation

peux t'on remplacer le retour a la ligne par un blanc pour separer ces 2 texte

bonjour
le code m'affiche bien le nom en A10, avec ce qui suit en vertical

mais mes noms vont de A10 a AXXX,
j'ai bien tous les noms dans mon combobox mais je ne peux pas en choisir un autre il ne prend que le premier
merci
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 13h56   #4
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 695
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 695
Points : 1 447
Points : 1 447
Bonjour,

Essaie avec ce code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Private Sub ComboBox1_Click()
Dim Plage As Range, c As Range
Dim Dercol As Integer
Dim DerLigne As Long
    ListBox1.Clear
    With Worksheets("Feuil1")
        Dercol = .Range("A10").End(xlToRight).Column
        DerLigne = ComboBox1.ListIndex + 10
        Set Plage = .Range(.Cells(DerLigne, 2), .Cells(DerLigne, Dercol))
        For Each c In Plage
            Me.ListBox1.AddItem c.Value
        Next c
    End With
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 14h17   #5
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
merci ca fonctionne en partie
il m'affiche en debut dans le combobox la ligne au dessus qui est le titre ici Nom.

dans chaque cellules du classeur il y a ce type de donnees

21/12/2010 a 10H00 puis en dessous
consultation

dans la cellule l'affichage est comme ceci 21/12/2010 a 10H00 code retour ligne
puis consultation

peux t'on remplacer le retour a la ligne par un blanc pour separer ces 2 texte
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 14h28   #6
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 695
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 695
Points : 1 447
Points : 1 447
Citation:
il m'affiche en debut dans le combobox la ligne au dessus qui est le titre ici Nom.
Il faut que tu vérifies ton code de remplissage de la ComboBox.

Citation:
peux t'on remplacer le retour a la ligne par un blanc pour separer ces 2 texte
Oui, avec
Code :
Columns(1).Replace Chr(10), " "
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 14h52   #7
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
j'ai regarde let modifie dans combobox
par contre je ne sais a quelendroit mettre le code suivant
Code :
Columns(1).Replace Chr(10), "    "

j'ai joint mon fichier pour mieux voir

cris
Fichiers attachés
Type de fichier : rar test1.rar (67,1 Ko, 2 affichages)
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 19h41   #8
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 695
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 695
Points : 1 447
Points : 1 447
Bonsoir,

Pour le remplissage de la ComboBox, j’ai modifié la propriété RowSource de la ComboBox1 afin que la ligne d’en-tête ne soit plus prise en compte
J’ai également adapté le code afin de supprimer les retours à la ligne.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub ComboBox1_Click()
Dim Plage As Range, c As Range
Dim Dercol As Integer
Dim Ligne As Long
    ListBox1.Clear
    With Worksheets("Data")
        Ligne = Combobox1.ListIndex + 10
        Dercol = .Range("A" & Ligne).End(xlToRight).Column
        Set Plage = .Range(.Cells(Ligne, 3), .Cells(Ligne, Dercol))
          For Each c In Plage
            c.Replace What:=Chr(10), Replacement:=" "
            Me.ListBox1.AddItem c.Value
        Next c
    End With
End Sub
Cordialement.
Fichiers attachés
Type de fichier : xls test1.xls (271,0 Ko, 1 affichages)
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h21.


 
 
 
 
Partenaires

Hébergement Web