Excel VBA référence une feuille par codename
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un classeur "Ventes2022" avec une feuille "France 2022" sur laquelle je veux lire la cellule A1 depuis un autre classeur.
Etape 1: j'ouvre "Ventes2022" en lecture seule:
Set W_Vente = Application.Workbooks.Open(Chemin, ReadOnly:=True)
Etape 2: je lis ma cellule:
valeur = W_Vente.Sheets("France 2022").Range("A1").Value
Sauf que chaque année le nom de la feuille change. Alors que son "Codename" reste Feuil1
Dans le classeur W_Vente j'utilise toujours Feuil1.Range("A1".Value pour accéder à cette valeur...mais impossible de faire de même depuis un autre classeur:
valeur = W_Vente.Feuil1.Range("A1").value
renvoie une incompatibilité de type.
Comment faire référence depuis un autre classeur à une feuille dont le nom est susceptible de changer?
3 réponses
-
Bonjour,
Pour faire référence à la première feuille d'un classeur alors il faut écrire :
valeur = W_Vente.Worksheets(1).Range("A1").value
-
Il me semble que cette notation fait référence à l'ordre des feuilles dans le classeur, ce qui n'est pas forcément figé. Ma Feuil1 "France2022" peut très bien être placé en troisième position dans le classeur.
-
Malheureusement non...ni en anglais ni en français. Si je place le code dans le classeur vente et que je fais
valeur = Feuil1.Range("A1").valuej'obtiens un résultat correct...mais pas quand je le fais depuis un autre classeur.
-
Est-il possible d'avoir un exemple de classeur ? (des classeurs ?)
Car la syntaxe est bonne pour moi et l'appel depuis un autre classeur ne devrait pas poser problème puisque celui ci a été déclaré via :
Set W_Vente = Application.Workbooks.Open(Chemin, ReadOnly:=True)
Et ensuite appelé avec :
valeur = W_Vente.Feuil1.Range("A1").value
-