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 :

forcer l'enregistrement en enregistrer en virgule et non point virgule format csv sous excel 1997 [XL-97]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 13
    Points
    13
    Par défaut forcer l'enregistrement en enregistrer en virgule et non point virgule format csv sous excel 1997
    Bonsoir

    voilà j'ai créé une macro pour un fichier en .csv à l'origine , je doit juste controler les valeurs d'une colonne et les modifier si nécessaire ( celà fonctionne sans aucun problèmes ).

    Ensuite je l'enregistre à l'emplacement d'où il a été ouvert avec le meme nom+la date du jour ( ça c'est aussi ok ) en format .csv , et c'est là que le bas blesse , je dois l'enregistrer en .csv mais avec un séparateur virgule et non pas point-virgule.

    Une solution facile est de modifier les parametres régionnaux et d'indiquer que le séparateur de liste est une virgule , or certaines de mes autres macros nécessitent le point virgule, donc pas possible

    Il ya bien une solution avec local:=true mais qui ne fonctionne pas sous 97.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:="C:\Eva\export.csv", FileFormat:=xlCSV, local := true , CreateBackup:=False
    Je ne vois pas trop comment faire.

    Merci de votre aide

    Hottis

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, de toute façon ce serait Si c'est là que le bât blesse, qqch comme ceci devrait t'aider:
    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
    Option Explicit
     
    Sub Ecrire_CSV()
    Dim Rng As Range, Ligne As Range, Cel As Range
    Dim sStr As String, sNomFichier As String
    Dim NumFichier As Integer
    Dim sSep As String
     
        sSep = ","
        sNomFichier = ThisWorkbook.Path & "\" & "Essai_02.csv"
        Set Rng = ActiveSheet.UsedRange
     
        Close
        NumFichier = FreeFile
     
        Open sNomFichier For Output As #NumFichier
            For Each Ligne In Rng.Rows
                sStr = ""
                For Each Cel In Ligne.Cells
                    sStr = sStr & Cel.Text & sSep
                Next Cel
                Print #NumFichier, sStr
            Next Ligne
        Close #NumFichier
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    j'ai mis un peu de temps pour répondre , excuse moi

    Pour revenir à nos moutons :

    ça fonctionne en partie seulement

    en effet , le ; est bien remplacé par une , par contre il n'y a plus de texte dans le fichier.

    Je joins les trois fichiers :

    PartUsageByFeederWithoutImagesdg14.csv est l'original.

    PartUsageByFeederWithoutImagesdg14-17-9-2012.csv est celui modifié avec ma macro.

    PartUsageByFeederWithoutImagesdg14-17-9-2012-bis.csv est celui modifié avec ta macro.

    Hottis.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, il est inutile de reprendre le post précédent en citation, cela n'apporte rien,et encombre visuellement le paysage inutilement, surtout que tu n'as qu'un interlocuteur

    Re, le fichier 2 sauvé en xls pour y insérer la macro fonctionne parfaitement avec celle fournie pour générer un fichier csv.

    Accessoirement pour lire un fichier CSV avec Virgule pour séparateur, testé avec XL 97, inclus une procédure Split97 puisque Split n'existe pas sur 97.
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Option Explicit
     
    Sub SelectionCsv()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
        If Fichier <> False Then Lire Fichier
    End Sub
     
    Private Sub Lire(ByVal NomFichier As String)
    Dim sChaine As String
    Dim Ar() As String
    Dim i As Long
    Dim iRow As Long, iCol As Long
    Dim NumFichier As Integer
    Const sSeparateur As String * 1 = ","
     
        Feuil1.Cells.Clear
        Application.ScreenUpdating = False
        NumFichier = FreeFile
     
        iRow = 0
     
        Open NomFichier For Input As #NumFichier
            Do While Not EOF(NumFichier)
                iCol = 1
                iRow = iRow + 1
                Line Input #NumFichier, sChaine
                Split97 Ar, sChaine, sSeparateur
                For i = LBound(Ar) To UBound(Ar)
                    Feuil1.Cells(iRow, iCol) = Ar(i)
                    iCol = iCol + 1
                Next i
            Loop
        Close #NumFichier
        Application.ScreenUpdating = True
     
    End Sub
     
    Private Sub Split97(ByRef Ar() As String, s As String, sSep As String)
    Dim Pos As Long
    Dim i As Long, j As Long
        i = 1: j = 0
        Do While i <= Len(s)
            If Mid$(s, i, 1) = sSep Then
                ReDim Preserve Ar(j)
                Pos = InStr(s, sSep)
                Ar(j) = Left$(s, Pos - 1)
                s = Right$(s, Len(s) - Pos)
                j = j + 1: i = 0
            End If
            i = i + 1
        Loop
        ReDim Preserve Ar(j)
        Ar(j) = s
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 13
    Points
    13
    Par défaut re
    salut

    Encore avec du retard , j'ai été pris sur un autre sujet donc j'ai mis celui çi en standby.

    Je ne sais pas si on s'est compris.

    Ce que je veux , c'est sauvegarder en .csv mais avec une , en séparateur et non un ;

    Merci

    Hottis

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, c'est suffisamment clair
    le fichier 2 sauvé en xls pour y insérer la macro fonctionne parfaitement avec celle fournie pour générer un fichier csv.

    Accessoirement pour lire un fichier CSV avec Virgule pour séparateur, testé avec XL 97, inclus une procédure Split97 puisque Split n'existe pas sur 97.
    Il me fallait un fichier de test, que j'ai créé avec ton 2eme fichier fourni, en l'important avec comme séparateur une virgule pour avoir un fichier colonné
    Je l'ai sauvé en xls en y incorporant la macro fournie pour générer un CSV avec comme séparateur une virgule ,et la génération du CSV fonctionne sans aucun problème

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 13
    Points
    13
    Par défaut re
    Re

    je ne piges pas tout , je ne suis pas un expert non plus

    j'ai insérer la dernière macro que tu as développé dans un nouveau classeur (classeur 3 par exemple ), je lance la macro "selectioncsv" , elle me demande d'ouvrir un fichier .csv, ensuite les colonnes sont distribuées sur mon classeur.(classeur 3 ).

    Là ou je ne piges pas c'est l'histoire de l'enregistrement en .XLS ???? et ce qui suit !

    Hottis

  8. #8
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, je viens de faire la même chose que toi
    Dans un fichier XLS j'ai incorporé ceci et cela

    Pour la lecture du CSV je récupére les seules valeurs de ce fichier en G6 et G7
    et la correction des données est possible facilement
    Puis en lançant Ecrire_CSV je génère un fichier Essai_02.csv avec
    comme séparateur une virgule, ici tout fonctionne sans problèmes.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 25
    Points : 13
    Points
    13
    Par défaut re
    Re

    c'est bon ça fonctionnes , c'est nickel !!!!

    c'est exactement ce que je voulais

    UN GRAND MERCI pour ton aide et ta patience .

    Cordialement

    Hottis

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/03/2009, 19h50
  2. [FPDF] Forcer le téléchargement et enregistrer une copie
    Par HwRZxLc4 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/12/2008, 12h59
  3. [MySQL] mysql forcer un ou plusieurs enregistr.. en insertion
    Par tuxfuncky dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/03/2008, 14h11
  4. Réponses: 6
    Dernier message: 07/08/2007, 17h01
  5. [CR9][SQL Server] forcer la sélection à 5 enregistrements
    Par __fabrice dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 02/11/2005, 11h20

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