Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA Insérer le nom de l'onglet et copier avec Autofill

4 réponses
Avatar
Céline Brien
Bonjour à tous,
Merci d'être là !
Dans toutes les feuilles d'un classeur, j'insère une colonne à gauche de
la colonne A et j'insère un titre de colonne Project.
Dans la cellule A2, je voudrais insérer le nom de l'onglet pour chacune
des feuilles.
Par la suite, je souhaite copier ce nom vis à vis toutes les lignes via
un AutoFill.
J'ai cherché sans succès les codes pour réaliser ces deux dernières
opérations.
Voir codes ci-dessous.
Merci de votre aide,
Céline
----------------------------------------------------
Sub Project ()
Dim shMe As Worksheet
For Each shMe In Worksheets
shMe.Range("A:A").Insert Shift:=xlToRight
shMe.Range("A1").Value = "Project"
shMe.Range("A2").Value = Sheets.Name ---------> ?????
AutoFill -------------> ?????????
Next shMe
End Sub

4 réponses

Avatar
Céline Brien
Bonjour à tous,
Bonjour Camille,
Merci pour ta réponse.
Avec tes codes, j'obtiens, dans la première feuille du classeur, à
partir de A2, les noms de toutes les feuilles du classeur.
Ça peut toujours servir un jour !
Mais pour l'instant, je souhaite obtenir le nom de la feuille dans la
cellule A2 de chacune des feuilles.
Si la feuille 1 se nomme Canada, en A2 de cette feuille je récupère
Canada
Si la feuille 2 se nomme France, en A2 de cette feuille je récupère
France.
etc...
Quelque chose comme ceci :
For Each shMe In Worksheets
shMe.Range("a2").Value = Sheets(shMe).Name
Next shMe
Mais ces codes ne fonctionnent pas, j'obtiens le message d'erreur
suivant :
-----------------------------
Erreur d'exécution 13
Incompatibilité de type
-----------------------------
Merci de m'aider,
Céline


"Ellimac" a écrit dans le
message de news: 130d01c37eb9$e7c0af00$
Bonjour Céline,

Sub Toto()
For cpt = 1 To Sheets.Count
Range("a1").Offset(cpt, 0) = Sheets(cpt).Name
Next
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,
Merci d'être là !
Dans toutes les feuilles d'un classeur, j'insère une
colonne à gauche de

la colonne A et j'insère un titre de colonne Project.
Dans la cellule A2, je voudrais insérer le nom de
l'onglet pour chacune

des feuilles.
Par la suite, je souhaite copier ce nom vis à vis toutes
les lignes via

un AutoFill.
J'ai cherché sans succès les codes pour réaliser ces deux
dernières

opérations.
Voir codes ci-dessous.
Merci de votre aide,
Céline
----------------------------------------------------
Sub Project ()
Dim shMe As Worksheet
For Each shMe In Worksheets
shMe.Range("A:A").Insert Shift:=xlToRight
shMe.Range("A1").Value = "Project"
shMe.Range("A2").Value = Sheets.Name ---------
?????
AutoFill -------------> ?????????
Next shMe
End Sub


.



Avatar
Céline Brien
Bonjour à tous,
En réunissant des bouts de codes venus d'ici et là, j'ai finalement
réussi !
For cpt = 1 To Sheets.Count
Sheets(cpt).Select
Range("A2").Value = Sheets(cpt).Name
Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Range("A1").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
Next
Merci à tous pour votre aide,
Céline

"Céline Brien" a écrit dans le message
de news: e9s$
Bonjour à tous,
Bonjour Camille,
Merci pour ta réponse.
Avec tes codes, j'obtiens, dans la première feuille du classeur, à
partir de A2, les noms de toutes les feuilles du classeur.
Ça peut toujours servir un jour !
Mais pour l'instant, je souhaite obtenir le nom de la feuille dans la
cellule A2 de chacune des feuilles.
Si la feuille 1 se nomme Canada, en A2 de cette feuille je récupère
Canada
Si la feuille 2 se nomme France, en A2 de cette feuille je récupère
France.
etc...
Quelque chose comme ceci :
For Each shMe In Worksheets
shMe.Range("a2").Value = Sheets(shMe).Name
Next shMe
Mais ces codes ne fonctionnent pas, j'obtiens le message d'erreur
suivant :
-----------------------------
Erreur d'exécution 13
Incompatibilité de type
-----------------------------
Merci de m'aider,
Céline


"Ellimac" a écrit dans
le

message de news: 130d01c37eb9$e7c0af00$
Bonjour Céline,

Sub Toto()
For cpt = 1 To Sheets.Count
Range("a1").Offset(cpt, 0) = Sheets(cpt).Name
Next
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,
Merci d'être là !
Dans toutes les feuilles d'un classeur, j'insère une
colonne à gauche de

la colonne A et j'insère un titre de colonne Project.
Dans la cellule A2, je voudrais insérer le nom de
l'onglet pour chacune

des feuilles.
Par la suite, je souhaite copier ce nom vis à vis toutes
les lignes via

un AutoFill.
J'ai cherché sans succès les codes pour réaliser ces deux
dernières

opérations.
Voir codes ci-dessous.
Merci de votre aide,
Céline
----------------------------------------------------
Sub Project ()
Dim shMe As Worksheet
For Each shMe In Worksheets
shMe.Range("A:A").Insert Shift:=xlToRight
shMe.Range("A1").Value = "Project"
shMe.Range("A2").Value = Sheets.Name ---------
?????
AutoFill -------------> ?????????
Next shMe
End Sub


.






Avatar
AV
Plus simple (?) et plus rapide (économie de tous les "Select") :

