Renommer feuilles - Indices des macro
TotoJP
Messages postés
5
Statut
Membre
-
Maurice -
Maurice -
Bonjour,
Mes macros utilisent des noms de feuilles comme références.
Est-il possible de renommer les feuilles tout en changeant automatiquement ce nom dans les macros (VBA)
Merci de bien vouloir éclairer ma lanterne
Mes macros utilisent des noms de feuilles comme références.
Est-il possible de renommer les feuilles tout en changeant automatiquement ce nom dans les macros (VBA)
Merci de bien vouloir éclairer ma lanterne
8 réponses
-
Bonjour,
Le mieux serait de renommer avec le nom de la Feuille correspondante: Feuil1, Feuil2 etc.
comme cela tu n'aurais plus de problème de renommage d'onglet
Pour renommer dans les modules:
Tu vas dans le ruban et tu cliques sur Rechercher (les jumelles)
Tu saisies le nom de l'onglet à renommer.
Tu coches : Projet en cours.
A droite tu cliques sur Remplacer
En haut tu saisies dans Remplacer par: la feuille correspondante à ton onglet Feuil1 par ex
Et tu cliques sur Remplacer tout
Tu fais de même pour tous tes onglets
A l'avenir tu te serviras du nom des Feuilles, cela t'éviteras ce désagrément -
Bonjour
Il faut dega changer tes macro par le CodeName
apres tu est tranquil tu peux changer comme tu veux tes nom d'onglet
A+
Maurice -
Bonjour
donne un model de ton fichier avec une macro qui fait appel a des onglets
A+
Maurice -
Re bonjour
Mon fichier est sur:
https://www.cjoint.com/?0BphUts6a9I
Les feuilles à renommer par l'utilisateur sont celles de a à y
Merci et bonne St Valentin -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour
Voila un model de tri sur 2 feuille sans les nom de feuille
Sub TriEntreesSorties() ' ' TriEntreesSorties Macro ' Onglet = Array(Feuil2.Name, Feuil23.Name) For X = 0 To 1 Sheets(Onglet(X)).Select Nlig = Range("A" & Rows.Count).End(xlUp).Row If Nlig > 4 Then Rows("4:" & Nlig).Select ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Clear ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Add Key:=Range("A4"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(Onglet).Sort .SetRange Range("A4:AZ" & Nlig) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End If Range("A4").Select Next Sheets(Onglet(0)).Select End Sub
A tester bien sur avec des donner
A+
Maurice -
Re
Hum j'ais fait un Bug voila la modifeSub TriEntreesSorties() ' ' TriEntreesSorties Macro ' Onglet = Array(Feuil2.Name, Feuil23.Name) For X = 0 To 1 Sheets(Onglet(X)).Select Nlig = Range("A" & Rows.Count).End(xlUp).Row If Nlig > 4 Then Rows("4:" & Nlig).Select ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Clear ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Add Key:=Range("A4"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(Onglet(X)).Sort .SetRange Range("A4:AZ" & Nlig) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End If Range("A4").Select Next Sheets(Onglet(0)).Select End Sub
A+
Maurice -
Merci, Maurice,
Ton programme fonctionne parfaitement pour x = 0 et 1, mais quand je veux trier plus de feuilles, à partir de x=2, il bug à la ligne 7 ( Sheets(Onglet(X)).Select) avec l'erreur 9: "L'indice n'appartient pas à la sélection"
C'est probablement facile à résoudre, mais pour un débutant comme moi en vba...
@+ -
Bonjour
tu peux mettre ta macro pour voir ou tu a fait une blaque
voila un autre macro regarde bienSub testTri() Dim Onglet(2) As String Onglet(0) = Feuil2.Name Onglet(1) = Feuil1.Name Onglet(2) = Feuil23.Name For X = LBound(Onglet) To UBound(Onglet) Sheets(Onglet(X)).Select Nlig = Range("A" & Rows.Count).End(xlUp).Row If Nlig > 4 Then Rows("4:" & Nlig).Select ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Clear ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Add Key:=Range("A4"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(Onglet(X)).Sort .SetRange Range("A4:AZ" & Nlig) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End If Range("A4").Select Next Sheets(Feuil2.Name).Select End Sub Sub textTriAlpha() Dim Onglet(24) As String Onglet(0) = Feuil3.Name Onglet(1) = Feuil4.Name Onglet(2) = Feuil5.Name Onglet(3) = Feuil6.Name Onglet(4) = Feuil7.Name Onglet(5) = Feuil8.Name Onglet(6) = Feuil9.Name Onglet(7) = Feuil10.Name Onglet(8) = Feuil11.Name Onglet(9) = Feuil12.Name Onglet(10) = Feuil13.Name Onglet(11) = Feuil14.Name Onglet(12) = Feuil15.Name Onglet(13) = Feuil16.Name Onglet(14) = Feuil17.Name Onglet(15) = Feuil18.Name Onglet(16) = Feuil19.Name Onglet(17) = Feuil20.Name Onglet(18) = Feuil21.Name Onglet(19) = Feuil22.Name Onglet(20) = Feuil24.Name Onglet(21) = Feuil25.Name Onglet(22) = Feuil26.Name Onglet(23) = Feuil27.Name Onglet(24) = Feuil28.Name For X = LBound(Onglet) To UBound(Onglet) Sheets(Onglet(X)).Select Nlig = Range("A" & Rows.Count).End(xlUp).Row If Nlig > 4 Then Rows("4:" & Nlig).Select ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Clear ActiveWorkbook.Worksheets(Onglet(X)).Sort.SortFields.Add Key:=Range("A4"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(Onglet(X)).Sort .SetRange Range("A4:AZ" & Nlig) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End If Range("A4").Select Next Sheets(Feuil2.Name).Select End Sub
A+
Maurice