Comment désigner une feuille excel par son codename
Résolu/Fermé
wire less
Messages postés
210
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
29 août 2018
-
3 nov. 2015 à 15:00
wire less Messages postés 210 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 29 août 2018 - 13 nov. 2015 à 13:54
wire less Messages postés 210 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 29 août 2018 - 13 nov. 2015 à 13:54
A voir également:
- Vba sélectionner une feuille par son nom
- Nom de l'adresse ✓ - Forum Réseaux sociaux
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Trouver un nom avec une adresse ✓ - Forum Loisirs / Divertissements
- &Quot;Nom de l'adresse" lors d'une inscription sur une site - Forum Consommation & Internet
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
5 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
3 nov. 2015 à 16:20
3 nov. 2015 à 16:20
Bonjour,
Toujours avec le code Name!
Toujours avec le code Name!
Option Explicit Private Sub CommandButton1_Click() Dim wsh As Worksheet Workbooks.Open ("C:\Users\.....\Documents\Classeur2.xlsx") 'boucle sur toutes les feuilles For Each wsh In ActiveWorkbook.Worksheets ' pour chaque feuille du classeur MsgBox wsh.Name Next 'on passe à la feuille suivante 'feuille active MsgBox ActiveSheet.Name End Sub
9 nov. 2015 à 10:22
Mais il s'agit bien d'une confusion ... et j'essai justement de la résoudre.
Si je reprend ton script et que je le complète avec ce dont j'ai besoin :
Alors tu te rendra compte que chaque feuille possède un "Name" : c'est le nom de l'onglet écris sur l'onglet Excel, et un CodeName. Le CodeName c'est le vrai nom de l'objet feuille.
J'ai besoin du CodeName parce qu'il est écris en dur et que l'utilisateur ne peut pas le modifier simplement en cliquant-droit sur l'onglet et en le renommant. Ainsi, pas de possibilité d'erreur pour mon script.
Malheureusement, il est facile d'appeler un CodeName sur l'instance d'excel à l'origine de la macro ... (Feuil1.Select ou lieu de Sheets("Nom_de_Mon_Onglet").Select
Mais lorsqu'il s'agit d'une autre feuille Excel ... ben c'est plus la même chose !!
Si je fait :
ça marche.
J'ai une erreur :
Erreur d'exécution '1004':
La méthode 'Select' de l'objet '_Workshhet' a échoué
...
Quelqu'un aurait une idée ??
9 nov. 2015 à 11:55
MsgBox wsh.CodeName
Il me semble que c'est moi qui l'ai écris ... toi tu n'as fait référence qu'à
MsgBox wsh.Name
Mon problème reste le même.
Dans ma feuille je ne connais que mon "CodeName" ... et pas mon "Name".
Le "CodeName" en question c'est "Feuil1". Si je veux connaitre le "Name" associé je n'ai qu'à faire :
MsgBox Feuil1.Name
Je reviens à mon problème :
ça marche
ça marche pas.
ou encore :
qui ne marche pas non plus.
Je précise que ces méthodes marchent très bien quand je travail que sur les feuilles de l'excel qui exécute la macro.
J'aurais aimé faire un par exemple ...
mais sa ne marche pas non plus ...
J'ai plus d'idée !
Merci encore tout le monde !!