Menu

Convertir des colonnes Excel en texte

-
Bonjour,

J'ai des fichiers excel avec un nombre de colonnes aléatoire. Je dois obligatoirement convertir à chaque fois ces colonnes (colonne par colonne) en format texte pour pouvoir injecter les données dans un ERP.
Je souhaiterai créer une macro qui face cette action, c'est à dire que je puisse saisir un nombre qui correspond au nombre de colonne à convertir dans le fichier et qu'en suite la conversion se fasse automatiquement.
J'ai créer le code ci-dessous, mais je bloque sur la boucle à mettre en place pour le nombre de colonne.

Sub Format_Texte()
' Format_Texte Macro
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 2), TrailingMinusNumbers:=True
End Sub


Merci par avance de votre aide.


Configuration: Windows / Internet Explorer 11.0


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
5990
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
421
0
Merci
Bonjour,

Voir exemple 2:

https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/

ce qui donne ceci:

Sub For_X_to_Next_Colonne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1") 'adapter la feuille
    NoLig = 1 'Lecture de la ligne 1
    For NoCol = 1 To Columns(Split(FL1.UsedRange.Address, "$")(3)).Column
        FL1.Cells(NoLig, NoCol).TextToColumns Destination:=FL1.Cells(NoLig, NoCol), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 2), TrailingMinusNumbers:=True
    Next
    Set FL1 = Nothing
End Sub



Commenter la réponse de cs_Le Pivert