Sub zz_NomF()
For F= 1 To Sheets.Count
With Sheets(F)
.Range("A2:A" & .[B2].End(4).Row) = Sheets(F).Name
End With
Next
End Sub

AV

"Céline Brien" a écrit dans le message news:

Bonjour à tous,
En réunissant des bouts de codes venus d'ici et là, j'ai finalement
réussi !
For cpt = 1 To Sheets.Count
Sheets(cpt).Select
Range("A2").Value = Sheets(cpt).Name
Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Range("A1").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
Next
Merci à tous pour votre aide,
Céline

"Céline Brien" a écrit dans le message
de news: e9s$
Bonjour à tous,
Bonjour Camille,
Merci pour ta réponse.
Avec tes codes, j'obtiens, dans la première feuille du classeur, à
partir de A2, les noms de toutes les feuilles du classeur.
Ça peut toujours servir un jour !
Mais pour l'instant, je souhaite obtenir le nom de la feuille dans la
cellule A2 de chacune des feuilles.
Si la feuille 1 se nomme Canada, en A2 de cette feuille je récupère
Canada
Si la feuille 2 se nomme France, en A2 de cette feuille je récupère
France.
etc...
Quelque chose comme ceci :
For Each shMe In Worksheets
shMe.Range("a2").Value = Sheets(shMe).Name
Next shMe
Mais ces codes ne fonctionnent pas, j'obtiens le message d'erreur
suivant :
-----------------------------
Erreur d'exécution 13
Incompatibilité de type
-----------------------------
Merci de m'aider,
Céline


"Ellimac" a écrit dans
le

message de news: 130d01c37eb9$e7c0af00$
Bonjour Céline,

Sub Toto()
For cpt = 1 To Sheets.Count
Range("a1").Offset(cpt, 0) = Sheets(cpt).Name
Next
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,
Merci d'être là !
Dans toutes les feuilles d'un classeur, j'insère une
colonne à gauche de

la colonne A et j'insère un titre de colonne Project.
Dans la cellule A2, je voudrais insérer le nom de
l'onglet pour chacune

des feuilles.
Par la suite, je souhaite copier ce nom vis à vis toutes
les lignes via

un AutoFill.
J'ai cherché sans succès les codes pour réaliser ces deux
dernières

opérations.
Voir codes ci-dessous.
Merci de votre aide,
Céline
----------------------------------------------------
Sub Project ()
Dim shMe As Worksheet
For Each shMe In Worksheets
shMe.Range("A:A").Insert Shift:=xlToRight
shMe.Range("A1").Value = "Project"
shMe.Range("A2").Value = Sheets.Name ---------
?????
AutoFill -------------> ?????????
Next shMe
End Sub


.









Avatar
Céline Brien
Bonjour à tous,
Bonjour Alain,
Merci pour ta réponse.
Je savais qu'il y avait mieux et je suis contente d'ajouter ces codes à
ma collection.
Merci encore,
Céline

"AV" a écrit dans le message de news:
uj#
Plus simple (?) et plus rapide (économie de tous les "Select") :

Sub zz_NomF()
For F= 1 To Sheets.Count
With Sheets(F)
.Range("A2:A" & .[B2].End(4).Row) = Sheets(F).Name
End With
Next
End Sub

AV

"Céline Brien" a écrit dans le message
news:


Bonjour à tous,
En réunissant des bouts de codes venus d'ici et là, j'ai finalement
réussi !
For cpt = 1 To Sheets.Count
Sheets(cpt).Select
Range("A2").Value = Sheets(cpt).Name
Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Range("A1").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
Next
Merci à tous pour votre aide,
Céline

"Céline Brien" a écrit dans le
message


de news: e9s$
Bonjour à tous,
Bonjour Camille,
Merci pour ta réponse.
Avec tes codes, j'obtiens, dans la première feuille du classeur, à
partir de A2, les noms de toutes les feuilles du classeur.
Ça peut toujours servir un jour !
Mais pour l'instant, je souhaite obtenir le nom de la feuille dans
la



cellule A2 de chacune des feuilles.
Si la feuille 1 se nomme Canada, en A2 de cette feuille je
récupère



Canada
Si la feuille 2 se nomme France, en A2 de cette feuille je
récupère



France.
etc...
Quelque chose comme ceci :
For Each shMe In Worksheets
shMe.Range("a2").Value = Sheets(shMe).Name
Next shMe
Mais ces codes ne fonctionnent pas, j'obtiens le message d'erreur
suivant :
-----------------------------
Erreur d'exécution 13
Incompatibilité de type
-----------------------------
Merci de m'aider,
Céline


"Ellimac" a écrit
dans



le
message de news: 130d01c37eb9$e7c0af00$
Bonjour Céline,

Sub Toto()
For cpt = 1 To Sheets.Count
Range("a1").Offset(cpt, 0) = Sheets(cpt).Name
Next
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,
Merci d'être là !
Dans toutes les feuilles d'un classeur, j'insère une
colonne à gauche de

la colonne A et j'insère un titre de colonne Project.
Dans la cellule A2, je voudrais insérer le nom de
l'onglet pour chacune

des feuilles.
Par la suite, je souhaite copier ce nom vis à vis toutes
les lignes via

un AutoFill.
J'ai cherché sans succès les codes pour réaliser ces deux
dernières

opérations.
Voir codes ci-dessous.
Merci de votre aide,
Céline
----------------------------------------------------
Sub Project ()
Dim shMe As Worksheet
For Each shMe In Worksheets
shMe.Range("A:A").Insert Shift:=xlToRight
shMe.Range("A1").Value = "Project"
shMe.Range("A2").Value = Sheets.Name ---------
?????
AutoFill -------------> ?????????
Next shMe
End Sub


.