IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Import csv Excel 2007


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Import csv Excel 2007
    Bonjour le forum,

    je coince sur un sujet qui ne devrait pas être si compliqué :
    j'ai un code qui me permet d'importer un csv sous Excel. Cela fonctionne bien sous Excel 2017 mais pas sous Excel 2007.
    Les données de mon fichier csv sont organisée par colonnes :
    Nom : Capture.JPG
Affichages : 255
Taille : 53,3 Ko

    Mon code sous Excel 2017 est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks.OpenText Filename:=fic, Origin:=xlWindows, StartRow:=1, DataType:=1, local:=True
    Sous Excel 2007, les données ne sont pas bien importées :
    Nom : excel2007.JPG
Affichages : 178
Taille : 20,0 Ko

    j'ai essayé de modifier le code avec tab:=false, local:=false, datatype:=xlfixedwidth mais cela ne fonctionne pas.

    Quelqu'un a une idée ?

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 265
    Points
    34 265
    Par défaut
    Salut,

    lorsque tu ouvres ton csv sous le bloc notes, le caractère de séparation est me semble-t-il un ";", non ?

    en principe la combinaison pour l'OpenText devrait contenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataType:=xlDelimited, Semicolon:=True
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    sous blocnote, ça fait un truc bizarre :
    Nom : Capture.JPG
