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

pnlop

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

Bonjour le forum,
:confused::confused::confused:
Personne n'a t-il compris ma question? ou peut-être que tout est parfait? pourtant ça ne fonctionne pas bouhhhhuohhhouhh!
S'y ou plait! juste une toute petite indic pour me mettre sur la voie...
Merci Merci Merci!
Pénélope
 

Modeste

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

Bonjour pnlop,

Il doit y avoir plein d'exemples et même certainement des tutos ici-même: tu y gagnerais certainement à les chercher et les consulter ...

Pourquoi garnir ta combobox avec une plage dont la première cellule est vide?

Tu as des doublons dans les noms des installateurs ... ça risque de te compliquer la tâche par la suite: quand tu sélectionnes "Chauffages" dans ta liste, lequel doit apparaître, s'il y en a deux?

Dans ton code, l'événement qui se déclenche et qui fait que les TextBox seront garnis est la sélection d'un élément dans ta ComboBox. Tu peux donc mettre (à moins que je n'aie rien compris) tes 3 TextBox_Change en commentaire et ajouter ce qui suit:
VB:
Private Sub ComboBox1_Change()
With Sheets("installateurs")
    If ComboBox1.ListIndex = -1 Then Exit Sub
    lig = Application.WorksheetFunction.Match(ComboBox1.Value, .Range("A1:A500"), 0)
    TextBox3 = .Cells(lig, 3) 'place dans textbox3 l'adresse qui figure en col 3 de la feuille "installateurs"
    TextBox2 = .Cells(lig, 5) 'place dans textbox3 la ville qui figure en col 5 de la feuille "installateurs"
    TextBox1 = .Cells(lig, 6) 'place dans textbox3 l'email qui figure en col 6 de la feuille "installateurs"
End With
End Sub
Ceci ne sera qu'un point de départ ... à toi de voir ensuite comment l'améliorer ... en tenant compte (notamment) des remarques plus haut!

Bon travail
 

pnlop

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

Bonjour le forum et Modeste, que je remercie pour sa réponse.
Mon code pour remplir ma Combobox fonctionnait... J'ai essayé le tien, mais elle reste vide...
J'avais inclu une ligne vide dans le cas où on ne trouve pas l'installateur pour éviter de devoir absolument en sélectionner un...
Je sais que ma liste d'installateurs doit encore être peaufinée... C'est un autre problème que je dois résoudre car elle devra être mise à jour régulièrement à partir d'un autre programme. A suivre.
J'ai trouvé beaucoup d'infos sur les Combobox, ListBox, TextBox etc... Cependant, quand on ne connait pas grans chose comme moi, on a du mal a reconnaître dans les codes ce qui correspond vraiment à ce qu'on veut.. alors on essaie de copier des idées par-ci par-là, mais au final, ça n'a plus rien à voir!
Et comme souvent ce n'est qu'un petit détail qui fait que ça ne fonctionne pas..
Bref, je vais essayer d'étudier la chose ce weekend, mais je pourrais pas faire mes essais directemetn dans mon classeur, car il est sur Excel 2010 à mon bureau et qu'à la maison, je n'ai que excel 2000! mais je peux déjà essayer de mettre le max en place et recopier après.
Merci
A+
 

Modeste

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

Bonsoir pnlop,

Je crains que nous ne nous soyons mal compris ... ou alors, tu ne m'as lu qu'en diagonale (et en oblique, je ne suis guère à mon avantage :rolleyes:): je t'ai proposé de mettre en commentaire tes trois petites procédures TextBox_Change, mais pas tout ton code!
Le chargement de ton ComboBox se fait dans l'événement UserForm1_Initialize; cette partie est à conserver, bien sûr! J'ai proposé que tu ajoutes quelques lignes, pas que tu remplaces tout par ces dernières.

Si on ne trouve pas un installateur, pas besoin de sélectionner l'équivalent d'une cellule vide (le fait de ne rien slectionner dans la liste correspond au ListIndex= -1

Pour que tu puisses profiter pleinement de ton week-end, ton fichier en annexe au format compatible Excel 2000 (je viens de tester) avec les modifications que j'ai proposées.

Bon travail ;)
 

Pièces jointes

  • nouveau formulaire.xls
    187 KB · Affichages: 875

pnlop

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

Bonjour Modeste! Et le forum!
AHHHHHHHHH Merci......:rolleyes: ... J'avais trouvé une bonne excuse pour obliger mon cerveau à se reposer! En plus il fait un temps pourri! Je vais encore avoir les yeux carrés avant la fin du we..:p.
Ok alors j'ai mieux compris ce que tu voualis dir et vais mettre tout ça en pratique. Mais avant, encore un café!
A+
 

pnlop

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

Bonjour le Forum et Modeste!
Modeste, tu m'as beaucoup aidé et j'ai bien avancé.
Là je bug sur un truc bête j'en suis sûre: Sur ma feuille "Accueil", il y a un bouton VALIDER. j'essaie désespérément de lui faire avaler son code, mais il veut pas!!! Tout fonctionnait très bien jusqu'à ce que je décide que je voulais qu'il ne colle que la valeur et non pas la couleur aussi...
Private Sub CommandButton2_Click()


Worksheets("Accueil").Range("D4:D8").Copy Destination:=Worksheets("visualisation").Range("A2:A6")
Application.CutCopyMode = False

If CheckBox1.Value = True Then Worksheets("Accueil").Range("F3").Copy
Worksheets("visualisation").Range("C2").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False

If CheckBox2.Value = True Then Worksheets("Accueil").Range("F5:H5").Copy
Worksheets("visualisation").Range("C3:D3").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False

If CheckBox7.Value = True Then Worksheets("Accueil").Range("K4").Copy
Worksheets("visualisation").Range("D5").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False

If CheckBox8.Value = True Then Worksheets("Accueil").Range("K5").Copy
Worksheets("visualisation").Range("D5").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False

If CheckBox9.Value = True Then Worksheets("Accueil").Range("K6").Copy
Worksheets("visualisation").Range("D5").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False

If CheckBox16.Value = True Then Worksheets("Accueil").Range("K7").Copy
Worksheets("visualisation").Range("D5").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False

Worksheets("Accueil").Range("D12:D16").Copy Destination:=Worksheets("visualisation").Range("A9:A13")
Application.CutCopyMode = False

Worksheets("Accueil").Range("D20:D24").Copy Destination:=Worksheets("visualisation").Range("A16:A20")
Application.CutCopyMode = False






End Sub

Ok c'est sûrement pas parfait et c'est pas fini et on peut sûrement faire plus simple mais... une idée???
Merci A+
 

Modeste

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

Bonsoir pnlop,

Dans ce genre de situation, sans fichier à se mettre sous la dent et avec pour seule explication: "... Mais il veut pas!" :eek: on peut sans doute s'essayer à 107 hypothèses différentes ... et chacune a une chance d'être fondée et pertinente :rolleyes:
Chez moi, dans des conditions normales d'utilisation et avec ce que j'ai cru comprendre, ceci fonctionne:
VB:
Private Sub CommandButton2_Click()
    If CheckBox1.Value = True Then
        Worksheets("Accueil").Range("F3").Copy
        Worksheets("visualisation").Range("C2").PasteSpecial (xlPasteValues)
    End If
    Application.CutCopyMode = False
End Sub
 

pnlop

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

Bonjour le forum et Modeste!
Merci Modeste, ça fonctionne. Mais!
Dans mon code suivant:
If CheckBox7.Value = True Then
Worksheets("Accueil").Range("K4").Copy
Worksheets("visualisation").Range("E6").End(xlDown).Offset(1, 0)).PasteSpecial (xlPasteValues)
End If
Application.CutCopyMode = False

