Noms en VBA

  • Initiateur de la discussion titus
  • Date de début
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
 
@

@Christophe@

Guest
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@
 
@

@Christophe@

Guest
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@
 
T

titus

Guest
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
 

Discussions similaires

Réponses
0
Affichages
173

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 697
dernier inscrit
BOUZOUALEGH