Userform : envoyer données suivant choix dans une combobox

mrzaitsev90

XLDnaute Occasionnel
Bonsoir à tous,

J'ai un petit souci. Je ne suis pas assez fort en VBA pour réaliser ce code.

Je m'explique : http://cjoint.com/?DCcuWhffXBA

Le but serait de rentrer des infos liées aux références sélectionnées dans les combobox de gauche.

Si je choisis une référence, j'aimerais pouvoir rentrer dans les deux box suivantes, un nombre composé de 8 chiffres. Dans la textbox suivante, une date à noter avec la forme "SEM 1" par exemple. Enfin dans la dernière, il suffirait de choisir dans la liste déroulante.

A chaque fois, on pourrait le faire pour plusieurs références et le fait de valider, enverrait ces données dans le tableau.

En rentrant les données une première fois pour une référence, ces données se placeraient dans les colonnes C1.

Si je rentre des données à nouveau pour la même référence, ces données se placeraient dans les colonnes C2. etc etc...

...jusqu'à la colonne C5.

Voilà, j'espère être compréhensible.

Cela m'aiderait énormément.

Merci d'avance.

MrZaitsev90
 

Regueiro

XLDnaute Impliqué
Re : Userform : envoyer données suivant choix dans une combobox

Bonsoir
En effet pas très compréhensible
Voici ton fichier en retour
Alimenter les TextBox 1 à 5 en fonction du choix de la Combobox1

Code:
Option Compare Text
Dim f
Private Sub UserForm_Initialize()
   Dim temp
   Dim mondico
   Dim c As Range
   Set f = Sheets("Feuil1")
   Set mondico = CreateObject("Scripting.Dictionary")
   For Each c In Range(f.[A2], f.[A65000].End(xlUp))
      If c.Value <> "" Then mondico.Item(c.Value) = c.Value
   Next c
      temp = mondico.items
   Call tri(temp, LBound(temp), UBound(temp))
   Me.ComboBox1.List = temp
 End Sub
Sub tri(a, gauc, droi) ' Quick sort
   ref = a((gauc + droi) \ 2)
   g = gauc: d = droi
   Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
   Loop While g <= d
   If g < droi Then Call tri(a, g, droi)
   If gauc < d Then Call tri(a, gauc, d)
 End Sub
Private Sub CommandButton2_Click()
   Unload Userform1
End Sub
Private Sub ComboBox1_Click()
    Set f = Sheets("Feuil1")
    ligne = f.[A:A].Find(ComboBox1.Value, LookIn:=xlValues).Row
    Me.TextBox1 = f.Cells(ligne, 2)
    Me.TextBox2 = f.Cells(ligne, 3)
    Me.TextBox3 = f.Cells(ligne, 4)
    Me.TextBox4 = f.Cells(ligne, 5)
    Me.TextBox5 = f.Cells(ligne, 5)
 End Sub
Je te laisse voir pour la suite.
A+
Je vais me coucher ??
Si tu as des problèmes on peut regarder demain soir
 

Pièces jointes

  • XLD_test_formulaire.xlsm
    34 KB · Affichages: 53

mrzaitsev90

XLDnaute Occasionnel
Re : Userform : envoyer données suivant choix dans une combobox

Bonsoir,

Merci de votre aide.

Pour être plus clair, j'ai fait un screenshot du formulaire que vous avez modifié.

Il concerne la première fois que vous rentrez des données pour la Ref 1, la Ref 2 et la Ref 3.

Si vous entrez toutes ces données concernant ces références, et que vous validez, ces données iront dans les C1.

Si vous rechargez ce USF avec d'autres références de la liste et que vous validez, ces données iront également dans les C1.

Mais par contre, si vous entrez à nouveau des données concernant la ref 1, la ref 2 ou la ref 3 et que vous validez, ces données iront dans les C2.. et ainsi de suite jusqu'à C5. Après, il doit y avoir une impossibilité d'aller en C6 qui n'existe pas d'ailleurs.

Je pense que c'est plus clair. Même moi je comprends mieux, non je déconne.. :D

screenshotprojet.png

Merci si vous y arrivez.

Mrzaitsev90
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote