Titre de colonnes dans une combobox ?

S

sniker

Guest
Bonjour,

Je reviens à la charge avec une nouvelle difficulté. J’ai épluché pas mal de forum et d’exemple cette après midi, je m’approche mais je suis toujours coincé.

Cette fois la question est bien ciblée et je parie qu’elle va sembler évidente aux experts de ce forum.

Je voudrais lister dans une ComboBox les titres de colonne d’une feuille.

Ma ComboBox se nome « NomColonne1 »
Le nom du classeur est dans une comboBox : « NomClasseur1 »
Le nom de la feuille concernée est dans une ComboBox : « NomFeuille1 »

Voila mon p’tit bout de code qui marche pas :
Code:
Private Sub NomFeuille1_Change() 
Dim Idx As Integer 
Dim Chx As String 
Dim Ct As Range 
Dim CelD As String 

Idx = NomFeuille1.ListIndex ' numéro de la ligne active de la Combo ' 
Chx = NomFeuille1.List(Idx) ' contenu de la ligne active ' 
Worksheets(Chx).Activate 

CelD = 'A1' ' premiere cellule de la ligne de titres de col. ' 
For Each Ct In Range(CelD, [&CelD&].End(xlToRight)) ' pour chaque cellule de la ligne ... '
NomColonne1.AddItem Ct.Value ' ajoute le contenu de la celulle dans la combobox  '
Next 
End Sub
Alors je sais que mon [&CelD&] n’est pas bon mais je ne trouve pas comment formuler la référence à cette cellule … et il y a certainement d’autres trucs que je ne vois pas.

Merci et à bientôt.

Message édité par: sniker, à: 29/11/2005 17:44

Message édité par: sniker, à: 29/11/2005 17:46
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

essaies en remplaçant ta boucle par celle-ci

Macolonne=range('IV1').end(xltoleft).column
for x = 1 to macolonne
NomColonne1.AddItem cells(1,x) ' il y avait une erreur sur cette ligne voir 2 posts plus bas
next

Message édité par: Pascal76, à: 29/11/2005 18:18
 

Sniker

XLDnaute Nouveau
Genial ! :woohoo:

5 heures de recherches vaines ... et en quelques minutes la réponse miracle ...

C'est pas grave j'ai apris beaucoup de choses en passant ...

Voila le résultat :

Code:
Private Sub NomFeuille1_Change()
Dim Idx As Integer
Dim Chx As String
Dim CelD As Integer

Idx = NomFeuille1.ListIndex ' numéro de la ligne active de la Combo'
Chx = NomFeuille1.List(Idx) ' contenu de la ligne active'
Worksheets(Chx).Activate

L = 1 ' ligne de titres de colonne que je passerais en option'
Ct = Range('IV1').End(xlToLeft).Column ' Nombre de celulle contenant les tires de colonne'
For X = 1 To Ct ' pour chaque cellule ...'
NomColonne1.AddItem Cells(L, X) ' ajoute le contenu de la cellule dans la ComboBox'
Next
End Sub

Merci encore ! :)

Message édité par: sniker, à: 29/11/2005 18:06
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Oups

Bon tu as coorigé une erreur sur le code (j'avais pas relu pas bien Pascal)

c'etait bien

NomColonne1.AddItem cells(1,x)

et non

NomColonne1.AddItem cells(x,1)

Comme j'avais ecris

L'habitude de plus jouer avec les lignes qu'avec les colonnes B)
 

Sniker

XLDnaute Nouveau
Merci,

J'ai vite vu l'invertion en testant, d'autant que cette erreur je la fais à chaque fois que j'utilise cells() :lol:

J'ai bien avancé depuis, et je te remercie encore pour le coup de pousse.

J'attends d'avoir quelque chose de stable et fonctionnel pour partager ma bricole avec le forum.

à bientôt !
 

Grouchet

XLDnaute Nouveau
Bonjour à vous,

Novice en VBA, je viens vers vous aujourd'hui car je suis une quiche sur excel et je me suis lancé dans la création d'un fichier automatique (A force de regarder des tutos et de trainer sur les forums je commence à avoir le vocabulaire, mais pas assez encore car je ne comprends pas tout)
L'objectif de mon fichier est de créer une base de donnée des pièces à relancer en production. J'ai créé un Userform en ayant inséré des rowsources à mes combobox. Voici les processus que je n'arrive pas à mettre en place:
- Lorsque je sélectionne un N° dans ma comboBox6, je voudrais que ca réalise une recherchev pour les 3 textBox d'à coté. Une case où on y trouve le type de bateau, une autre avec la version, et la 3eme avec le coloris.
- Egalement, je n'arrive pas à insérer dans ma combobox, une rowsource horizontale avec les numéros de meuble (80-01-01;80-01-02 etc...) et que lorsque je sélectionne un meuble, il y ai toute la liste des pièces qui s'affiche dans ma listbox1. J'aimerai par la suite insérer en plus gros dans ma textbox5 la ligne sélectionnée dans ma listbox1. Ainsi en cliquant sur enregistrer, une base de donnée se créée dans une autre feuille "BDD".

Merci d'avance pour votre aide.
 

Pièces jointes

  • REBUS .xlsm
    325.9 KB · Affichages: 3

Discussions similaires

Réponses
1
Affichages
160
Réponses
0
Affichages
133

Statistiques des forums

Discussions
312 091
Messages
2 085 212
Membres
102 821
dernier inscrit
jos78410