Bonjour,

J'ai une base de donnees access et dans mon fichier excel j'ai cree dans la colonne A une premiere liste de validation resultat d'une query. Selon la valeur choisi ca lance une autre query avec un where = valeur de la liste de validation.

J'ai 2 methodes differentes :
- la premiere:
utiliser la query en connexion ADO sur la base access et coller le resultat quelque part sur la feuille. On a un resultat en "dur" et je construit une string en parcourant la colonne.
Ex : A1 = toto; A2 = tata; A3 = titi...
au final j'ai string = toto;tata;titi;
et je colle tout ca avec :
RangeDestination.validation.add Formula1 := string

Lacune du truc, qd lq string est trop longue, je suppose 255 caracteres, l'affectation ne passe pas. J'ai pense a essayer d'affecter un bout de la string dans Formula1 puis un autre bout puis, puis, puis, mais je n'y arrive pas

- la deuxieme, en ODBC, je fais une query, on colle le resultat depuis la querytable sur la feuille, on a un resultat "volatil" et on construit une string qui correspond au range occupe par le resultat de la query en R1C1
string = R1C1:R24C1
et paf RangeDestination.validation.add Formula1 := "=" & string

Lacune du truc vu que je repete ca sur plusieurs lignes, plusieurs colonne, on se retrouve avec un range("toto").value = UneValeur de la liste de validation qui a change

Je tourne en rond... c'est un peu l'histoire du serpent qui se mord la queue. S'il faut plus de precision je peux en donner, voir meme montrer mon code.

J'ai pense a un formulaire compose de combox-box remplit qui permettrait de remplir le fichier excel mais ca serait pas convivial du tout....

Merci de vos lumieres