Référence à une feuille par codename
Résolu/Fermé
Medestrac
-
Modifié le 25 févr. 2022 à 10:00
yg_be Messages postés 23470 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 - 25 févr. 2022 à 12:16
yg_be Messages postés 23470 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 - 25 févr. 2022 à 12:16
A voir également:
- Référence à une feuille par codename
- Reference pto - Accueil - Box & Connexion Internet
- Comment supprimer une feuille sur word - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
- Bruler une feuille de laurier - Guide
3 réponses
yg_be
Messages postés
23470
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
Ambassadeur
1 568
25 févr. 2022 à 09:56
25 févr. 2022 à 09:56
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.
yg_be
Messages postés
23470
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
Modifié le 25 févr. 2022 à 11:04
Modifié le 25 févr. 2022 à 11:04
Ce sont des variables, pas des noms.
Tu l'utilises comme une variable quand tu fais
Tu peux créer un tableau avec les valeurs de ces variables:
Tu l'utilises comme une variable quand tu fais
Feuil1.range("A1") = "blabla".
Tu peux créer un tableau avec les valeurs de ces variables:
Feuilles = array(Feuil1, Feuil4, Feuil8)
yg_be
Messages postés
23470
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
25 févr. 2022 à 11:00
25 févr. 2022 à 11:00
si tu veux le nom, fais
nom=Feuil1.name
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
yg_be
Messages postés
23470
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
25 févr. 2022 à 12:16
25 févr. 2022 à 12:16
beaucoup plus simple:
Feuilles = Array(Feuil1 , Feuil4 , Feuil8) For each F in Feuilles F.Range("A1")= "blabla" Next