Macpoy
XLDnaute Impliqué
bonsoir le forum,
avec des macro glanées sur ce forum, j'ai tenté de bricoler (copier/ coller) une macro me permettant de renommer des feuilles dans plusieurs classeurs. mais à un endroit de la boucle je n'arrive pas a nommer le classeur qui doit recevoir la modification.
voici la macro en question :
Sub Chang_date()
Dim Ictr As Integer, NbFichiers As Integer
Dim Zone As String, Tableau() As String
Dim Direction As String, X As String
Dim Uctr As Integer
Dim Nom
Application.ScreenUpdating = False
Direction = Dir(ThisWorkbook.Path & '\\*.xls')
Do While Len(Direction) > 0
If ThisWorkbook.Name <> Direction Then 'pour ne pas prendre en compte le classeur contenant la macro
NbFichiers = NbFichiers + 1
ReDim Preserve Tableau(1 To NbFichiers)
Tableau(NbFichiers) = Direction
End If
Direction = Dir()
Loop
If NbFichiers > 0 Then
For Uctr = 1 To NbFichiers
=============================================
mon problème se situe sur les 3 prochaines lignes, comment dire à Excel le nom du classeur ?
==============================================
? Sheets(5).Select
? Sheets(5).Unprotect Password:='cocotin'
? Sheets(5).Range('b1') = JSemaine.TextBox1 'format date dans b1
X = Range('b1')
xd = DateSerial(Val(Right(X, 2)), Val(Mid(X, 4, 2)), Val(Left(X, 2)))
For ictr0 = 1 To 4
For Ictr = 1 To 5
ActiveSheet.Unprotect Password:='cocotin'
Range('t14:t30').Value = 0
Range('c2:c12').Interior.ColorIndex = xlNone 'effacement des couleurs
Range('c2:c12').ClearContents
Range('b1').Value = xd
Xn = Format(xd, 'dddd-dd-mmm')
ActiveSheet.Name = Xn 'format spécial pour nom de feuille
ActiveSheet.Next.Select
ActiveSheet.Unprotect Password:='cocotin'
xd = xd + 1
Next Ictr
' Unload Me
ActiveSheet.Next.Select
xd = xd + 2
Next ictr0
Next Uctr
End If
End If
Application.ScreenUpdating = True
Unload JSemaine
Unload QuoiFaire
End Sub
joindre l'ensemble des classeurs ne me semble pas possible.
merci de tout de même tenter quelque chose.
à moins qu'un expert en ado me trouve plus simple ?
d'avance merci.
Macpoy : fait que chaque heure de ta vie, soit un souvenir pour demain.
avec des macro glanées sur ce forum, j'ai tenté de bricoler (copier/ coller) une macro me permettant de renommer des feuilles dans plusieurs classeurs. mais à un endroit de la boucle je n'arrive pas a nommer le classeur qui doit recevoir la modification.
voici la macro en question :
Sub Chang_date()
Dim Ictr As Integer, NbFichiers As Integer
Dim Zone As String, Tableau() As String
Dim Direction As String, X As String
Dim Uctr As Integer
Dim Nom
Application.ScreenUpdating = False
Direction = Dir(ThisWorkbook.Path & '\\*.xls')
Do While Len(Direction) > 0
If ThisWorkbook.Name <> Direction Then 'pour ne pas prendre en compte le classeur contenant la macro
NbFichiers = NbFichiers + 1
ReDim Preserve Tableau(1 To NbFichiers)
Tableau(NbFichiers) = Direction
End If
Direction = Dir()
Loop
If NbFichiers > 0 Then
For Uctr = 1 To NbFichiers
=============================================
mon problème se situe sur les 3 prochaines lignes, comment dire à Excel le nom du classeur ?
==============================================
? Sheets(5).Select
? Sheets(5).Unprotect Password:='cocotin'
? Sheets(5).Range('b1') = JSemaine.TextBox1 'format date dans b1
X = Range('b1')
xd = DateSerial(Val(Right(X, 2)), Val(Mid(X, 4, 2)), Val(Left(X, 2)))
For ictr0 = 1 To 4
For Ictr = 1 To 5
ActiveSheet.Unprotect Password:='cocotin'
Range('t14:t30').Value = 0
Range('c2:c12').Interior.ColorIndex = xlNone 'effacement des couleurs
Range('c2:c12').ClearContents
Range('b1').Value = xd
Xn = Format(xd, 'dddd-dd-mmm')
ActiveSheet.Name = Xn 'format spécial pour nom de feuille
ActiveSheet.Next.Select
ActiveSheet.Unprotect Password:='cocotin'
xd = xd + 1
Next Ictr
' Unload Me
ActiveSheet.Next.Select
xd = xd + 2
Next ictr0
Next Uctr
End If
End If
Application.ScreenUpdating = True
Unload JSemaine
Unload QuoiFaire
End Sub
joindre l'ensemble des classeurs ne me semble pas possible.
merci de tout de même tenter quelque chose.
à moins qu'un expert en ado me trouve plus simple ?
d'avance merci.
Macpoy : fait que chaque heure de ta vie, soit un souvenir pour demain.