Référence à une feuille par codename
Résolu
Medestrac
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour,
J'ai un classeur contenant 3 feuilles "Entrée2021", "Sortie2021", "Bilan2021" et d'autres feuilles.
Ce classeur est réutilisé chaque année en renommant les feuilles 2021 en 2022.
J'ai un code à répéter sur ces 3 feuilles. Je ne peux pas utiliser leur nom car il change chaque année. J'aurais donc voulu utiliser leur "codename". Quelque chose du genre:
Ce qui ne marche évidemment pas... une idée?
J'ai un classeur contenant 3 feuilles "Entrée2021", "Sortie2021", "Bilan2021" et d'autres feuilles.
Ce classeur est réutilisé chaque année en renommant les feuilles 2021 en 2022.
J'ai un code à répéter sur ces 3 feuilles. Je ne peux pas utiliser leur nom car il change chaque année. J'aurais donc voulu utiliser leur "codename". Quelque chose du genre:
Feuilles = array("Feuil1", "Feuil4", "Feuil8") For each F in Feuilles F.range("A1") = "blabla" Next F
Ce qui ne marche évidemment pas... une idée?
Configuration: Windows / Firefox 97.0
A voir également:
- Référence à une feuille par codename
- Bruler feuille de laurier - Guide
- Comment supprimer une feuille sur word - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Reference pto - Accueil - Box & Connexion Internet
3 réponses
bonjour,
peut-être
ou
peut-être
Feuilles = array("Feuil1", "Feuil4", "Feuil8") For each F in Feuilles sheets(F).range("A1") = "blabla" Next F
ou
dim F as worksheet, nom as string Feuilles = array("Feuil1", "Feuil4", "Feuil8") For each nom in Feuilles set F = sheets(nom) F.range("A1") = "blabla" Next F
Bonjour,
Le problème est que le "nom" de la feuille est différent. Dans l'éditeur VBA -> Propriétés d'une feuille il y a une ligne "(Name)" qui chez moi est "Feuil1" et une ligne "Name" qui chez moi est "Entrée 2021".
Pour écrire sur cette feuille je peux faire soit
Mais le code suivant ne marche pas:
car nom ne correspond pas à la propriété name de la feuille mais à la propriété (name)...ce qui n'est pas pareil.
Le problème est que le "nom" de la feuille est différent. Dans l'éditeur VBA -> Propriétés d'une feuille il y a une ligne "(Name)" qui chez moi est "Feuil1" et une ligne "Name" qui chez moi est "Entrée 2021".
Pour écrire sur cette feuille je peux faire soit
Feuil1.range("A1") = "blabla"soit
Sheets("Entrée 2021").range("A1") = blabla
Mais le code suivant ne marche pas:
nom = "Feuil1"
sheets(nom).range("A1") = "blabla"
car nom ne correspond pas à la propriété name de la feuille mais à la propriété (name)...ce qui n'est pas pareil.
nom = "Feuil1"renvoi une erreur tandis que
nom.range("A1")= "blabla"
Feuil1.range("A1") = "blabla"fonctionne correctement
La solution dans mon cas est effectivement d'utiliser la propriété name de la manière suivante:
Feuilles = Array(Feuil1.name, Feuil4.name, Feuil8.name)
For each F in Feuilles
worksheets(F).Range("A1")= "blabla"
Next
Merci du coup de main