Bonjour à tous,
Je suis actuellement en train de programmer une petite base de données permettant de consulter différents fichiers ou bien d'ajouter un fichier à la liste.
Concernant la partie d'ajout de fichiers j'ai besoin que l'utilisateur précise la "provenance" de son fichier. Je veux qu'il choisisse une valeur dans la CBoxCodeCommercial1 (en dessous du Code commercial) et dès qu'il clique sur une valeur de la liste il faut que les 3 autres combobox prennent des valeurs.
Les valeurs de la CB1 sont remplie sur un tableau qui se situe en page(2) colonne B, CB2 pareil mais colonne C, CB3 colonne D et CB4 colE. A chaque fois sur la même ligne.
J'ai programmer la prise de valeurs pour CB1 mais àprès cela je suis totalement bloqué !!
Voici le code pour ma CB1:
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Private Sub Userform_Initialize() Dim sd As Object 'déclare la variable sd (Sans Doublons) Dim pl As Range 'déclare la variable pl (PLage) Dim cel As Range 'déclare la variable cel (CELlule) Dim tbl As Variant 'déclare la variable tbl (TaBLeau) Dim i As Integer 'déclare la variable i (incrément) Dim j As Integer 'déclare la variable j (incrément) Dim temp As Variant 'déclare la variable temp (valeur TEMPoraire) Set sd = CreateObject("Scripting.Dictionary") 'définit la variable sd With Sheets("Bilan-Lien") 'prend en compte l'onglet "Base_de_donnees" Set pl = .Range("B3:B" & .Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl End With 'fin de la prise en compte de l'onglet "Base_de_donnees" For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl sd(cel.Value) = "" 'alimente la liste sans doublons Next cel 'prochaine cellule de la boucle tbl = sd.keys 'définit le tableau des valeurs sans doublons 'tri alphabétique For i = 0 To UBound(tbl) 'boucle 1 de 0 au nombre de valeur du tableau For j = 0 To UBound(tbl) 'boucle 2 de 0 au nombre de valeur du tableau If tbl(i) < tbl(j) Then 'condition : si la valeur de la boucle 1 est invérieure à la valeur de la boucle 2 temp = tbl(i) 'définit la valeur temporaire temp tbl(i) = tbl(j) 'la valeur de la boucle un devient la valeur de la boucle 2 tbl(j) = temp 'la valeur de la boucle deux devient la valeur temporaire temp End If 'fin de la condition Next j 'prochaine valeur de la boucle 2 Next i 'prochaine valeur de la boucle 1 Me.CBoxCodeCommercial.List = tbl 'alimente la ComboBox1 sans doublons et trié par ordre alphabétique End Sub
Edit: Après reflexion peut -être que je peux changer les 3 combo box en un autre outil ? textbox ?
Partager