Bonjour à tous, toujours dans mon apprentissage du VBA je me suis attaqué a une macro que je n'arrive pas à coder correctement, il y a quelque chose qui m'échappe.
J'ai des données sur trois colonnes colonnes A (Liste de mes Deviseurs) et B (Liste de mes Clients) et C (Deviseur en fonction du client), les colonnes B et C sont dépendantes car chaque deviseur à son propre client dédié. Mais je garde la colonne A par exemple pour un client qui n'est pas attribué.
Ensuite j'ai dans un UserForm deux ComboBox, , 1 pour la liste des Deviseurs suivant Colonne A, 2 pour la liste des client suivant Colonne B.
Dans ma Macro j'aimerai:
- Si je sélectionne un client dans la CB2, c'est qu'il a un Deviseur dédié et du coup forcer la valeur de la CB1 (Ex: Je sectionne dans ma CB1 le client de la cellule B5, cela fige la CB2 avec le deviseur de la colonne C5).
- Si j'écris le nom d'u nouveau client, rien ne change dans la CB2, j'ai juste a choisir un Deviseur dans sa liste.
Je ne sais pas si on peut taper une valeur autre que dans la liste d'une ComboBox et s'en servir, si ce n'est pas possible je passerai par un TextBox.
Voici ce que j'ai pour l'instant en code, tout est ok pour moi jusqu’à la partie "Détermination du Deviseur en fonction du client" je pensais que cela fonctionnerai mais rien ne se passe quand je teste. Quelqu'un aurait-il une idée
nbrDeviseur = Application.WorksheetFunction.CountA(Range("B3:B100")) 'B est ma colonne Deviseurs
nbrClient = Application.WorksheetFunction.CountA(Range("J3", Cells(Rows.Count, "J").End(xlUp))) 'J est ma colonne client
ReDim equipeDeviseur(nbrDeviseur, 3) 'Création du tableau avec B Colonne Deviseur, les 3 autres colonnes servent à d'autres macros, ici seul la colonne 0 nous est utile
ReDim nomClient(nbrClient, 1) ' Création du tableau avec J colonne Client et K colonne Deviseur en fonction du client.
'Création des listes déroulantes dans l'userform
For i = 0 To nbrDeviseur
If equipeDeviseur(i, 0) <> "" Then
Deviseur_CB.AddItem equipeDeviseur(i, 0)
End If
Next i
For i = 0 To nbrClient
If nomClient(i, 0) <> "" Then
ComboBox2.AddItem nomClient(i, 0)
End If
Next i
'Détermination du Deviseur en fonction du client
For i = 0 To nbrClient
If ComboBox2.Value = nomClient(i, 0)
ComboBox1.Value = nomClient(i, 1)
End If
Next i