Convertir des colonnes via une macro

SandrineMAM -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

J'ai un fichier Excel qui est généré via un outil de BI. Ce fichier contient des dates, des chiffres, etc. mais tout est considéré comme du "texte" à la base (format "Standard" pour Excel), du coup, toutes les valeurs s'affichent alignées à gauche et ne sont pas exploitable correctement (ex: les dates sont considérée comme du texte et on ne peut donc pas les exploiter correctement via les filtres).

Par contre, si je sélectionne la colonne, puis que je fais onglet Données/Convertir/Terminer, alors les champs se formatent correctement. Action relativement simple, néanmoins, j'ai 49 colonnes!

Comment automatiser ce "Convertir/Terminer" pour chaque colonne via une petite boucle dans une macro (par exemple) ?

Merci pour votre aide.
Cordialement,
Sandrine
A voir également:

1 réponse

cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bonjour,

Comme ceci:

Sub For_X_to_Next_Colonne()
Dim FL1 As Worksheet, NoCol As Integer
Dim colonne As String    
Set FL1 = Worksheets("Feuil1") 'a adapter
    For NoCol = 1 To Columns(Split(FL1.UsedRange.Address, "$")(3)).Column
    colonne = Split(Columns(NoCol).Address(ColumnAbsolute:=False), ":")(1) 'converti colonne en lettre
Columns(colonne & ":" & colonne).Select
    Selection.TextToColumns Destination:=Range(colonne & "1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
    Next
    Set FL1 = Nothing
End Sub



0