If CheckBox8.Value = True Then
Worksheets("Accueil").Range("K5").Copy
Worksheets("visualisation").Range("E6").End(xlDown).Offset(1, 0).PasteSpecial (xlPasteValues)
End If
Application.CutCopyMode = False

If CheckBox9.Value = True Then
Worksheets("Accueil").Range("K6").Copy
Worksheets("visualisation").Range("E6").End(xlDown).Offset(1, 0).PasteSpecial (xlPasteValues)
End If
Application.CutCopyMode = False
j'aimerais que si la cellule E6 est pleine, ça vienne se coller en E7, etc donc dans la cellule en dessous!
J'ai du mettre quelque chose en trop ou en pas assez...
Car plus loin dans mon code, j'ai la même chose avec d'autre checkBox qui s'il sont activés, ça va coller la cellule dans l'autre feuille mais en E19 par exemple, puis E20 etc si déjà occupé...

J'avance, j'avance! mais comme souvent, je cherche 3h mes réponses sur le forum, essaye mille choses et ça joue pas toujours...
MERCI!
A+
 

pnlop

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

Bonjour le Forum et Bonjour Modeste.
Merci pour le dernier dépannage. Ca colle juste!
Je mets mon fichier en Zip, car j'ai 2-3 soucis encore dans mon code.
Code de la feuille Accueil: concernant mon TextBox1 et mon CheckBox19 avec des condition... Celui du TextBox1_change est ok mais celui du CheckBox19_Click ne fonctionne pas...

