HELP!!! VB Excel liste multicolonnes
Résolu/Fermé
A voir également:
- HELP!!! VB Excel liste multicolonnes
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
4 réponses
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
4 févr. 2009 à 11:13
4 févr. 2009 à 11:13
Coucou
Ai-je compris ton soucis ??
A l'heure actuelle, tu sélectionnes un "code affaire + libellé affaire" et tu voudrais simplement stocker "code affaire".
Où est ton problème exactement ?
Ai-je compris ton soucis ??
A l'heure actuelle, tu sélectionnes un "code affaire + libellé affaire" et tu voudrais simplement stocker "code affaire".
Où est ton problème exactement ?
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
4 févr. 2009 à 13:04
4 févr. 2009 à 13:04
Comment affectes-tu ta liste déroulante à ta colonne C ?
Sinon, je te propose un petit truc du style :
Quand le choix est effectué dans ta liste, on connait sa position par la propriété listindex
ici j'ai mis une combobox mais on peut gérer une listbox ou autre
L'idée est donc de ressortir la position du choix et de lire simplement ta colonne A pour récupérer ton affaire
[code]
Private Sub ComboBox1_Change()
dim ligne as integer
ligne = ComboBox1.ListIndex
MsgBox ("vous désirez l'affaire : " & Cells(ligne + 1, 1).Value)
End Sub
[\code]
A plus
Sinon, je te propose un petit truc du style :
Quand le choix est effectué dans ta liste, on connait sa position par la propriété listindex
ici j'ai mis une combobox mais on peut gérer une listbox ou autre
L'idée est donc de ressortir la position du choix et de lire simplement ta colonne A pour récupérer ton affaire
[code]
Private Sub ComboBox1_Change()
dim ligne as integer
ligne = ComboBox1.ListIndex
MsgBox ("vous désirez l'affaire : " & Cells(ligne + 1, 1).Value)
End Sub
[\code]
A plus
Pour mettre en liste la colonne C, je fais le code suivant avant l'ouverture du formulaire
Dans le code que tu me proposes, où indique-t-on la plage de données où sont listées les chantiers?
(je suis un boulet quand je m'y mets...)
SAISIE2.CHANTIERS.Clear ' vider le contenu de la variable CHANTIERS Sheets("listes").Select ' se placer sur le feuillet "listes" Range("F8").Select ' se placer sur la cellule F8 - 1ere ligne de la liste Do While ActiveCell.Value <> "" ' Tant que la cellule sélectionée n'est pas vide SAISIE2.CHANTIERS.AddItem ActiveCell.Value ' Ajoute le contenu de la cellule sélectionnée à la liste déroulante qui s'affiche dans la variable CHANTIERS ActiveCell.Offset(1, 0).Select ' Passe à la ligne suivante Loop
Dans le code que tu me proposes, où indique-t-on la plage de données où sont listées les chantiers?
(je suis un boulet quand je m'y mets...)
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
4 févr. 2009 à 14:24
4 févr. 2009 à 14:24
Dans mon code la liste des chantiers est indiquée en colonne A dans la cells(ligne + 1,1) que je récupère
dans la msgbox, mais à toi de la récupérer où tu veux.
Si je suis à l'ouest dans mes réponses, tu peux peut-être m'envoyer une trame épurée de ton fichier
via le site www.cijoint.fr ? , après tu n'as plus qu'à me poster le lien.
dans la msgbox, mais à toi de la récupérer où tu veux.
Si je suis à l'ouest dans mes réponses, tu peux peut-être m'envoyer une trame épurée de ton fichier
via le site www.cijoint.fr ? , après tu n'as plus qu'à me poster le lien.
C'est plutôt moi qui est à l'ouest!
Merci beaucoup pour ton aide.
Malheureusement, je ne comprends pas comment le formulaire sait que "ligne" c'est la colonne A de la feuille "liste".
J'ai déposé une version allégée du fichier avec que la partie formulaire de saisie.
http://www.cijoint.fr/cjlink.php?file=cj200902/cijEQbPrvK.xls
Merci encore beaucoup de m'aider!
Merci beaucoup pour ton aide.
Malheureusement, je ne comprends pas comment le formulaire sait que "ligne" c'est la colonne A de la feuille "liste".
J'ai déposé une version allégée du fichier avec que la partie formulaire de saisie.
http://www.cijoint.fr/cjlink.php?file=cj200902/cijEQbPrvK.xls
Merci encore beaucoup de m'aider!
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
4 févr. 2009 à 15:44
4 févr. 2009 à 15:44
Voila ma proposition dans la sub VALIDATION2_Click()
'ActiveCell.Value = SAISIE2.CHANTIERS.Value (ton retour de formulaire)
ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = SAISIE2.VEHICULES.Value
'Le mien
dim ligne as integer
ligne = SAISIE2.CHANTIERS.ListIndex
ActiveCell.Value = Sheets("listes").Cells(8 + ligne, 7).Value
ActiveCell.Offset(0, 1).Select
ligne = SAISIE2.VEHICULES.ListIndex
ActiveCell.Value = Sheets("listes").Cells(8 + ligne, 3).Value
C'est ce que tu voulais, ou alors j'ai rien compris (ce qui est humainement possible) ?
'ActiveCell.Value = SAISIE2.CHANTIERS.Value (ton retour de formulaire)
ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = SAISIE2.VEHICULES.Value
'Le mien
dim ligne as integer
ligne = SAISIE2.CHANTIERS.ListIndex
ActiveCell.Value = Sheets("listes").Cells(8 + ligne, 7).Value
ActiveCell.Offset(0, 1).Select
ligne = SAISIE2.VEHICULES.ListIndex
ActiveCell.Value = Sheets("listes").Cells(8 + ligne, 3).Value
C'est ce que tu voulais, ou alors j'ai rien compris (ce qui est humainement possible) ?
génial!!!! cela fonctionne!! Tu as parfaitement compris ce qu'il me fallait. C'était tellement bête, mais bon... faut quand même savoir le faire! Maintenant j'ai compris le fonctionnement et je t'en remercie milles fois!
ça m'a redonné le moral, je continues sur ma lancée!
Encore merci et bonne journée!
Ludivine
ça m'a redonné le moral, je continues sur ma lancée!
Encore merci et bonne journée!
Ludivine
4 févr. 2009 à 12:27
En fait, j'ai une plage de données AFFAIRE:
Colonne A Colonne B Colonne C
6C12311 AFFAIRE 1 6C12311 AFFAIRE 1
6G55545 AFFAIRE 2 6G55545 AFFAIRE 2
La colone C est tout simplement la formule : colonne A & " " & Colonne B.
Dans mon userform, j'ai fait une liste déroulante simple de sélection sur la colonne C.
Mais je voudrais en fait faire une liste déroulante multi-colonnes sur les colonnes A et B, pour que l'agent voit le code et le libellé, puis lors de l'enregistrement, je voudrais stocker seulement le champs contenu dans la colonne A.
C'est très simple en fait, mais je n'arrive pas à le réaliser. ça plante de partout.