Comment faire lire à une macro le nom d'une feuille de classeur ?

  • Initiateur de la discussion Initiateur de la discussion Matt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Matt

Guest
Bonjour à tous,

j'ai un problème qui m'a paru simple en apparence mais dont je n'ai pas pu trouvé la solution par moi même (Pb de syntaxe ?).

Alors je récupère une feuille excel d'un fichier ascii. Cette feuille est nommée d'après le fichier ascii. J'éxécute plusieurs macros sur les valeurs de cette feuille dont une qui créée une nouvelle feuille et fait un copier collé. A ce moment là, je souhaite retourner sur ma première feuille mais je ne sais pas comment.
En fait je ne maitrise pas le nom de la première feuille (il change suivant le fichier ascii que j'utilise) donc je voudrais que le VBA aille le lire et le mette dans une variable dont je pourrais me resservir.

Merci d'avance, A+, Matt.
 
bonjour Matt

le principe:

worksheets( ici soit le nom de la feuille soit l'index du numéro de feuille)

exemple pour avoir le nom de la feuille active:
nom=activesheet.name
si tu veux le nom de la deuxième feuille
nom= worksheets(2).name

dans ton cas peut être( pour activer la feuille1):

worksheets(1).activate

j'éspère que cela t'aidera
 
Bonjour Sousou, Matt, re BipBip

Attention, différents types de Variables !!!


Pour éviter de mettre la confusion dans l'esprit de ceux et celles qui pourraient nous lire...

Dans l'exemple de Sousou
Nom= Worksheets(2).Name
WorkSheets(Nom).Activate
On doit déclarer Nom => Dim Non As String

Dans l'exemple de BipBip
For Each sh In ActiveWorkbook.Sheets
MsgBox sh.Name
On doit déclarer sh=> Dim sh As WorkSheet

Et pour ne pas avoir de surprise si le WorkBook ne contient pas que des "Sheets" (Charts, Dialogs) il est préférable d'utiliser cette syntax :
For Each sh In ActiveWorkbook.WorkSheets

Bon Appétit
@+Thierry
 
Re Bonjour Matt

Je suis formel, le Nom d'une feuille (Nom de l'onglet) retourne une chaine de caractères de longueur variable (String)

Dans un Classeur Vierge, fais ce test Matt :
Sub TEST()
Dim nom As String
nom = ActiveSheet.Name
MsgBox nom
End Sub

Et tu verras bien que ce n'est pas là où ça ne marchait pas, tu devais avoir un autre problème ailleurs Matt...

Bonne fin de journée
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour