Excel VBA référence une feuille par codename
Ferméyg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 - 12 août 2022 à 18:32
- Excel VBA référence une feuille par codename
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Excel trier par ordre croissant chiffre - Guide
3 réponses
Modifié le 12 août 2022 à 15:02
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.
12 août 2022 à 15:18
Effectivement si l'ordre vient à changer il y aura un problème !
Ce code ci ne fonctionne pas ?
valeur = W_Vente.Feuil1.Range("A1").value
Excel est peut être en langue anglaise ?
A la place de Feuil1 y mettre Sheet1
Modifié le 12 août 2022 à 18:32
bonjour, alors
dim ws1 as worksheet for each ws1 in W_Vente.Worksheets if ws1.codename="Feuil1" then valeur = ws1.Range("A1") break end if next ws1
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").value
j'obtiens un résultat correct...mais pas quand je le fais depuis un autre classeur.
12 août 2022 à 16:18
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