VBA ouverture CSV

Anonyme
2016-05-20T14:29:07+00:00

Bonjour,

Par enregistrement d'une macro

j'ouvre un fichier CSV

Fichier Ouvrir Type de Fichiers 

je choisis mon fichier il s'ouvre tout se décompacte bien en colonnes  selon le ; séparateur.

Par suite j'exécute ma macro

'>

Workbooks.Open Filename:="C:\MonRep\MonFichier.csv"

Le fichier s'ouvre mais reste compacté.

Merci

--

LSteph

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
DanielCo 107.1K Points de réputation
2016-05-20T15:16:23+00:00

Bonjour LSteph

Utilise le paramètre Local:=True de la méthode Workbooks.Open

Cordialement.

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2016-05-20T14:59:07+00:00

Bonjour lSteph,

Le fichier s'ouvre mais reste compacté.

J'ai déjà eu ce problème je l'avais résolu avec

'-----------
With Feuil1
.Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, Semicolon:=True
end with
'-----------

--
Salutations
JJ

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

29 réponses supplémentaires

  1. DanielCo 107.1K Points de réputation
    2016-05-21T12:24:04+00:00

    Bonjour Lsteph, Bonjour Arnaud,

    Arnaud a raison sur tous les principes qu'il vient d'énumérer.

    J'ajoute juste un point intéressant (au cas où...):

    • En ouvrant le CSV à partir de la fenêtre Excel, la conversion n'est pas nécessaire
    • Il est donc possible de considérer le CSV actuellement ouvert comme un classeur à une feuille de calcul, et de copier / coller les données directement dans le classeur principal
    • (j'étais à jeun quand je l'ai fait)

    Cordialement

    Le problème vient de VBA. Si Excel utilise automatiquement le séparateur de liste défini dans les options locales de Windows, VBA utilise par défaut la virgule. La résolution du problème consiste donc à lui imposer le ";" comme séparateur de liste.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2016-05-21T11:47:02+00:00

    Bonjour Lsteph, Bonjour Arnaud,

    Arnaud a raison sur tous les principes qu'il vient d'énumérer.

    J'ajoute juste un point intéressant (au cas où...):

    • En ouvrant le CSV à partir de la fenêtre Excel, la conversion n'est pas nécessaire
    • Il est donc possible de considérer le CSV actuellement ouvert comme un classeur à une feuille de calcul, et de copier / coller les données directement dans le classeur principal
    • (j'étais à jeun quand je l'ai fait)

    Cordialement

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 54,030 Points de réputation Modérateur bénévole
    2016-05-21T10:35:44+00:00

    Bonjour LSteph

    Ma réponse ne concernait que ton problème avec l'enregistreur.

    Via Fichier>Ouvrir le code généré n'est pas fonctionnel alors qu'il l'est via Données.....

    L'enregistreur n'est pas parfait mais guide bien pour trouver les objets/propriétés surtout quand on n'en est pas familier.

    Bon courage

    Ps : Vendredi j'ai fais un travail ressemblant :

    Ouverture d'un filedialog pour sélectionner un dossier (contenant les 37 fichiers xlsx à compiler).

    Boucle sur chaque fichier (via Dir pour les lister)

    • Ouverture du fichier, compilation de plusieurs zones dans une nouvelle feuille (nettoyage)
    • Copie bout à bout des données de la feuille dans un classeur de synthèse commun au 37 fichiers.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire