XL 2013 Appliquer une macro sur tous les onglets d'un classeur

redexcel

XLDnaute Junior
Bonjour a tous

J'ai crée une macro pour convertir la colonne A d'un onglet (séparateur point virgule) dont voici le code:

Sub Convertir_colonne()

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1)), TrailingMinusNumbers:=True
End Sub

J'ai essayé de faire une boucle "for each" afin d'appliquer la macro à tous les onglets mais ça ne fonctionne pas, voila la macro:

Dim ws As Worksheet

For Each ws In Worksheets

Sheets(ws.Name).Cells(1, 1).Select
Selection.TextToColumns Destination:=Sheets(ws.Name).Cells(1, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1)), TrailingMinusNumbers:=True

Next
End Sub

Merci pour votre aide
 

CHALET53

XLDnaute Barbatruc
Bonjour,
Peut-être comme ceci

For Each ws In Worksheets
a = ws.Name
Sheets(ws.Name).Select
Columns("A:A").Select
Selection.TextToColumns Destination:=Sheets(ws.Name).Cells(1, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1)), TrailingMinusNumbers:=True
Next


a+
 

redexcel

XLDnaute Junior
Bonjour,
Peut-être comme ceci

For Each ws In Worksheets
a = ws.Name
Sheets(ws.Name).Select
Columns("A:A").Select
Selection.TextToColumns Destination:=Sheets(ws.Name).Cells(1, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1)), TrailingMinusNumbers:=True
Next


a+
Salut Chalet

C'est TOP ça a marché mais j'ai du enlever la ligne "a=ws.Name" de ton code.
En tout cas c'est super , merci infiniment !!!! ;)
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG