Aide pour exécuter macro dans touts les onglets

pledger

XLDnaute Junior
Bonjours à tous ! Bonjours le forum !

Voila j'ai un petit soucis j'ai cette macro qui supprime mes entête de colonne et qui crée une colonne avec le nom de la feuille active.

Sub test()


Rows("1:2").Select
Range("A2").Activate
Selection.Delete Shift:=xlUp

Dim nom As String
nom = ActiveSheet.Name
Columns("C:C").Insert Shift:=xlToRight
Range("C2:C" & Range("A65536").End(xlUp).Row).Value = ActiveSheet.Name


End Sub

Le soucis c'est que lorsque je rajoute un "
For Each aSheet In Sheets
" Et bien la macro plante et me créer beaucoup de colonnes inutile et ne s'execute que dans l'onglet actif.

Quelqu'un a il une idée e ce que je dois faire pour améliorer mon code ?
 

pledger

XLDnaute Junior
Re : Aide pour exécuter macro dans touts les onglets

Bonjours flyonets44 :)

J'ai tester avec ton code mais il me met la ligne
For K 1 To sheets.count

J'ai donc mis
Sub test()
Dim k As Long

For k = 1 To Sheets.Count

Rows("1:2").Select
Range("A2").Activate
Selection.Delete Shift:=xlUp

Dim nom As String
nom = ActiveSheet.Name
Columns("C:C").Insert Shift:=xlToRight
Range("C2:C" & Range("A65536").End(xlUp).Row).Value = ActiveSheet.Name

Next

End Sub



Mais cela a marché que dans la feuille acive
 

Pierrot93

XLDnaute Barbatruc
Re : Aide pour exécuter macro dans touts les onglets

Bonjour,

bah... normal, tu cibles "activesheet" et d'autre part devant les objets "range" tu ne précise pas le nom ou l'index de la feuille, de ce fait le code s'applique à la feuille active ou à la feuille dans lequel est exécuté le code, si celui-ci est placé dans un module de feuille...
 

Pierrot93

XLDnaute Barbatruc
Re : Aide pour exécuter macro dans touts les onglets

Re,


euh... vois pas tro ce que tu veux dire...
Code:
Sheets(k)
s'appliquera à n'importe quel onglet du classeur actif.... sinon il y a peut être lieu de présiser le classeur en question....
 

Pierrot93

XLDnaute Barbatruc
Re : Aide pour exécuter macro dans touts les onglets

Re,

il faut l'intégrer à ta boucle en lieu et place de :
Code:
Range("C2:C" & Range("A65536").End(xlUp).Row).Value = ActiveSheet.Name
Après les autres instructions de la boucle sont sans doute à adapter également.... mais comme je sais pas précisément ce que tu veux faire....
 

Discussions similaires

Statistiques des forums

Discussions
312 222
Messages
2 086 390
Membres
103 199
dernier inscrit
ATS1