Et tout d’abord à toutes et à tous une excellente année 2009
J’ai le problème suivant sous Excel 2000 :
Il s’agit de remplacer automatiquement les 2 derniers caractères de chaque onglet en fonction de l’année. Exemple : l’onglet 01-08 devra s’appeler 02-09.
Chaque classeur comporte exactement 120 feuilles. Contexte : il s’agit d’un classeur de factures. Le nom de l’onglet est récupéré par la fonction CONCATENER pour former la fin du numéro de facture.
Jusqu’à présent je faisais un chercher/remplacer avec Notepad++ dans le fichier. Une solution bien sûr peu élégante.
Ensuite, j’ai adapté comme suit une macro trouvée sur le net :
Sub RenomOnglets()
Dim C As Integer
rep = 0
rep = InputBox("Nombre de feuilles à renommer")
rep1 = InputBox("Tapez le suffixe souhaité")
For o = 1 To rep
Worksheets(o).Name = o & rep1
Next o
End Sub
Inconvénient : les 9 premières feuilles sont nommées 1-09 ; 2-09 etc. au lieu de 01-09 ; 02-09 etc. Et il me faut les renommer manuellement.
Salut matfab
un essai :
Option Explicit
Sub RenomOnglets()
Dim rep As Variant
Dim a As Byte
Dim i As Byte
rep = InputBox("Nombre de feuilles à renommer")
a = Format(Now, "yy")
For i = 1 To rep
Worksheets(i).Name = "0" & i & "-0" & a
Next i
End Sub
Bonsoir,
S'il s'agit simplement de remplacer le "8" par un "9" dans tous les noms de feuille (à condition comme précisé que le "8" soit bien le dernier caractère) à tester
Code:
Sub RenomOnglets()
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
If Right(Ws.Name, 1) = "8" Then
Ws.Name = Left(Ws.Name, Len(Ws.Name) - 1) & "9"
End If
Next
End Sub