Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Plusieurs selections dans un combobox + enregistrement

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bartelele

XLDnaute Junior
Bonjour à tous,

J'ai besoin d'un petit coup de main sous vba 😱

En fait j'ai réalisé une userform avec un combobox.

Les données de ma combobox sont presentes en feuil2

Premier problème (mais moinbre) lors de la selection de ma liste déroulante seul, le choix de lettre est présent (première colonne), et pas la seconde colonne ni la troisième...


Mais c'est surtout lors de l'enregistrement des données sur la feuille 1 que mes connaissances sont limitées...

Je souhaiterais que lorsqu'on selectionne la valeur A dans mon combobox, la lettre s'écrive sur la colonne 1 sur la ligne selectionné, puis la lettre sur la colonne 2 et l'email sur la colonne 3

je vous met mon code ici en esperant que vous pourrez m'aider, et le fichier en piece jointe.

Merci de votre aide 🙂



Private Sub ComboBox1_Change()

End Sub

Private Sub CommandButton1_Click()

ActiveWorkbook.Sheets("Feuil1").Cells(Ligne, 1) = Me.ComboBox1
ActiveWorkbook.Sheets("Feuil1").Cells(Ligne, 2) = Me.ComboBox1
ActiveWorkbook.Sheets("Feuil1").Cells(Ligne, 3) = Me.ComboBox1


UserForm1.Hide


End Sub

Private Sub UserForm_Activate()


Dim i As Integer

i = 1

Me.ComboBox1.Clear


Do Until ActiveWorkbook.Sheets("Feuil2").Cells(i, 1) = ""
Me.ComboBox1.AddItem (ActiveWorkbook.Sheets("Feuil2").Cells(i, 1))
Me.ComboBox1.Column(1, i - 1) = ActiveWorkbook.Sheets("Feuil2").Cells(i, 2)
Me.ComboBox1.Column(2, i - 1) = ActiveWorkbook.Sheets("Feuil2").Cells(i, 3)
i = i + 1

Loop


End Sub
 

Pièces jointes

Re : Plusieurs selections dans un combobox + enregistrement

Bonsoir Bartelele, bienvenu dans le forum, bonsoir le forum,

Premier problème : il faut que tu dises combien de colonnes tu veux pour la ComboBox1 (propriété ColumnCount). Sinon ton code était bon mais je me suis permis de le modifier. Pourquoi utiliser une variable publique pour la ligne ? À moins que tu ne t'en serves ailleurs la variable peut être déclaré au niveau module. Sinon le principe est le même tant pour alimenter la ComboBox1 (sauf qu'' il y a plusieurs lignes) que pour répercuter les données dans le tableau (une seule ligne). J'ai supprimé le bouton et la validation se fait au clic dans la ComboBox1...

En pièce jointe ton fichier modifié et commenté :
 

Pièces jointes

Re : Plusieurs selections dans un combobox + enregistrement

Merci,

En effet cela marche tres bien 🙂

Cependant dans mon tableur il est indispensable que j'utilise cell et non range...

Et j'avouerai que j'ai du mal à reproduire ce que vous avez fait en utilisant cell 🙁

Merci de votre aide
 
Re : Plusieurs selections dans un combobox + enregistrement

Je vous joint mon vrai fichier en simplifier mais qui peut vous aider à m'éclairer...

Comme on voit dans le code du userform1

Le choix multiple dans ma combobox a été resolu via ce code

Private Sub UserForm_Activate()
Dim i As Integer

'Mise en forme des listes et combo

'Definition combobox emeteur
Me.ComboBox5.ColumnCount = 4
Me.ComboBox5.Clear
i = 31
Do Until ActiveWorkbook.Sheets("Parametres").Cells(i, 1) = ""
Me.ComboBox5.AddItem (ActiveWorkbook.Sheets("Parametres").Cells(i, 1))
Me.ComboBox5.Column(1, i - 31) = ActiveWorkbook.Sheets("Parametres").Cells(i, 2)
Me.ComboBox5.Column(2, i - 31) = ActiveWorkbook.Sheets("Parametres").Cells(i, 3)
Me.ComboBox5.Column(3, i - 31) = ActiveWorkbook.Sheets("Parametres").Cells(i, 4)
i = i + 1
Loop


