• Initiateur de la discussion Initiateur de la discussion titus
  • 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 !

T

titus

Guest
Bonjour à tous

Situation: un classeur avec 12 feuilles (janvier à décembre)
Private Sub Workbook_Open()
Worksheets("Janvier").Range("A1:A48").Name = "JAesp"
Worksheets("Février").Range("A1:A48").Name = "FEesp"
'repété n fois jusqu'en décembre
End Sub

J'aimerais optimisé le code ci dessus avec un truc du style

For I=1 to 12
Worksheets(I).Range("A1:A48").Name=Left(Format(I, "mmmm"),2) & "esp"
Next I

Mais pour le moment ca ne fonctionne pas

Quelqu'un pourrait-il m'indiquer une piste pour arriver à mes fins?

Merci
 
Bonjour,

Voici pour le code:

Option Explicit
Dim Mois As Variant, i As Byte

Private Sub Workbook_Open()
Mois = Array("Janvier", "Février", "Mars", "Avril", "May", "Juin", "Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre")

For i = 0 To 11
Worksheets(Mois(i)).Range("A1:A48").Name = UCase(Left(Mois(i), 2)) & "esp"
Next i
End Sub


Bonne journée

@Christophe@
 
Re,

Si tu as que les 12 feuilles des mois dans ton classeur, tu peux toujours utilisé:

Option Explicit
Dim WS As Worksheet

Private Sub Workbook_Open()
For Each WS In Worksheets
WS.Range("A1:A48").Name = UCase(Left(WS.Name, 2)) & "esp"
Next WS
End Sub


Tu peux aussi exclure certaine feuille, au cas ou tu aurais 2 feuilles supplémentaire:

Option Explicit
Dim WS As Worksheet

Private Sub Workbook_Open()
For Each WS In Worksheets
If WS.Name <> "Total" And WS.Name <> "Info" Then
WS.Range("A1:A48").Name = UCase(Left(WS.Name, 2)) & "esp"
End If
Next WS
End Sub


Penses aussi que avec Juin et Juillet tu auras 1 x "JUesp" seulement, utilise plutôt 3 caractere en modifiant UCase(Left(WS.Name, 2)) & "esp" par UCase(Left(WS.Name, 3)) & "esp"

Bonne journée

@Christophe@
 
Merci de votre aide


Voila ou j'étais arrivé en cherchant un peu sur le Net
Private Sub Workbook_Open()
On Error Resume Next
For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.Name).Range("A1:48").Name = Left(sht.Name, 2) & "esp"
Next
End Sub

Question:
Peut-on utiliser une grande quantité de noms dans un classeur
et les utiliser dans des formules
ou alors est-ce préférable d'utiliser les références des cellules
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
802
Réponses
12
Affichages
601
Réponses
0
Affichages
598
Réponses
6
Affichages
765
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
907
Réponses
2
Affichages
1 K
Retour