sélectionne un client

  • Initiateur de la discussion petchy
  • Date de début
P

petchy

Guest
Bonjour le Forum,

voila,dans la piece jointe il y a:
un USF et 2 combo
1) combo : client
2) combo : code
je voudrais associé le combo client au combo code,c'est à dire si on sélectionne un client,c'est ses code qui apparaitront dans le combo code.
Je sais que Thierry avait fait une démo la dessus,j'ai voulu l'appliqué sur la miene mais rien à faire.Donc si une personne pouvais m'aiguillé la dessus
smileys-gif-971.gif

smileys-gif-1543.gif
Petchy
 

Pièces jointes

  • COMBO.zip
    10.6 KB · Affichages: 30
  • COMBO.zip
    10.6 KB · Affichages: 22
  • COMBO.zip
    10.6 KB · Affichages: 30
Z

Zon

Guest
Salut,

Suite à la demande de Petchy en BAL, il ne veut pas afficher que le code dans une combo mais aussi 2 autres valeurs issues de colonnes différentes: Articles et Délais. Une autre fonction Equiv qui récupére toutes els valeurs associées.
Voir fichier joint.
Si le fichier joint ne passe pas=> rajouter 2 labels nommés label3 et label4 sur l'userform de Petchy. et coller ceci dans le code de l'userform.

Dim PLage As Range
Private Sub ComboBox1_Change()
With ComboBox2
.Clear
On Error Resume Next
'Les codes étant en colonne 2, on met 2 colonnes à la combo en cachant la 1 ere
'Il serait en colonne 4 on mettrait "0;0;0;60"
.ColumnCount = 2
.ColumnWidths = "0;60"
.List = InverseTab(Equiv2(ComboBox1.Text, PLage.Value, 7))
End With
NettoieLabels
End Sub

Private Sub ComboBox2_Change()
On Error Resume Next
With ComboBox2
'Par rapport à un feuille de calcul il faut enlever 1 aux lignes et aux colonnes
Label3.Caption = .List(.ListIndex, 0) 'Articles
Label4.Caption = .List(.ListIndex, 5) 'Délais
'on aurait un autre label
'Label5.Caption =.List(.ListIndex, 2) Q.gel coat
End With
End Sub

Private Sub UserForm_Initialize()
Set PLage = Range([A2], [G65536].End(xlUp))
'Suppression des doublons par tableau sur la colonne 7<=>clients
ComboBox1.List = RecupDoublons(PLage.Value, 7)
End Sub

Private Sub NettoieLabels()
Label3.Caption = ""
Label4.Caption = ""
End Sub

Function RecupDoublons(T, ColT As Byte) 'Zon
Dim I&, J&, Tablo As New Collection, Temp()
For I = LBound(T, 1) To UBound(T, 1)
On Error Resume Next
Tablo.Add T(I, ColT), CStr(T(I, ColT))
If Err = 0 Then
ReDim Preserve Temp(J)
Temp(J) = T(I, ColT)
J = J + 1
End If
Next I
RecupDoublons = Temp
End Function

Function Equiv2(RechS$, T, Col1 As Byte) 'Zon
Dim I&, J&, K&, Tablo, Temp()
For I = LBound(T) To UBound(T)
If T(I, Col1) = RechS Then
ReDim Preserve Temp(UBound(T, 2) - 1, J) 'Temp est en base 0 pour cela qu'on ôte 1
For K = 0 To UBound(T, 2) - 1
Temp(K, J) = T(I, K + 1) 'T est en Base 1
Next K
J = J + 1
End If
Next I
Equiv2 = Temp
End Function

'
'On construit un tableau à l'envers dans Equiv2 il faut l'inverser

Function InverseTab(T, Optional Base As Byte = 0) 'Zon
Dim Temp(), I&, J&
ReDim Temp(Base To UBound(T, 2), Base To UBound(T))
For I = LBound(T, 2) To UBound(T, 2)
For J = LBound(T) To UBound(T)
Temp(I, J) = T(J, I)
Next J
Next I
InverseTab = Temp
End Function

A+++
 

Pièces jointes

  • COMBOZonV2.zip
    0 bytes · Affichages: 28

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 696
dernier inscrit
lgerbaud