Référence à une feuille par codename
Résolu
Medestrac
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
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 imprimer en a5 sur une feuille a4 - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment supprimer une feuille sur word - Guide
- Imprimer feuille excel sur une page - Guide
3 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
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