Renommer

Bonjour,

Je souhaite renommer toutes les feuilles d'un classeur en se basant sur leurs noms actuel.

Je souhaite, au nom actuel de la feuille, ajouter 04.2020.

Dim xWs as Worksheet
For Each xWs In Sheets
    xWs.Name = xWs.Name & "04.2020"
Next

Pouvez-vous me dire pour quelle raison ce code ne fonctionne pas ?

Je vous remercie pour votre aide.

Bonjour

petite idée... combien de caractères au final pour le nom de l'onglet ?? car de mémoire il y a une limitation à 30 caractères

PS : il faudrait que tu précises ta version d'excel dans ton profil

Fred

Le mieux est de fournir un fichier test avec des feuilles vierges, mais avec les noms actuels

Fred

Bonjour Fred,

Merci pour ton aide.

Alors en effet, a mon avis ça ne va pas passer. Il y a la limite de 30 caractères. J'avais oublié ce détail.

Dans ce cas est-ce que c'est possible de tronquer le nom des feuilles ?

Si par exemple, le nom de ma feuille est "Utilisateur1 test", est-il possible de garder juste le "Utilisateur1" et de supprimer le reste ?

L'idée est de garder que le premier mot.

Merci d'avance.

5nom.xlsx (9.28 Ko)

Bonsoir

donc une proposition

Sub renommage()
Dim xWs As Worksheet
dim FirstNom as string
For Each xWs In Sheets
'test si nom actuel depasse 23 caractère
If Len(xWs.Name) > 23 Then
    'cela va donc poser problème on récupère seulement le premier nom (on cherche le premier espace et garde tout le début jusqu’à l'espace
    FirstNom = Split(xWs.Name, " ")(0)
    If FirstNom > 23 Then 'test quand même si le premier nom n'a pas aussi plus de 23 caractères
        xWs.Name = Left(FirstNom, 23) & " 04.2020" 'si le premier nom a plus de 23 caractère on récupère que les 23 premiers caractères et ajoute 04.2020
    Else: xWs.Name = FirstNom & " 04.2020" 'sinon on met le premier nom complet + 04.2020
    End If
Else 'le nom actuel ne dépasse pas 23 caractères on garde tout et ajoute 04.2020
    xWs.Name = xWs.Name & " 04.2020"
End If
Next

End Sub

Fred

Rechercher des sujets similaires à "renommer"