copier des données relatives à la sélection dans Combobox

pnlop

XLDnaute Occasionnel
Bonjour le forum,
J'ai avancé dans mon projet de formulaire, mais la, je plante dans l'élaboration de ma userform...
Dans ma UserForm1, j'ai une Combobox qui contient une liste de nom qui est dans une autre feuille "installateurs".
J'aimerai que si un nom est sélectionné dans la Combobox, les différentes données en relation avec ce nom (adresse, ville, mail - qui figurent aussi dans la feuille "installateur") soient copiées respectivement dans les TextBox correspondant (en dessous dans ma UserBox)......
Par contre, si le nom n'apparait pas dans la Combobox, évidemment rien ne se passera, vu qu'il faudra alors saisir toutes ces nouvelles infos directement dans les mêmes TextBox....

Je joint mon fichier... avec mes codes qui fonctionnent en partie...
Merci
 

Pièces jointes

  • nouveau formulaire.zip
    82.6 KB · Affichages: 73

Modeste

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Re-re-bonjour, bonsoir,

Fichtre! Cette fois, j'ai ouvert ton fichier:
- Concernant la Sub TextBox1_Change(), j'ai un peu de mal à comprendre ce que tu essaies de faire ... mais puisque tu dis que ça fonctionne, je n'insiste pas :rolleyes:
- Dans ta Sub CheckBox19_Click(), tu fais un test: If TextBox1.Value = True :confused: comment un TextBox aurait-il comme valeur VRAI (note que c'est possible, mais ce n'est sans doute pas ce que tu cherches à vérifier!?). N'est-ce pas ton CheckBox19 que tu dois tester?
- En regardant ta série de If CheckBoxx.Value = True Then ..., il me semble que:
* à force de faire des copier-coller, certaines parties sont redondantes (ligne 43: Range("E6", Range("E6").End(xlDown).Offset(1, 0)))​
* d'autres ne sont pas correctes (ligne 86 et suivantes: si CheckBox10 est coché, copier K13 ... n'est-ce pas K12 et ainsi de suite?​
* on peut simplifier largement l'écriture de ta série d'instructions: plutôt que de faire des collages spéciaux > Valeurs, il suffit de dire à Excel que la cellule x prend la valeur de la cellule y. Ce que tu écris en 5 lignes à chaque fois, peut s'écrire en 1 seule ligne (à chaque fois aussi)​


... Mais bon, une chose à la fois, corrigeons d'abord ce qui doit l'être; on s'occupera ensuite de ce qui peut l'être
 

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

Bonjour le forum et Modeste..
Ma boîte à mouchoir et vide tellement je pleure!!!
J'ai changé d'idée pour me simplifier la tâche, mais ça fait 3 heures que je cherche et trouve pas de solution sur le forum!!!
J'ai finalement opté pour un bouton qui renvoie un UserForm avec ListBox à choix multiple. Jusque là ça va, ma liste se rempli juste et je peux sélectionner plusieurs entrées. La ou ça va pas, c'est que j'aimerai coller ces choix dans la cellule J5 et suivante de ma feuille active en validant avec CommandButton1!!!
HELPPPPP!
Je deviens neuneu!
Merci!
Mon code:
Private Sub CommandButton1_Click()
With ListBox1
Dim Chaine As String
Dim i As Byte
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
Chaine = Chaine & " " & ListBox1.List(i)
End If
Next i
With Worksheets("Accueil").Range("J65536").End(xlUp)
.Offset(0, 2).Value = Trim(Chaine)
End With
End With

End Sub

Private Sub UserForm_Initialize()

Me.ListBox1.List = Sheets("articles").Range("A6:A9").Value
Me.ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

PS pour ma défense: J'ai testé et modifier au moins 10 codes trouvés sur le forum qui semblaient correspondre pour finalement arriver sur celui-ci... Dons m'en voulez pas si je suis à côté de mes pompes...
Le but au final est que ce soit plus facile de copier les données dans la feuille "visualisation" par la suite et évité les code de Checkbox... (voir messages plus haut)
 

Modeste

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Bonsoir pnlop,

A part t'envoyer une nouvelle boîte de mouchoirs, je ne vois pas bien ce que nous pourrions faire pour toi: le code que tu as trouvé ... comment s'articule-t-il avec celui que tu avais au préalable? Je présume qu'il en remplace une partie (mais laquelle?)
Je suppose également que ton UserForm de la fois passée (en tout cas un des trois) a été modifié ... à quoi ressemble-t-il aujourd'hui?

