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 :

CSV : Des cases vides qui génèrent des points virgules [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 19
    Points
    19
    Par défaut CSV : Des cases vides qui génèrent des points virgules
    Bonjour à toutes et tous,

    J'ai besoin de votre aide car ça fait 2 semaines que je bloque là-dessus :

    J'ai un Excel qui est rempli automatiquement par une application métier.
    Le nombre de ligne de ce classeur est variable.

    La première ligne tiens sur 10 colonnes et toutes les lignes qui suivent sur 6 colonnes.

    Le problème se situe lorsque j'utilise cette macro pour enregistrer mon classeur en CSV :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ActiveWorkbook.Worksheets("Feuil2").Select
    Dim chemin, namebon
    chemin = "T:\ESHOP\Appro\"
    namebon = Worksheets("Params").Cells(7, 2) & ".csv"
    ActiveWorkbook.SaveAs Filename:= _
    chemin & namebon, FileFormat:=xlCSV, CreateBackup:=False, local:=True
    ActiveWorkbook.Close
    Comme les lignes sont plus grandes que la première ligne, j'ai 4 points-virgules à la fin de chaque ligne de 6 colonnes. (J'espère que vous me suivez ? )

    J'illustre avec des images :



    Et en CSV :




    J'aimerai me débarrasser de ces points-virgules en fin de lignes ...
    Je suis ouvert à tout même un bout de code me permettant de les supprimer ferait l'affaire


    D'avance, merci de votre temps et de votre aide.
    Jeremy J

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Le nombre de ; dépend du nombre de colonne ayant un en-tete.
    Pour supprimer les ; , supprime les en-tete qui ne servent pas
    Jérôme

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Le problème est que je n'ai qu'un seul entête (la première ligne) et elle m'est indispensable ...

    Une remarque : excel me rajoute ces points-virgules seulement sur les 15 premières lignes de mon CSV, et au delà, tout est nickel ! Bizarre non ?

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Si tu utilises cette méthode d'enregistrement, tu n'as pas d'autre choix que de supprimer les en-têtes inutiles.
    La structure d'un CSV est si 10 en-têtes alors autant de champ de données séparés par un ;
    Jérôme

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Tu peux exécuter cette proc une fois le fichier csv fermé mais je ne vois pas pourquoi des points virgules qui se suivent posent problème mais c'est toi qui es le mieux placé pour en juger :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Sub Modif()
     
        Dim Tbl() As String
        Dim Ligne As String
        Dim I As Integer
        Dim NF As Integer
     
        NF = FreeFile
        'adapter le chemin et nom du fichier
        Open "D:\Test.csv" For Input As #NF
     
        Do While Not EOF(NF)
     
            Line Input #NF, Ligne
     
                I = I + 1
     
                ReDim Preserve Tbl(1 To I)
                Tbl(I) = Replace(Ligne, ";;;;", "")
     
        Loop
     
        Close #NF
     
        Open "D:\Test.csv" For Output As #NF
     
        For I = 1 To UBound(Tbl)
     
            Print #NF, Tbl(I)
     
        Next I
     
        Close #NF
     
    End Sub
    Hervé.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup Theze, je vais faire ça

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

Discussions similaires

  1. traitement des cases vides
    Par anasleco dans le forum Excel
    Réponses: 4
    Dernier message: 11/09/2008, 16h18
  2. Démineur: détection des cases vides
    Par Angerbode dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 07/02/2008, 14h24
  3. [RSA]Encryption qui donne des fichiers vides
    Par Janitrix dans le forum Sécurité
    Réponses: 5
    Dernier message: 27/05/2007, 01h36
  4. [PostGreSQL] Requête d'insertion qui ajoute des champs vides
    Par civodultrebor37 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/10/2006, 14h16
  5. Richtextbox qui ajoute des lignes vides
    Par Seto dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2006, 14h10

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