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

Trier par : Les plus récents
  1. Anonyme
    2016-05-22T10:53:44+00:00

    Merci Daniel,

    C'était bien le cas; mais alors il faudra demander un correctif dans l'aide (2010 et 2013):

    Bon, du coup, je vais encore avancer le bébé.

    Merci encore.

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

    0 commentaires Aucun commentaire
  2. Anonyme
    2016-05-22T10:22:37+00:00

    Bonjour Daniel,

    "TEXT;" & Dossier_CSV & Fichier_csv, Destination:=Range("$A$1"))

    C'est une idée. Je ne me rappelle plus si je l'ai fait. Merci, je vais le tenter.

    Pour la 2° partie de ta réponse:

    • je ne suis pas certain que LSteph pourra se passer de la méthode; et mon essai ne vise qu'à l'explorer quand même. (ça peut finir par lui être utile, à lui aussi)
    • la chaîne de connexion n'ouvre pas le CSV, elle crée une nouvelle feuille à partir des données (même si les CSV apparaissent brièvement dans l'arborescence de la fenêtre VBA)
    • une fois les feuilles créées, c'est un jeu d'enfant de consolider toutes les feuilles dans une seule, puis de supprimer les feuilles d'importation

    Cordialement

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

    0 commentaires Aucun commentaire
  3. DanielCo 107.1K Points de réputation
    2016-05-22T09:44:27+00:00

    Bonjour,

    Il ne faut pas mettre des variables entre guillemets; mets :

    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dossier_CSV & Fichier_csv, _

            Destination:=Range("$A$1"))

    au lieu de :

    With ActiveSheet.QueryTables.Add(Connection:="TEXT; & Dossier_CSV & Fichier_csv", _

            Destination:=Range("$A$1"))

    Note que, ce n'est apparemment pas le cas de lSteph dans ce fil, mais il y a une différence entre ouvrir un fichier, ce qui te permet de le modifier et un import, qui ne te le permets pas. D'autre part, je crois avoir lu que lSteph ne voulait pas une feuille par fichier.

    Daniel

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

    0 commentaires Aucun commentaire