Avant de t'épuiser et risquer de tourner en rond, as-tu déjà essayé de mettre sur papier:
- les différentes opérations que tu voudrais réaliser
- les éléments déclencheurs
- les conditions d'exécution
- les cas particuliers (éventuellement)

Ce qui est certain, c'est que si tu crées une chaîne de caractères, comprenant tous les items sélecionnés dans ta ListBox, tu ne peux pas t'attendre à ce que le contenu se répartisse "spontanément" dans plusieurs cellules!

Sors le nez du guidon, enlève ta main de la boîte à mouchoirs, inspire profondément ... et essaye de poser les choses clairement. Ne t'occupe, pour le moment, que d'une partie du travail (les architectes, les articles ... ou Dieu sait quoi d'autre :rolleyes:) et dépose un extrait de ton fichier qui soit cohérent avec ton "énoncé"
 

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

Re forum et Modeste,
bon, après une pause, j'ai suivi ton conseil Modeste. ZZZZEEEENNNN!
Donc, j'ai ouvert un doc excel où ne figure que l'essentiel du problème actuel.
Feuille "Accueil": bouton de commande qui ouvre UserForm1
UserForm1: Listbox à choix multiples alimentée par cellules A6:A9 de la feuille "articles"
Jusque là, ok.
UserForm1: bouton de commande VALIDER: en cliquant dessus, cela effectue ceci:
Vider J5:J6 de la feuille "Accueil" (pou être sûr qu'il n'y ai pas d'erreur si l'userform est utilisé plusieurs fois...)
Copie le(s) choix de la ListBox1 en cellule J5 (puis J6 etc jusqu'à J8 si les 4 choix sont sélectionné dans la ListBox)
Unload Me: pour fermer la UserForm.

Donc en italique, ce que je n'arrive pas à écrire en VBA...
 

Pièces jointes

  • Demo.xls
    28.5 KB · Affichages: 49
  • Demo.xls
    28.5 KB · Affichages: 53
  • Demo.xls
    28.5 KB · Affichages: 46

Excel-lent

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Salut Pénélope, Modeste,

Voici ci-joint ton fichier modifié :
-> j'ai raccourci un peu ton code
-> pour un résultat visuel plus sympa, lorsque tu sélectionne (ou désélectionne) une ligne dans ta ListBox, une coche se met (ou s'enlève) devant.
-> j'ai solutionné ton soucis en "italique"

Bonne fin de soirée
 

Pièces jointes

  • Demo complété.xls
    30 KB · Affichages: 73

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

Bonjour le Forum, Modeste et Excel-lent,
Excellent Excel-lent! C'est ce que je cherchais depuis des heures! ça paraît si simple! en plus, j'ai même compris donc vais pouvoir le refaire pour d'autres cas.
Ma journée commence pas si mal. Je vais avancer et me permettrais de solliciter vos super pouvoirs en cas de soucis!
A+
pnlop
 

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

Re - boujour!
Modeste, je reviens un peu en arrière, dans un de tes précédent message:
- Concernant la Sub TextBox1_Change(), j'ai un peu de mal à comprendre ce que tu essaies de faire ... mais puisque tu dis que ça fonctionne, je n'insiste pas
-
Donc en traduction: Si on clique sur le CheckBox19, on ne peux pas ensuite écrire dans le TextBox. Si on essaie, un message d'erreur aparait.
Dans ta Sub CheckBox19_Click(), tu fais un test: If TextBox1.Value = True comment un TextBox aurait-il comme valeur VRAI (note que c'est possible, mais ce n'est sans doute pas ce que tu cherches à vérifier!?). N'est-ce pas ton CheckBox19 que tu dois tester?
Ben là j'aimerai l'inverse! s' il y a déjà du text dans le TextBox, on ne peux pas après sélectionner le CHeckBox19, un message d'erreur devrait apparaître pour dire que "autre déjà rempli" par exemple...
Mais effectivement, le premier semble fonctonner, mais pas le second...
 

Excel-lent

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Hello,

Reflexe : une question = un fichier exemple!

Sinon nous ne pouvons te répondre, sinon nous allons tous y passer 3H00 ;)

Toi, pour nous faire comprendre ta question
Nous, pour créer un fichier exemple, pour y insérer la réponse (alors qu'il existe déjà sur ton ordinateur)
Toi, pour comprendre, analyser, adapter notre réponse à ton cas de figure (puisque nous serons parti d'un fichier totalement différent au tien - ben oui, nous ne sommes pas devin ;))
Toi, pour poser pleins de questions complémentaire pour comprendre la réponse et l'adapter correctement
Nous, pour répondre à ces questions, alors que nous aurions pu les anticiper en intégrant ces points dans ton fichier, à l'aide d'insertion de commentaire dans ton code (les fameuses lignes en verte ;))

Bref, en UN mot, comme CENTSSSSSSSS, comme si bien expliqué par Modeste précédement, il nous faut ton fichier.

Autre avantages, cela ira plus vite, donc les "répondeurs" n'auront pas le temps de se décourager (ni toi) avant la fin. Bin oui! ils sont bénévoles et il n'y a pas qu'un seul "questionneur".

A te lire

Cordialement
 

Modeste

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Bonjour pnlop,
Salut Excel-lent :)

Evidemment, Excel-lent a raison ... mais j'ai repris le version précédente du fichier, puisque mes commentaires de l'époque concernaient ce fichier-là (et pas le dernier :p) ... et puis comme j'y avais travaillé un chouïa, je dépose tout de même une proposition (testée sur le fichier du message #11)

VB:
Private Sub TextBox1_Change()
If TextBox1.Value = "" Then Exit Sub
If CheckBox19.Value = True Then
    TextBox1.Value = Null
    MsgBox "Référence <<Idem Privé>> sélectionnée"
End If
End Sub

Private Sub CheckBox19_Click()
If CheckBox19.Value = True Then
    If Not TextBox1.Value = "" Then
        MsgBox "autre déjà rempli"
        CheckBox19.Value = False
    End If
End If
End Sub

Vérifier si j'ai bien compris (pour les participants qui nous rejoindraient tardivement, le CheckBox19 est situé dans le bas de la feuille de calcul "Accueil" et le TextBox1 est juste à côté du CheckBox en question) ... Toute suggestion restant la bienvenue :)
 

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

OK OK!!! Je vais me rhabiller!
Merci Modeste, tout fonctionne.
Sorry Excel-lent, il est vrai que le cheminement de mes questions ne va pas de soit pour tout le monde...:rolleyes:.
Justement, Vaudrait-il mieux que je poste à chaque fois un nouveau sujet pour mes différentes question relatives à la mise en place de mon petit programme ou est-ce que je peux continuer sur ce poste?

Pour en revenir au dernier message de Modeste (et à sa solution), quelque chose me chagrine: j'étais pas loins de la vérité dans mes propres essais, au vu du code proposé, mais à chaque fois, qqch cloche. Et j'ai vraiment du mal à me faire aux messages d'erreur de VBA... Je comprend presque jamais l'aide proposée!
 

Modeste

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Re-bonjour,

quelque chose me chagrine
... Ah ben non, tu vas encore vider une boîte de mouchoirs!

Ceci dit ma proposition n'est pas éloignée de ton propre code ... parce que je suis reparti du tien (d'autres auraient pu suggérer des choses différentes ... peut-être plus pertinentes, d'ailleurs :eek: ceci n'est pas une critique de ton code, mais du mien, comprenons-nous bien!).

Pour certains de tes bouts de code, je me suis posé la question de savoir si tu utilisais certaines techniques pour "déboguer" (compiler avant d'exécuter, exécuter en pas-à-pas, poser des points d'arrêt, utiliser la fenêtre des variables locales, etc ...)
L'une ou l'autre permettent de comprendre au fur et à mesure de l'exécution de ton code ... à tester donc, si ce n'est déjà fait.
 

Excel-lent

XLDnaute Barbatruc
Re : copier des données relatives à la sélection dans Combobox

Salut Pnlop, Modeste,

1/ Ouvrir un nouveau sujet par question
Avantages :
-> tu obtiens une réponse plus rapidement car le premier venu qui connait la réponse vient te répondre.
-> tu peux lancer plusieurs questions à la fois (une par sujet)

Inconvénients :
-> il faut que chaque question soit bien distinct et non lié
-> obligé de faire un fichier exemple par question
-> c'est plus difficile d'intégrer les différentes réponses dans ton fichier et de les lier entre elles. D'autant plus lorsqu'il s'agit de code VBA et que le "questionneur" est débutant.


2/ Rester dans le même sujet, jusqu'à la fin du fichier :
Avantages :
-> lorsque les questions sont liés, le "répondeur" est déjà dans le bain, elle a suivit l'évolution de ton fichier, donc pas besoin de mettre une tonne d'explication pour te faire comprendre à chaque fois.

Inconvénients :
-> au bout d'un certain temps, il ne reste plus que les participants du départ et continuent à répondre. Car pour un nouveau venu, pour répondre à ta question de la page 5 (même si elle est toute bête), il devra lire l'intégralité des 4 premières pages pour comprendre le contexte : franchement rébarbatif! Ca jette un froid lol
-> si le sujet dur trop longtemps, les 2-3 "répondeurs" du sujet s'épuisent, ont moins de temps, ... et tu n'as plus personne pour t'aider. Dans ce cas ouvrir un nouveau sujet.

Dans ton cas, pour ce fichier, personnellement je te conseil de continuer ici. Mais attention, il faut absolument qu'à chaque nouvelle étape tu mette ton fichier dans lequel tu aura intégré la réponse à la question précédente, ainsi que les nouvelles choses que tu as faite toute seule depuis.

Bref, partons sur des bases seines : envoi nous le fichier sur lequel tu travail maintenant et qui te chagrine. Car comme ça, impossible de t'aider. N'oublie pas au préalable à intégrer (ou essayer d'intégrer), la dernière réponse de Modeste. Cela lui évitera d'avoir besoin de repartir quarante milles messages en arrière pour l'intégrer à nouveau ;)

Bonne fin de soirée et à très bientôt
 
Dernière édition:

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

Bonjour tout le monde!
Merci pour les éclaircissements Excel-lent. Je vais essayer de suivre les conseils de chacun. Aujourd'hui, pas eule temps de me pencher sur le fichier... mes journées manquent d'heures..:p)
Je mets tout de même mon fichier pour que vous puissiez travailler à ma place!!!:rolleyes::eek::cool:
Mais j'avance petit à petit. J'espère que vous me laisserez pas tomber...!
A bientôt
 

Pièces jointes

  • Nouveaux formulaire (Enregistré automatiquement).zip
    215.8 KB · Affichages: 61

pnlop

XLDnaute Occasionnel
Re : copier des données relatives à la sélection dans Combobox

Coucou me revoilà!!! Vous allez bien?!
J'ai pas mal avancé dans mon projet (surtout ce qui concerne la saisie des données, mais ça, ça ne regarde que moi!!!)
Je remet mon fichier pour que vous puissiez peut-être m'aider un peu...:rolleyes:
explication:
UserForm8: va me servir de support pour l'établissement des offres (commande). Je me suis inspirée du post de "La Croisée des Pains" que je remercie par ailleurs.
Donc: ListBox1 alimentée - OK (les choix correspondent aux nom d'onglets où se trouvent les articles si ça peut aider...) - un seul choix possible à la fois - OK.
ListBox2 alimentée en fonction de la sélection en ListBox1 (directement) va chercher les articles dans l'onglet correspondant (seulement colonne C, libellé) , avec petit checkbox de choix.
Puis transfert (copier coller) les choix en ListBox2 dans le ListView (que je ne sais pas formater... il faudrait 6 colonnes...))en clickant sur le bouton "flèche"... mais là, les données doivent être copiée en entier, c'est à dire n° art (col.B dans l'onglet), libellé (col.C), unité (col.D), quantité (rempli "1" automatiquement ou alors changé manuellement), et dernière colonne avec petit chexk box par exemple qui, s'il est coché, implique que l'article est en option. Ajouter à tout ça, pour chaque ligne d'article inséré, un petit checkbox qui permet d'effacer l'entrée et de faire remonter les lignes suivantes... Bien sûr, chaque collage se fera automatiquement dans la ligne du dessous!
Voilà, c'est tout pour le moment!!!:eek:
Je reviendrait plus tard avec mes problème de VBA sur mes boutons!
Il y a-t-il des intéressés???
MERCI
A bientôt
pnlop
 

Pièces jointes

  • demo nouv form .zip
    162.5 KB · Affichages: 48

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 194
Membres
103 755
dernier inscrit
Nicolas TULENGE