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 :

Ouverture CSV en format texte [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut Ouverture CSV en format texte
    Bonjour,

    Voilà, j'ai des fichiers csv que j'aimerais "importer" dans un fichier excel global. Ces fichiers contiennent des données "brutes", dont certaines peuvent commencer par "+" ou" -". Or il se trouve que lorsque j'exécute ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        application.DisplayAlerts = False
        On Error Resume Next
        Workbooks.OpenText Filename:= "monfichier.csv", Origin:= _
            xlWindows, DataType:=xlDelimited, TextQualifier:=xlNone, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True _
            , Space:=False, Other:=False
        application.DisplayAlerts = True
    excel rajoute automatiquement un "=" sur les lignes qui commencent par "+" ou "-", ce qui ne m'arrange pas du tout.

    J'ai beau passer la colonne entière en format texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.NumberFormat = "@"
    ça ne change rien.

    Comment faire ? J'ai vraiment besoin d'afficher ces données telles quelles sans aucune modification, sans rajout.

    Merci

  2. #2
    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,

    lire le fichier texte en VBA pur : consulter l'aide intégrée VBA de l'instruction Line Input # et son exemple,
    à combiner avec la fonction Split.

    Autre voie (sans garantie) : ouvrir le fichier texte sans utiliser de séparateur puis utiliser la méthode TextToColumns.

    Sinon voir aussi du côté de la méthode Workbooks.Open
    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)

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Personnellement j'utiliserai les instruction de style FSO avec des instruction comme :
    - GetFile
    - OpenTextFile
    - OpenAsTextStream

    Tu trouvras un super tutoriel fait par Christophe Warin : "Manipulation des fichiers en VBA"

    Sinon tu peux biaiser ... en ajoutant devant tes " + " et tes " -" un simple apostrophe " ' "

    Il comprendra c'est du texte

    Tu dis
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  4. #4
    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


    Citation Envoyé par DarkGriffin Voir le message
    J'ai beau passer la colonne entière en format texte, ça ne change rien.
    Encore faut-il que la colonne soit au format texte avant de procéder à l'importation …
    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)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Ok, je vais essayer l'une ou l'autre de ces solutions.

    merci !

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    si ton fichier csv est au format avec des ";" il y a que les "+" a modifier car les moins ches moi sont incrit correctement dans les cellules quand je l'ouvre avec excel ,les plus sont automatiquement supprimés

    si pour toi les symboles doivent absolument rester
    il te faut ouvrir le fichier en tant que fichier text et non avec "workbook.open"
    et modifier le symbole en ajoutant comme on te la déjà dit un apostrophe par exemple

    un exemple
    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
     
    Sub recupCSV()
    Dim intFic As Integer, strLigne As String, ligne As Long, col As Long
    intFic = FreeFile
    Open "C:\Users\Paulo\Desktop\monfichier.csv" For Input As intFic
    While Not EOF(intFic)
        Line Input #intFic, strLigne
      ligne = ligne + 1 ' la variable augmente de 1 a chaque ligne du fichier csv
      With Sheets(1) 'nom du sheets a adapter
        For col = 0 To UBound(Split(strLigne, ";")) - 1 ' on coupe le texte de chaque ligne par les ";"
               ' on place chaque morceaux en replacant le symbole par "'+"
           Cells(ligne, col + 1) = Replace(Split(strLigne, ";")(col), "+", "'+")
        Next
    End With
    Wend
    Close intFic
    End Sub
    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/06/2015, 14h35
  2. CSV Format Texte transforme en format numerique
    Par Contrec dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/03/2011, 08h56
  3. Convertir un fichier texte du format csv au format hws
    Par slayer23 dans le forum MATLAB
    Réponses: 8
    Dernier message: 14/06/2007, 17h48
  4. Ouverture CSV par Workbooks.open
    Par PoPmiSiR dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/10/2005, 10h19
  5. CppUnit et la generation de rapport au format text
    Par xxiemeciel dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 03/10/2005, 22h08

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