Bonjour à tous,
Cela fait un petit moment que je galère sur ces histoires de listes et ce malgré les déjà très nombreux messages sur les forums.
Mon cas est pourtant simple, j'ai un tableau a deux colonne, la première avec les noms des clients et la deuxième avec les catégories de client.
Il s'agit d'un extrait de tableau. Je veux dans une autre feuille avoir un tableau avec pour N ligne la possibilité de choisir 1 client et 1 catégorie (N étant égale à la somme des types de client pour chaque catégorie).
Ce que je souhaite avoir c'est une macro qui me calcule N m'insère les N lignes avec les 2 premières colonnes Client et Categorie avec des listes déroulantes dedans qui me permettent de choisir. J'ai essayé un certain nombre de chose mais à chaque fois il y a un problème. Je commence forcement à me demander si mon idée est bonne (à la fin du message mon code), il marche quasiment mais il y a un problème de mise à jour de la liste conditionnelle... et finalement je me demande comment je pourrai ensuite créer des lignes automatiquement...
Quelqu'un a-t-il une autre méthode à me conseiller? Je pense que effectuer la macro sur SelectionChange n'est pas une bonne idée, sur Activate non... Il faudrait au final que ma liste soit toujours la, commment faire? Doit-on nécessairement créer un autre tableau avec des colonnes ayant pour en-tête les différents nom de client?
J'espère avoir été clair, je suis un peu desespéré la... Merci d'avance à celle ou celui qui pourra m'apporter quelques éléments
Cela fait un petit moment que je galère sur ces histoires de listes et ce malgré les déjà très nombreux messages sur les forums.
Mon cas est pourtant simple, j'ai un tableau a deux colonne, la première avec les noms des clients et la deuxième avec les catégories de client.
Client | Categorie |
EasyJet | Administrateur |
EasyJet | Piste |
AirFrance | Pilote |
AirFrance | Hotesse |
Il s'agit d'un extrait de tableau. Je veux dans une autre feuille avoir un tableau avec pour N ligne la possibilité de choisir 1 client et 1 catégorie (N étant égale à la somme des types de client pour chaque catégorie).
Ce que je souhaite avoir c'est une macro qui me calcule N m'insère les N lignes avec les 2 premières colonnes Client et Categorie avec des listes déroulantes dedans qui me permettent de choisir. J'ai essayé un certain nombre de chose mais à chaque fois il y a un problème. Je commence forcement à me demander si mon idée est bonne (à la fin du message mon code), il marche quasiment mais il y a un problème de mise à jour de la liste conditionnelle... et finalement je me demande comment je pourrai ensuite créer des lignes automatiquement...
Quelqu'un a-t-il une autre méthode à me conseiller? Je pense que effectuer la macro sur SelectionChange n'est pas une bonne idée, sur Activate non... Il faudrait au final que ma liste soit toujours la, commment faire? Doit-on nécessairement créer un autre tableau avec des colonnes ayant pour en-tête les différents nom de client?
J'espère avoir été clair, je suis un peu desespéré la... Merci d'avance à celle ou celui qui pourra m'apporter quelques éléments
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$10" Then
Set ListeClient = CreateObject("Scripting.Dictionary")
For Each c In [client]
If Not ListeClient.exists(c.Value) Then
ListeClient(c.Value) = ""
temp = temp & c & ","
End If
Next c
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula1:=Left(temp, Len(temp) - 1)
Set ListeClient2 = CreateObject("Scripting.Dictionary")
For Each d In [Categorie]
If Not ListeClient2.exists(d.Value) And d.Offset(0, -1).Value = Target.Value Then
ListeClient2(d.Value) = ""
temp2 = temp2 & d & ","
End If
Next d
Target.Offset(0, 1).Validation.Delete
Target.Offset(0, 1).Validation.Add xlValidateList, Formula1:=Left(temp2, Len(temp2) - 1)
End If
End Sub