et je le retranscris directement dans ma feuille via le click du commandbutton1 et ce code
ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 6) = Me.ComboBox5 'Emetteur

je souhaiterais garder la même structure car des dizaines de données sont alimentées de la même façon...

Merci encore pour votre aide précieuse 🙂
 
Dernière édition:
Re : Plusieurs selections dans un combobox + enregistrement

Bonsoir Bartelele, bonsoir le forum,

J'ai pas compris où était le problème là. T'éclairer en quoi ? Ton code semble fonctionner... Manquait juste le End Sub.
 
Re : Plusieurs selections dans un combobox + enregistrement

Oui mon code fonctionne pour mon combobox. Je note l'information selectionnée dans ce combobox dans la case émetteur de la feuille base grace à ce code
ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 6) = Me.ComboBox5 'Emetteur


Je vais essayer de réexpliquer mon probleme differemment.
Dans mon combobox j'ai par exemple "JIMMY ACHAT 0202020202 JIMMY@converteam.com"

Grace à mon code au dessus, jimmy s'enregistre dans le colonne 6 de mon tableau.

Je voudrais que ACHAT s'enregistre dans la colonne 7, 0202020202 dans le colonne 8 et JIMMY@conver.com dans le colonne 9.

pour respecter le code ci dessus il faudrait que je remplace mon me.combobox5 ... j'ai essayé avec .Offset(0, 1) mais ca ne fonctionne pas.

Je sais pas si j'ai bien expliqué
J'ai débuté vendredi avec vba je maitrise pas le vocabulaire 😀

En tout cas merci beaucoup robert pour votre aide🙂
 
Re : Plusieurs selections dans un combobox + enregistrement

Bonsoir Bartelele, bonsoir le forum,

Ok j'ai mieux compris là... Je te repropose le code suivant :
Code:
Private Sub CommandButton1_Click()
'Remplissage auto de la base
 ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 2) = Me.ListBox1 'Unite
 ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 4) = Me.TextBox1 'Numéro
 ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 5) = Me.TextBox2 'Date d'émission
 With Me.ComboBox5
    ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 6) = .Column(0, .ListIndex) 'Emetteur part 1
    ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 7) = .Column(1, .ListIndex) 'Emetteur part 2
    ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 8) = .Column(2, .ListIndex) 'Emetteur part 3
    ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 9) = .Column(3, .ListIndex) 'Emetteur part 4
 End With
 ActiveWorkbook.Sheets("Base").Cells(LigneFAAA, 10) = Me.ComboBox6 'Fournisseur
 
UserForm1.Hide 'fermeture du userform
Etat_Frm1 = True
End Sub
Remarque 1 : dans les deux fichiers que je t'avais proposés en pièce jointe, je t'avais déjà donné la même solution. Il est dommage que tu ne les aies pas lus...

Remarque 2 : Il est préférable, dans certains cas, de vider de la mémoire et de fermer l'Userform plustôt que de le masquer. Peut-être serait-il donc plus judicieux de remplacer la ligne :

Code:
UserForm1.Hide 'fermeture du userform
par :
Code:
Unload Me
 
Re : Plusieurs selections dans un combobox + enregistrement

Bonjour robert,

Pour commencer je te remercie de m'accorder ton temps pour mes soucis qui grâce à toi son résolu 🙂

Ca fonctionne exactement comme je le voulais, top!

Pour tes codes précédant, ce n'est pas que je ne l'ai ai pas regardé mais je ne l'ai pas pas bien compris... comme je t'ai dit, j'ai débuté dans la programmation sous vba vendredi 🙁 et je suis parfois perdu ou manque de logique 😕

En tout cas merci pour tout 😛

Bonne journée
 
Re : Plusieurs selections dans un combobox + enregistrement

Bonjour Bartelele, bonjour le forum,

Pas bien grave tout ça... L'essentiel est que ton code fonctionne et que toi tu progresses en VBA.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
718
Réponses
8
Affichages
656
Réponses
8
Affichages
276
Réponses
5
Affichages
324
Réponses
3
Affichages
268
Réponses
10
Affichages
539
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…