Affichages : 257
Taille : 141,3 Ko

    j'ai essayé avec ton code mais cela ne fonctionne pas.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 265
    Points
    34 265
    Par défaut
    il est pas un peu foireux à l'origine ton fichier csv ?

    comment est il généré au départ ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    c'est un export d'un logiciel de comptabilité...

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 265
    Points
    34 265
    Par défaut
    ce sont des espaces, des tabulations qui apparaissent en blanc ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    si mon curseur se déplace entre les blancs, ce sont des espaces ? si oui, c'est le cas.

    ce qui m'intrigue surtout, c'est la différence de traitement entre Excel 2007 et 2017 puisque ce dernier arrive à traiter le fichier csv.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Peux-tu joindre une partie du fichier (tout le début sur quelques lignes) si les données ne sont pas confidentielles?
    MPi²

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Essaie aussi de le faire manuellement.
    Il se peut que des cases soient restées cochées dans les options dans ton 2007 et qui causent problèmes...
    MPi²

  10. #10
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    je ne peux pas joindre de fichier csv. Je l'ai donc zippé.
    Mon code complet est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub ouvrirGLServ()
    Call ouvrir_GLG("GLG", "************************* Importer le fichier csv. GLI, Grand Livre Général ***************************")
    End Sub
     
    Sub ouvrir_GLG(feuille As String, titre As String)
    Dim wbs As Workbook, WBC As Workbook, WSS As Worksheet, WSC As Worksheet, rs As Range, RC As Range, y As Integer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    fic = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
     
    If fic <> False Then
        Workbooks.OpenText Filename:=fic, Origin:=xlWindows, StartRow:=1, DataType:=1, Semicolon:=True, Tab:=True, local:=True
        Set wbs = Workbooks.Open(Filename:=fic)
        Set WSS = wbs.Sheets(1)
        Set rs = WSS.Range("b1:t64000")
        Set WSC = ThisWorkbook.Sheets(feuille)
        WSC.Range("a1:s64000").Cells.Clear
        WSC.Range("t4:y64000").Cells.Clear
        rs.Copy
        WSC.Range("a1").PasteSpecial Paste:=xlPasteValues
        wbs.Close False
    End If
    Application.DisplayAlerts = True
    End Sub
    Merci
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip dvp.zip (506 octets, 55 affichages)

  11. #11
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    ce fichier .csv s'ouvre déjà sans souci sous Excel 2003 depuis l'Explorateur Windows ! A tester de même …

    Si ce n'est toujours pas bon, retirer du code Local:=True (utile avec Open) et si là cela fonctionne,

    c'est que Windows / Excel n'est pas configuré pour la France …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  12. #12
    Membre actif
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 144
    Points : 223
    Points
    223
    Par défaut
    Bonjour,

    Ouvert au Notpad++, le fichier csv ne montre pas de caractères spéciaux, hormis les CrLf, et chaque "ligne" n'est pas non plus de longueur fixe.

    N'ayant pas Excel 2007 (sous Excel 2010, aucun problème), et sans garantie, pourrais-tu éventuellement essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.OpenText Filename:=fic, Origin:=xlWindows, StartRow:=1, DataType:=1, Semicolon:=True, Tab:=True, local:=True, ConsecutiveDelimiter:=True
    "Rien ne sert de dire ce qu'on fait, si on ne fait pas ce qu'on dit" (Moi)

  13. #13
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Non, comme du reste visible dans le post initial dans l'aperçu de sa feuille,
    son séparateur système par défaut est la virgule !

    Associée donc à Local:=True …   Utile avec Open mais pas avec OpenText en y précisant le séparateur.
    Et avec Open le séparateur peut aussi être précisé rendant alors ce paramètre caduque, juste ouvrir l'aide VBA interne …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  14. #14
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    cela ne fonctionne pas non plus avec consecutivedelimiter.

    J'ai fait des tests sur plusieurs PC et plusieurs versions d'Excel :
    - mon PC excel 2016 : fonctionne
    - PC d'un collègue excel 2016 : fonctionne
    - chez mon client excel 2016 : fonctionne pas !!! ???
    - chez mon client excel 2007 : fonctionne pas
    - autre PC excel 2007 : fonctionne pas
    - autre PC excel 2010 : fonctionne pas


    ceux qui ont testés sur leur machine, cela fonctionne avec mon code ?

    je suis désemparé...

  15. #15
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Juste en lisant mes posts ‼     C'est pourtant évident la version d'Excel n'y est pour rien …

    Code à corriger comme je l'ai pourtant indiqué dès ma première réponse !

    ___________________________________________________________________________________________________________
    L'avenir n'appartient pas qu'à ceux se levant tôt mais surtout à ceux se donnant la peine de lire …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  16. #16
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    j'ai essayé avec open au lieu de openText mais cela ne fonctionne pas non plus.

  17. #17
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par ben5622 Voir le message
    ce qui m'intrigue surtout, c'est la différence de traitement entre Excel 2007 et 2017 puisque ce dernier arrive à traiter le fichier csv.
    Est-ce que les deux versions sont sur le même poste ?
    Si ce n'est pas le cas, le problème peut venir d'ailleurs, entre autre des paramètres régionaux de Windows qui définissent (entre autres) les séparateurs de données (";" pour la France, "," pour les pays anglosaxons).

    Dans tous les cas, ça peut se résoudre en utilisant OpenText, comme spécifié par Jean-Philippe André (post #2) et Phil'oche (post #12).


    Citation Envoyé par ben5622 Voir le message
    Mon code complet est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    fic = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
     
    If fic <> False Then
        Workbooks.OpenText Filename:=fic, Origin:=xlWindows, StartRow:=1, DataType:=1, Semicolon:=True, Tab:=True, local:=True
        Set wbs = Workbooks.Open(Filename:=fic)
    Déjà, avoir commencé un code en cours de débugage par ScreenUpdating = False et DisplayAlerts = False, ce n'est pas une bonne idée vu que ça peut empêcher l'apparition d'informations utiles.

    Ensuite, je ne comprends pas dans ton code cet empilement d'instruction d'ouverture de fichiers : un OpenText puis un Open, tous les deux sur le même fichier ???
    Y'aurait pas, comme qui dirait, une couille dans le potage là ? Un truc que le DysplayAlerts = False vient bien masquer comme il faut...
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  18. #18
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Comme je disais dans le #9 (pas vraiment clair...), essaie avec l'enregistreur.
    Ouvre le fichier par menu Ouvrir
    S'il n'est pas bien formaté, va dans Données / Convertir et passe toutes les étapes en cochant/décochant au besoin ce qu'il faut. Excel se rappelle des paramètres récemment utilisés.

    Je suis passé par là récemment avec des CSV anglais dont certains passaient bien avec OpenText, mais d'autres non, et passaient avec Open (?!)
    MPi²

  19. #19
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Merci menhir, en effet, j'avais deux lignes de code en doublon. ça fonctionne !
    merci aux autres contributeurs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Importation de données csv dans excel 2007
    Par Francois40700 dans le forum Excel
    Réponses: 3
    Dernier message: 07/07/2017, 22h55
  2. Réponses: 3
    Dernier message: 08/06/2015, 16h36
  3. [WD16] Import fichier excel 2007
    Par christophe9117 dans le forum WinDev
    Réponses: 6
    Dernier message: 31/08/2011, 16h27
  4. Import fichier excel 2007 .xlxs sous SAS
    Par sasnew dans le forum SAS Base
    Réponses: 3
    Dernier message: 02/12/2010, 21h46
  5. Import CSV sous Excel, garder les 0 inutile
    Par ePoX dans le forum Excel
    Réponses: 4
    Dernier message: 26/01/2009, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo