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

Nom de feuille

4 réponses
Avatar
rthompson
Bonjour à toutes et tous


Si Tom Bilibi avait deux amours, moi j'ai deux soucis

Et comme on nous demande de ne pas poser deux questions dans le même message
(N'est-ce pas Misange?)

Voici la première

Je voudrais que, par macro, nommer la feuille du nom d'une cellule

voici ce que j'ai et cela bloque

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Error Resume Next
For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.Name).Name = Sheets(sht.Name).[J2]
Next
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Et pourtant il fut un temps ou cela fonctionnait

Et voici le code qui l'entoure, au cas ou le problème est ailleur
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Workbooks.Add
ActiveWindow.WindowState = xlNormal
Windows("PO Template.xls").Activate
Sheets("PO (2)").Select
Windows("Book1").Activate
Windows("PO Template.xls").Activate
Sheets("PO (2)").Select
Application.CutCopyMode = False
Sheets("PO (2)").Move Before:=Workbooks("Book1").Sheets(1)
Sheets("PO (2)").Select
' On Error Resume Next
'For Each sht In ActiveWorkbook.Worksheets
Sheets("PO (2)").Name = Sheets(sht.Name).[j2]
Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Sheet3").Select
ActiveWindow.SelectedSheets.Delete
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

D'avance un grand merci

A très bientôt

Rex

4 réponses

Avatar
FFO
Salut à toi

Chez moi ces quelques lignes fonctionnent
Tu as peut être un souci avec tes valeurs des cellules I2 de tes onglets
Regardes de ce côté

Tiens moi informé !!!
Avatar
rthompson
Bonjour FFO

Merci pour ta réponse

Et en effet je crois que c'est là que cela se passe
Je me suis dis, Rex vas manger relaxe et quand tu reviendras tu comprendras

Ben non!

Cela ne va pas mieuxVoici un bout du code que j'utilise
Quand ceci roule il me demande si je veux sauver le fichier Book1
Donc il ne reconnait pas la ligne ActiveWorkbook save as .........
tel quel est, je devrais trouver l'astuce pour que la partie

Mais si je supprime les lignes entre les deux lignes de
ccccccccccccccccccccccc
Alors il roule sans accros et sauve sous le contenu de la cellule M6
mais ne change pas le nom de la feuille

Donc, a mon avis je doit adapter la partie
Sheets("PO (2)").Range("J2")
Pour que le PO (2) soit changé en "Valeur de la cellule M6"
Ou sauber une fois avant de changer ce nom
Puis le sauver après

Mon Dieu, plus je me relis et moins je crois que c'est clair

Enfin si tu as le temps et que tu y comprends quelque chose

Un tout grand merci à toi

Rex





Range("J2").Select
Selection.Copy
ActiveWindow.SmallScroll ToRight:=3
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
Range("J10").Select
'ccccccccccccccccccccc
On Error Resume Next
For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next
'ccccccccccccccccccccc
Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Sheet3").Select
ActiveWindow.SelectedSheets.Delete
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:AA-Rex DataPaperviewgabors files
for macrosPOPOs Created" & Sheets("PO (2)").Range("J2") & ".xls",
FileFormat:=xlNormal
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized


"FFO" a écrit dans le message de news:

Salut à toi

Chez moi ces quelques lignes fonctionnent
Tu as peut être un souci avec tes valeurs des cellules I2 de tes onglets
Regardes de ce côté

Tiens moi informé !!!



Avatar
FFO
Rebonjour à toi

Moi personnellement je n'utilise pas cette procédure pour changer le nom des
Onglets mais plutôt celli-ci :

For i = 1 to Sheets.Count
Sheets(i).Name = Sheets(i).Range("J2")
Next

Tel que je comprends ta difficulté c'est d'aller chercher le nom de ton
fichier se trouvant dans l'Onglet "PO (2)" cellule M6 qui dans la boucle :

For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next

est renommé

Effectivement il est impératif de faire appel au Nom en vigueur de cette
Onglet au moment de l'instruction de sauvegard pour la faire fonctionner donc
pas d'autre choix que de le récupérer au moment de son renomage
Je te propose à cette fin ces modifications :

Pour la boucle d'affectation des noms :

For Each sht In ActiveWorkbook.Worksheets
If Sheets(sht.Name).Name = "PO (2)" Then
Onglet = Sheets(sht.Name).[M6]
End If
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next

Et pour la sauvegarde :

ActiveWorkbook.SaveAs Filename:="C:AA-Rex DataPaperviewgabors files
for macrosPOPOs Created" & Sheets(Onglet).Range("J2") & ".xls",
FileFormat:=xlNormal

Tu peux aussi récupérer dans la boucle de renomage des Onglets directement
le nom du fichier porter par la cellule J2 de la feuille "PO (2)" ainsi :

For Each sht In ActiveWorkbook.Worksheets
If Sheets(sht.Name).Name = "PO (2)" Then
Fichier = Sheets(sht.Name).[J2]
End If
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next

Ce qui donne pour la ligne de sauvegarde ceci :

ActiveWorkbook.SaveAs Filename:="C:AA-Rex DataPaperviewgabors files
for macrosPOPOs Created" & Fichier & ".xls",
FileFormat:=xlNormal

Je pense que là est ta planche de salut

Fais des essais et dis moi !!!!
Avatar
rthompson
Bonsoir

Je vais piocher dessus ce week end

Mais on viens de me bombarder avec une demande supplèmentaire
Je vais envoyer une nouvelle question
Si cela te tente

Mais quoiqu'il en soit
Un grand merci à toi

Rex



"FFO" a écrit dans le message de news:

Rebonjour à toi

Moi personnellement je n'utilise pas cette procédure pour changer le nom
des
Onglets mais plutôt celli-ci :

For i = 1 to Sheets.Count
Sheets(i).Name = Sheets(i).Range("J2")
Next

Tel que je comprends ta difficulté c'est d'aller chercher le nom de ton
fichier se trouvant dans l'Onglet "PO (2)" cellule M6 qui dans la boucle :

For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next

est renommé

Effectivement il est impératif de faire appel au Nom en vigueur de cette
Onglet au moment de l'instruction de sauvegard pour la faire fonctionner
donc
pas d'autre choix que de le récupérer au moment de son renomage
Je te propose à cette fin ces modifications :

Pour la boucle d'affectation des noms :

For Each sht In ActiveWorkbook.Worksheets
If Sheets(sht.Name).Name = "PO (2)" Then
Onglet = Sheets(sht.Name).[M6]
End If
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next

Et pour la sauvegarde :

ActiveWorkbook.SaveAs Filename:="C:AA-Rex DataPaperviewgabors files
for macrosPOPOs Created" & Sheets(Onglet).Range("J2") & ".xls",
FileFormat:=xlNormal

Tu peux aussi récupérer dans la boucle de renomage des Onglets directement
le nom du fichier porter par la cellule J2 de la feuille "PO (2)" ainsi :

For Each sht In ActiveWorkbook.Worksheets
If Sheets(sht.Name).Name = "PO (2)" Then
Fichier = Sheets(sht.Name).[J2]
End If
Sheets(sht.Name).Name = Sheets(sht.Name).[M6]
Next

Ce qui donne pour la ligne de sauvegarde ceci :

ActiveWorkbook.SaveAs Filename:="C:AA-Rex DataPaperviewgabors files
for macrosPOPOs Created" & Fichier & ".xls",
FileFormat:=xlNormal

Je pense que là est ta planche de salut

Fais des essais et dis moi !!!!