Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème Macro

  • Initiateur de la discussion Initiateur de la discussion XkevinX
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

XkevinX

XLDnaute Junior
Bonjour Le Forum 😀 ,

J'ai une macro qui change le nom de mes feuilles.

Ces feuilles sont exportées et ont des noms inutilisables du style StatExportDonneesActivitePassagesAuxArrets_GUID_DateTime_v2.

Je veux donc changer leur nom.

Le souci c'est que lorsque je clique sur mon bouton qui associe cette macro, j'ai un message d'erreur.

Je dois donc enregistrer, fermer le fichier et réouvrir puis accepter la récupération des feuilles car le nom n'est pas valide et ensuite la macro fonctionne.

Une petite aide serait sympa.

Voici la macro:

Code:
Sub NomFeuille()
Dim Sh As Worksheet, TmpSh As Worksheet, Tmp As Variant, TmpName As String
'Declaration Variable

For Each Sh In Sheets 'Pour chaque feuille du classeur
   If Sh.Name <> "Recap" And Not IsEmpty(Sh.Range("M5")) Then
    'Si la feuille ne se nomme pas Recap et si M5 non vide
       Sh.Name = Sh.Index ' Le nom de la feuille est le numéro feuille
       Tmp = Split(Sh.Range("M5"), "-") ' Coupure après - dans M5
       TmpName = Left(Trim(Tmp(UBound(Tmp))), 31) 'Coupure à gauche de Tmp jusqu'à 31 caractères
       On Error Resume Next ' Si pas d'erreur
           Set TmpSh = Sheets(TmpName) 'Feuille prend valeur de TmpName
       On Error GoTo 0 'Si erreur
       If Not TmpSh Is Nothing Then 'Si Feuille nommée TmpName existe déjà
           Sh.Name = Left(Trim(TmpName), 29) & Sh.Index ' Feuille prend TmpName mais avec 29 caractères
           Set TmpSh = Nothing 'Mettre TmpSh vide car Feuille avec ce nom existe maintenant
       Else
            Sh.Name = Left(Trim(TmpName), 31) 'Sinon Prise Valeur TmpName comme nom
       End If
    End If
Next Sh ' Feuille Suivante.
End Sub

Je joins des fichiers :la feuille Type et trois fichiers avec seulement la cellule M5 pour des raisons de confidentialité.

Merci à vous.

PS: Si je suis pas assez clair, demander des infos
PS': Si je déplace les feuilles dans mon classeur type une par une, la macro fonctionne. Mais j'ai 2x feuilles donc ...
 

Pièces jointes

Re : Problème Macro

Re,

Bonjour Nairolf,

En fait, les feuilles sont exportées depuis un logiciel avec ce nom comme dans les feuilles exemples.

Ensuite, je les déplace avec un " Déplacer ou copier" dans mon classeur type (ici, Aide_macro).

Je ne l'ai volontairement pas fait en pièces jointes car quand vous ouvrirez le fichier, la récupération des feuilles d'Excel se lancera et les feuilles se nommeront Recupere_Feuille1 Recupere_Feuille2 etc ... et dans ce cas-là la macro fonctionne.

Dans mon contexte, j'ai 2x feuilles avec les noms StatsExportDonnees... et j'ai une erreur d'éxécution de la macro.

Si j'importe feuille par feuille dans mon classeur type et que je lance la macro, cela fonctionne mais avec les 2x non.

Voilà Merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
229
Réponses
10
Affichages
843
Réponses
9
Affichages
612
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
199
Réponses
7
Affichages
634
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…