Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…