Boucle pour récupérer le nom des feuilles

gianluca

XLDnaute Occasionnel
Hello le Forum....

Me revoilà.. avec une nouvelle sollicitation lol

j'ai écris le bout de code ci-dessous pour récupérer le nom de chaque feuille de mon classeur et pour y appliquer un traitement. Mais, boum badaboum... ca ne fonctionne pas....

...
dim FeuilleActive as sheets

If CheckBox1.Value = True Then 'Traitement collectif
For i = 1 To ThisWorkbook.Sheets.Count - 2
FeuilleActive = sheets(i).Name
Sheets(FeuilleActive).Visible = True
Sheets(FeuilleActive).Activate
derlign = Range("A65536").End(xlUp).Row
Range("A" & derlign + 1).Activate
ActiveCell.Value = DateTraitement
ActiveCell.Offset(0, 3).Value = 30
Next i
Else .... 'Traiteme
 

Gorfael

XLDnaute Barbatruc
Re : Boucle pour récupérer le nom des feuilles

Salut gianluca
dim FeuilleActive as sheet
Sheets est une collection de feuille : tu aurais du mettre Sheet pour définir un objet feuille, mais vu l'utilisation que tu en fais, c'est plutôt une variable String (chaîne de caractères), puisque tu y colles le nom et pas la feuille

If CheckBox1.Value = True Then 'Traitement collectif
For i = 1 To ThisWorkbook.Sheets.Count - 2
FeuilleActive = sheets(i).Name
Sheets(FeuilleActive).Visible = True
Sheets(FeuilleActive).Activate
derlign = Range("A65536").End(xlUp).Row
Range("A" & derlign + 1).Activate
ActiveCell.Value = DateTraitement
ActiveCell.Offset(0, 3).Value = 30
Next i
Else .... 'Traiteme

tu peux essayer un code comme ça :
If CheckBox1.Value Then 'Traitement collectif
For i = 1 To ThisWorkbook.Sheets.Count - 2
sheets(i).Visible = True
Sheets(i).Range("A65536").End(xlUp).offset(1,0)= DateTraitement
Sheets(i).Range("A65536").End(xlUp).offset(0,3)= 30
Next i
Else ....
A+
 

ChTi160

XLDnaute Barbatruc
Re : Boucle pour récupérer le nom des feuilles

Salut gianluca
Bonjour Gorfael
ou pour éviter les Offset
de plus tu n'es pas obligé d'activer la feuille pour écrire dedans
Code:
Dim DerLgn as Integer
Dim I as Byte
 
For I = 1 To ThisWorkbook.Sheets.Count - 2
With Sheets(I)
     DerLgn = .Range("A65536").End(xlUp).Row + 1
                       .Cells(DerLgn, 1) = DateTraitement
                       .Cells(DerLgn, 3) = 30
End With
Next I

Bonne fin de Journée
 
Dernière édition:

gianluca

XLDnaute Occasionnel
Re : Boucle pour récupérer le nom des feuilles

Re Chti160 et Gorfael....


Merci de vos réponses, pardonnez moi mais j'ai un peu merdu sur mon message et ai continué le fil sur le message suivant....

En tous cas merci de vous être penché sur mon souci.

Gianluca
 

Discussions similaires

Réponses
12
Affichages
714
Réponses
10
Affichages
681

Statistiques des forums

Discussions
312 493
Messages
2 088 959
Membres
103 990
dernier inscrit
lamiadebz