XL 2019 Macro pour changer automatiquement le nom des onglets selon un onglet particulier

Patrice Parent

XLDnaute Nouveau
Bonjour,

Je ne suis pas un très grand connaisseur dans la programmation de macros dans Excel. Dans le fichier en pièce jointe, j'ai différents onglets que j'aimerais modifier automatiquement pour tenir compte des mois et des années. L'onglet contenant la liste des noms actuels du fichier se nomme «Onglets». Dans cet onglet, j'ai inséré la liste des noms des onglets actuels dans le fichier (cellules B5 à B87). Cette liste est générée par une macro nommée «Snamelist» et fonctionne très bien (bouton Liste noms onglets actuels). J'aimerais être en mesure d'automatiser le changement des noms des onglets actuel de ce fichier par le nom indiqué aux cellules D5 à D87. J'ai créé un bouton nommé «Modifier le nom des onglets en fonction de la date de l'année financière de l'entreprise» et je lui ai associé une macro nommée «Nom_onglets». Lorsque je tente de lancer cette macro, rien ne se passe.

J'aimerais pouvoir bénéficier de vos précieux conseils afin de m'indiquer ce qui ne fonctionne pas bien dans cette macro.

Je vous remercie à l'avance!
 

Pièces jointes

  • Modèle tenue livres.xlsm
    178.9 KB · Affichages: 17
Solution
Bonjour Patrice,
Un essai en PJ avec cette macro :
Code:
Sub RenommerOnglets()
    With Worksheets("Onglets")
        For i = 5 To 86
            If WsExist(.Cells(i, "B")) Then
                Sheets(.Cells(i, "B").Value).Name = .Cells(i, "D").Value
            End If
        Next i
    End With
End Sub
Function WsExist(Nom$) As Boolean
    On Error Resume Next
    WsExist = Sheets(Nom).Index
End Function
Le nom de macro Worksheet_SelectionChange est réservé. C'est une macro événementielle qui est à placer uniquement dans les feuilles.
Ensuite pour aller de 5 à 86 autant passer par une boucle.
Enfin avant de renommer une feuille il faut vérifier si elle existe sinon il y a erreur. D'autant qu'une fois renommer elle n'existera plus...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrice,
Un essai en PJ avec cette macro :
Code:
Sub RenommerOnglets()
    With Worksheets("Onglets")
        For i = 5 To 86
            If WsExist(.Cells(i, "B")) Then
                Sheets(.Cells(i, "B").Value).Name = .Cells(i, "D").Value
            End If
        Next i
    End With
End Sub
Function WsExist(Nom$) As Boolean
    On Error Resume Next
    WsExist = Sheets(Nom).Index
End Function
Le nom de macro Worksheet_SelectionChange est réservé. C'est une macro événementielle qui est à placer uniquement dans les feuilles.
Ensuite pour aller de 5 à 86 autant passer par une boucle.
Enfin avant de renommer une feuille il faut vérifier si elle existe sinon il y a erreur. D'autant qu'une fois renommer elle n'existera plus avec l'ancienne liste.
 

Pièces jointes

  • Modèle tenue livres.xlsm
    164.1 KB · Affichages: 14

Patrice Parent

XLDnaute Nouveau
Bonjour Patrice,
Un essai en PJ avec cette macro :
Code:
Sub RenommerOnglets()
    With Worksheets("Onglets")
        For i = 5 To 86
            If WsExist(.Cells(i, "B")) Then
                Sheets(.Cells(i, "B").Value).Name = .Cells(i, "D").Value
            End If
        Next i
    End With
End Sub
Function WsExist(Nom$) As Boolean
    On Error Resume Next
    WsExist = Sheets(Nom).Index
End Function
Le nom de macro Worksheet_SelectionChange est réservé. C'est une macro événementielle qui est à placer uniquement dans les feuilles.
Ensuite pour aller de 5 à 86 autant passer par une boucle.
Enfin avant de renommer une feuille il faut vérifier si elle existe sinon il y a erreur. D'autant qu'une fois renommer elle n'existera plus avec l'ancienne liste.
Merci beaucoup! Cela fonctionne parfaitement!
 

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane