Définir et nommer des plages de cellules variables

Bonjour le Forum,

Je débute en VBA et voici mon problème:

J'ai un fichier avec 2 onglets, l'un appelé "Périmètre" et l'autre appelé "Reporting". Je dois envoyer ce template à plusieurs pays. Après sélection de leur pays dans une liste de validation dont la source est l'onglet "Périmètre" colonne B, chaque pays sélectionne sa ou ses filiale(s) dans une liste de validation dont la source est l'onglet "Périmètre" colonne A. La liste de Pays ne variera pas dans le temps alors que la liste des filiales peut changer car il peut y avoir des filiales vendues ou nouvelles chaque mois. J'ai réussi à créer une liste de validation pour ma cellule Pays et ma cellule Filiale en utilisant INDIRECT(Austria) par exemple. Cependant, au lieu d'utiliser le Gestionnaire de noms et aller sélectionner mes plages de cellules contenant les filiales pour chaque pays je souhaite créer un bouton, avec une macro qui parcourra la colonne B et qui pour chaque changement de pays, ira sélectionner une plage de cellule avec la ou les filiales correspondante(s) ET la nommera du nom du pays. Le tableau périmètre commence en A6 et finit en B1277.

Je vous remercie par avance pour l'aide que vous voudrez bien m'apporter.

Cordialement

Bonjour Jean Eric,

Vous avez raison, ce sera plus simple.

Petite précision, les filiales se trouvent dans la colonne D et les pays dans la colonne X toujours à partir de la ligne 6. Mon vrai fichier ne comporte aucune cellule vide jusqu'à la ligne 1277. Mais pour des raisons de confidentialité et de taille de fichier, j'ai dû faire un peu de nettoyage.

Cordialement

Bonjour,

Je n'ai pas travaillé sur ton fichier, mais peut-être que cela peut t'inspirer.

Cordialement.

192listes.xlsx (9.36 Ko)
oyobrans a écrit :

Bonjour,

Je n'ai pas travaillé sur ton fichier, mais peut-être que cela peut t'inspirer.

Cordialement.

Bonjour Oyobrans,

En fait, j'aimerais créer une macro qui définit des plages de cellules dans la colonne D en fonction de leur pays ( colonne X) et nomme ces plages en fonction du pays. Exemple : pour les filiales saisies en D6 à D12, dont le pays est "Austria", le nom de la plage de la cellule sera "Austria", ainsi de suite jusqu'à la dernière ligne non vide. Ensuite j'utiliserais ces plages de cellules pour créer des listes de validation via la fonction "indirect".

Merci quand même.

Bonjour le forum,

Désolée pour ma réponse tardive ...

J'ai finalement réussi à créer une liste de validation dépendante (sélection des entités du pays choisi pour chaque pays)

Il fallait en fait utiliser la fonction =DECALER(maplage;0;0;NBVAL(maplage)) dont j'ignorais l'existence.

Comme mon périmètre varie dans le temps, j'ai également utilisé une macro qui extrait les nouvelles entités et les pays associés sans les doublons !

Sub Extrac_Pays()

Range("X6").Select

Sheets("Périmètre").Range("X5:X1278").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Table").Range( _

"A1"), Unique:=True

End Sub

Sub Extraire_colPays_and_Entities()

'Extraction colonne Pays (à utiliser pour le cash tax reporting)

Sheets("Périmètre").Select

Range("X5:X1278").Select

Selection.Copy

Sheets("Table").Select

Range("F5").Select

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

'Extraction colonne Entity

Sheets("Périmètre").Select

Range("D5:D1278").Select

Selection.Copy

Sheets("Table").Select

Range("G5").Select

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

False, Transpose:=False

End Sub

Merci à ceux qui ont tenté de m'aider.

Cordialement,

Gigelle

Rechercher des sujets similaires à "definir nommer plages variables"