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 !
Bonjour à tous,
Je viens vers vous car je pêche.
Je sais que vous allez surement dire qu'il y a la solution ailleurs, mais je n'arrive pas à faire fonctionner les codes proposés. Je ne connais strictement rien en VBA...
Et de ce que j'ai pu lire, le VBA est la seule solution viable.
Je vous expose mon dilemme et ma requête :
- Je souhaiterais que lorsque je crée un nouvel onglet, le nom de celui-ci soit le texte de la cellule A1 et B1 ainsi que les cellules C1 et D1 si elles ne sont pas vide.
- Il y aura au minimum les cellules A1 et B1 de remplies. Pour les cellules C1 et D1, cela sera en fonction des besoins.
- le nom de l'onglet soit modifié dès la validation des cellules citées.
- Est-il possible que chaque onglet soit indépendant?
J'ai testé ce code VBA, mais comme les onglets peuvent ne pas être identiques, les noms des onglets sont faussés
VB:
Option Explicit
Sub NomFeuille()
Dim I As Long
On Error Resume Next
For I = 1 To Worksheets.Count
Worksheets(I).Name = Worksheets(I).Range("A1")&" "&Range("B1")&"-"&Range("C1")&"-"&Range("D1")&"-"&Range("E1")
Next
On Error GoTo 0
End Sub
J'ai l'impression d'en demander beaucoup, mais je suis totalement à la ramasse….
Je tiens à remercier par avance les personnes qui se pencheront sur mon problème 🙂
Cordialement.
Sub NomFeuille()
Dim Sh As Worksheet, Txt As String
On Error Resume Next
For Each Sh In Sheets
With Sh
Txt = .Range("A1") & " " & .Range("B1")
If .[C1] <> "" Then Txt = Txt & "-" & .[C1]
If .[D1] <> "" Then Txt = Txt & "-" & .[D1]
.Name = Txt
End With
Next Sh
On Error GoTo 0
End Sub
Bonsoir @danielco,
Votre code est parfaitement fonctionnel !!!!!!
J'avais réussi à en créer un, j'ai persévéré malgré mon message ( au bout de 4 jours de dur labeur)....
Je vous le met en dessous, mais il est beaucoup plus brouillon que le vôtre :
VB:
Sub RenameSheet()
Dim Choix1 As String
Dim Choix2, Choix3, Choix4 As String
Choix1 = ActiveSheet.Range("A1").Value
Choix2 = ActiveSheet.Range("B1").Value
Choix3 = ActiveSheet.Range("C1").Value
Choix4 = ActiveSheet.Range("D1").Value
If Choix2 <> "" And Choix3 = "" Then
ActiveSheet.Name = Choix1 & " " & Choix2
ElseIf (Choix2 & Choix3) <> " " And Choix4 = "" Then
ActiveSheet.Name = Choix1 & " " & Choix2 & "-" & Choix3
ElseIf Choix4 <> " " Then
ActiveSheet.Name = Choix1 & " " & Choix2 & "-" & Choix3 & "-" & Choix4
End If
End Sub
- 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