Dans le code du bouton VALIDER:
If CheckBox7.Value = True Then
Worksheets("Accueil").Range("K4").Copy
Worksheets("visualisation").Range("E6", Range("E6").End(xlDown).Offset(1, 0)).PasteSpecial (xlPasteValues)
End If
Application.CutCopyMode = False

If CheckBox8.Value = True Then
Worksheets("Accueil").Range("K5").Copy
Worksheets("visualisation").Range("E6").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
End If
Application.CutCopyMode = False

J'aurais apprécié que si E6 est plein, le collage suivant se fasse en E7 (1ère cellule vide en dessous)
(les cellules de destination ne sont pas justes, mais je changerai tout par la suite quand ça fonctionnera...!)

Une idée???
MERCI
 

pnlop

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

Oublié le fichier...:eek:
 

Pièces jointes

  • Nouveau dossier compressé.zip
    158.2 KB · Affichages: 105
  • Nouveau dossier compressé.zip
    158.2 KB · Affichages: 252
  • Nouveau dossier compressé.zip
    158.2 KB · Affichages: 74

Modeste

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

Bonjour pnlop,

Si tu écris:
Code:
Worksheets("visualisation").Range("E6").End(xlDown).Offset(1, 0)
... et que E6 est la dernière cellule non-vide de la colonne, "Range("E6").End(xlDown)" t'emmène dans la dernière cellule de la colonne E (E65.536 sous Excel 2003, et E1.048.576 en Excel 2007)
Si tu ajoutes à cela un"Offset(1,0)" tu es en dehors du "bac à sable"!

Essaye donc plutôt l'inverse:
Code:
Worksheets("visualisation").Range("E65000").End(xlUp).Offset(1, 0)
Si tu risques de dépasser les 65.000 lignes, tu peux aussi écrire:
Code:
Worksheets("visualisation").Range("E" & Rows.Count).End(xlUp).Offset(1, 0)

... tu essaies et tu nous dis si c'est ok?

Edit: ... et moi je viens de voir ton fichier ... que je n'ai pas encore ouvert!
 

pnlop

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

Re,
Alors j'ai testé: ça fonctionne, mais: ça me les colle tout à la suite de E6, alors que je voudrais que les cellules correspondant au 4 premières Checkbox (si cochées) aillent se coller en E6 et à la suite, puis que les cellules correspondant au 4 checkbox suivantes (si cochées) aillent se coller en E12 et suivant par ex. etc... (c'est peut-être plus comprhéensible en regardant le fichier...) La feuille "visualisation" reprend un peu le schéma de la feuille "Accueil". car par la suite, il y aura d'autre donnés qui viendront se coller sur la feuille "visualisation" et le but final est une macro qui transforme la feuille "visualisation" en pdf. , à enregistrer à un endroit précis et envoyer par email... Mais j'y suis pas encore tout à fait!:rolleyes:
 

Modeste

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

re-bonjour pnlop,

Une fois encore, je ne faisais qu'expliquer le principe en réponse à
J'aurais apprécié que si E6 est plein, le collage suivant se fasse en E7 (1ère cellule vide en dessous)
... il t'appartient ensuite d'adapter et donc de modifier tes
Range("xxx").End(xlDown).Offset(1,0)
par des
Range("x65000").End(xlUp).Offset(1,0)
Je n'ai guère plus de temps maintenant pour regarder ton fichier et répondre aux autres questions. Réponse possible en soirée ... à moins qu'une bonne âme passe par ici avant :)
 

pnlop

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

Re Modeste et le forum!
Merci pour ta réponse. J'attends de voir le reste!!! mais pas de stress. Dès maintenant, suis en weekend et je vais mettre les VBA en weekend aussi! Si je tiens, car c'est comme une drogue ces foutus codes! j'en rêve la nuit!!!
A+ et merci pour ton aide!
pnlop
 

Discussions similaires

Statistiques des forums

Discussions
312 218
Messages
2 086 363
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang