OVH Cloud OVH Cloud

Validation de données à l'interieur d'une boucle

1 réponse
Avatar
Jean-Baptiste
Bonjour,
tout d'abord merci beaucoup pour les nombreuses astuces que j'ai déja pu
lire sur votre site et grace auxquelles j'ai déja gagné un temps fou à
developper des macros sous Excel.

Ma question est la suivante :

J'ai besoin de construire des listes (Validation de données) de manière
dynamique (via une boucle) à partir de données étant présentes sur une autre
feuille.

Je m'explique :
sur une feuille 1 sont présents des paquets de données, chaque paquet etant
identifié (pas de soucis a ce niveau). Par contre le nombre de paquets est
variables...

Chacun de ces paquets contient l'ensemble des données d'une liste présentes
sur une autre feuille (feuille 2) : N paquets dans la feuille 1 = N listes à
créer dans N cellules de la feuille 2.

J'utilise une boucle while qui fait le traitement suivant :
- identification d'un groupe de données sur la feuille 1 (Selection)
- recopie de ce groupe sur la feuille 2
- je nomme ce groupe
- création de la liste avec ce groupe

Le problème est que le nom de mon groupe est variable, étant donné que je
dois remplir une liste différente à chaque tour de boucle!
Donc quand j'utilise l'instruction suivante, Excel cherche une plage de
données nommé "Temp" alors que Temp est variable et varie à chaque coup de
boucle!

Selection.Validation
.Add Type:=xlValidateList, Formula1:="=Temp"

Si j'écris :

Selection.Validation
.Add Type:=xlValidateList, Formula1:=Temp

alors dans ce cas, ma liste contient une données, le nom que j'ai donné au
groupe pour ce tour de boucle...

Après plusieurs heure de recherche, je ne vois vraiment pas comment m'en
sortir :-(

Merci d'avance pour d'éventuelles sugestions à propos de ce problème

Jean-Baptiste

1 réponse

Avatar
michdenis
Bonjour Jean-Baptiste,

Je n'ai pas vraiment saisi ta problématique...

Si dans ta feuille qui contient ton tableau des données,
tu définis dynamiquement des plages nommées en
utilisant l'étiquette de colonne comme "NOM" de ta
plage, tu pourras utiliser ces noms dans tes listes de validation
même si ces dernières sont sur une autre feuille.

Création Nom - Insertion / Nom / Définir
Tu utilises ce type de formule pour créer tes noms

Nom : Titre1
'Fait référence à :
ÞCALER(Feuil1!A2;;;NBVAL(Feuil1!A:A)-1)


Salutations!




"Jean-Baptiste" a écrit dans le message de news:

Bonjour,
tout d'abord merci beaucoup pour les nombreuses astuces que j'ai déja pu
lire sur votre site et grace auxquelles j'ai déja gagné un temps fou à
developper des macros sous Excel.

Ma question est la suivante :

J'ai besoin de construire des listes (Validation de données) de manière
dynamique (via une boucle) à partir de données étant présentes sur une autre
feuille.

Je m'explique :
sur une feuille 1 sont présents des paquets de données, chaque paquet etant
identifié (pas de soucis a ce niveau). Par contre le nombre de paquets est
variables...

Chacun de ces paquets contient l'ensemble des données d'une liste présentes
sur une autre feuille (feuille 2) : N paquets dans la feuille 1 = N listes à
créer dans N cellules de la feuille 2.

J'utilise une boucle while qui fait le traitement suivant :
- identification d'un groupe de données sur la feuille 1 (Selection)
- recopie de ce groupe sur la feuille 2
- je nomme ce groupe
- création de la liste avec ce groupe

Le problème est que le nom de mon groupe est variable, étant donné que je
dois remplir une liste différente à chaque tour de boucle!
Donc quand j'utilise l'instruction suivante, Excel cherche une plage de
données nommé "Temp" alors que Temp est variable et varie à chaque coup de
boucle!

Selection.Validation
.Add Type:=xlValidateList, Formula1:="=Temp"

Si j'écris :

Selection.Validation
.Add Type:=xlValidateList, Formula1:=Temp

alors dans ce cas, ma liste contient une données, le nom que j'ai donné au
groupe pour ce tour de boucle...

Après plusieurs heure de recherche, je ne vois vraiment pas comment m'en
sortir :-(

Merci d'avance pour d'éventuelles sugestions à propos de ce problème

Jean-Baptiste