Convertir des colonnes via une macro

Fermé
SandrineMAM - 11 janv. 2017 à 15:37
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 11 janv. 2017 à 16:05
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
11 janv. 2017 à 16:05
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