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

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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