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 :

Save Excel en csv VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut Save Excel en csv VBA
    Bonjour,
    j'ai vraiment besoin d'aide.
    Je veux enregistrer un fichier excel en CSV à partir de la ligne 4 où commence mon tableau.
    Et pour le CSV je veux qu'il soit enregistré dans le même répertoire que le fichier Excel.
    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
     
    Sub testsCSV()
        Dim rep As String
        Dim OldName, NewName
        Dim Chemin As String, Fichier As String
        Dim monclasseur As Workbook
        Set monclasseur = ActiveWorkbook
     
        Chemin = ThisWorkbook.Path & "\"
        Fichier = Range("A5").Value & "_" & Format(Date, "yyyy") & ".csv"
     
           monclasseur.SaveAs Filename:= _
           Chemin & Fichier, FileFormat:=xlCSV, _
                CreateBackup:=False
        With ActiveWorkbook
          .Sheets(1).Rows("1:3").Delete
          .Close
        End With
    End Sub

    Merci par avance.

  2. #2
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour khech,
    Voici un code que j'ai testé, j'ai ajouter l'enregistrement en xlsm sinon tu perdais ta macro

    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
    Sub testsCSV()
        Dim rep As String
        Dim Chemin As String, Fichier1 As String
     
     
        Chemin = ThisWorkbook.Path & "\"
        Fichier1 = Application.ActiveWorkbook.Sheets("Feuil1").Range("A5").Value & "_" & Format(Date, "yyyy")
     
        Application.DisplayAlerts = False
     
     
        With ActiveWorkbook
          .Sheets(1).Rows("1:3").Delete
          .SaveAs Filename:=Chemin & Fichier1 & ".xlsm"
          .SaveAs Filename:=Chemin & Fichier1 & ".csv", FileFormat:=xlCSV, CreateBackup:=False
        End With
     
     
         Application.DisplayAlerts = True
     
    End Sub
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

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

    On aurait aussi pu utiliser SaveCopyAs pour conserver le fichier principal intact. Par la suite, on pourrait supprimer cette copie.
    MPi²

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    merci pour vos réponses,
    ta solution marche très bien mais j'ai un petit souci avec une de mes feuilles,
    • Sur l'oglet RP, le macro s'exécute très bien et me supprime les trois premiers ligne
    • Mais sur l'onglet DI c'est pas le cas alors que c'est le même macro.

    Je mets le fichier en PJ.
    Par avance merci.

    Pièce jointe 181611

  5. #5
    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
    Dans ton premier message il n'était pas question d'onglet, mais d'un classeur à sauvegarder en CSV...
    Un fichier CSV, tout comme TXT n'a qu'un seul onglet.
    Il faut donc procéder autrement en bouclant les feuilles, copiant chaque onglet et les sauvegardant
    MPi²

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    Effectivement,
    avec ça il marche:
    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
    Sub testsCSV()
        Dim rep As String
        Dim Chemin As String, Fichier1 As String
     
        Chemin = ThisWorkbook.Path & "\"
        Fichier1 = Range("A5").Value & "_" & Format(Date, "yyyy")
     
        Application.DisplayAlerts = False
     
        With ActiveWorkbook
        With ActiveSheet
          .Rows("1:3").Delete
          '.SaveAs Filename:=Chemin & Fichier1 & ".xlsm"
         .SaveAs Filename:=Chemin & Fichier1 & ".csv", FileFormat:=xlCSV, CreateBackup:=False
        End With
        End With
     
     
         Application.DisplayAlerts = True
     
    End Sub
    Merci bien.

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

Discussions similaires

  1. Macro save Excel en CSV
    Par khech dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/07/2015, 16h30
  2. [VBA-E] macro conversion excel vers csv
    Par abdelhamidem dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2008, 16h48
  3. [VBA Excel] ouverture CSV (séparateur , ou ;)
    Par SDE10 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2006, 19h32
  4. VBA-E: Pb copier-coller entre Excel et .csv
    Par tiger118 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2006, 11h08
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23

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