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 :

[Excel 2007] Enregistrement automatique en csv


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Par défaut [Excel 2007] Enregistrement automatique en csv
    Bonjour,

    Est il possible de faire une macro pour enregistrer automatiquement un fichier excel en csv toute les minutes dans un répertoire donné?

    D'avance merci pour votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Janvier 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 272
    Par défaut
    Bonjour,

    Je n'ai pas la solution à ton problème, mais Outils->Options Excel-> Onglet Enregistrement -> Enregistrer les informations automatiquement toutes les X minutes ne pourrait-il pas solutionner ton problème (le choix du format est également accessible) ?

    Cordialement,

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Si la macro enregistre le classeur en CSV, celui-ci va perdre ses attributs de classeur; seule la feuille active sera enregistrée et les macros seront perdues.
    La séquence des opérations doit donc être la suivante pour ne rien perdre :
    1. enregistrer le classeur au format xls ou xlsm
    2. enregistrer en tant que CSV
    3. Fermer le fichier CSV
    4. rouvrir le fichier initial

    Es-tu d'accord ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Par défaut
    si l'enregistrement du csv se fait dans un autre dossier et sous un autre nom cela ne résout pas le problème?
    si non, je suis ok pour ce fonctionnement Daniel.

    Merci

  5. #5
    Expert confirmé
    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
    Par défaut
    Salut, pour la sauvegarde en CSV

    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
    Option Explicit
     
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
     
    Private Function CreationDossier(sDossier) As Long
    ' Pour valeur retournée par CreationDossier
    '   Voir http://msdn.microsoft.com/en-us/library/bb762131(VS.85).aspx
    '   et   http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx
        CreationDossier = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function
     
    Sub SauvegardeCSV()
    Dim WkbXLS As Workbook
    Dim WkbCSV As Workbook
    Dim sNomCSV As String
    Dim sNomFichier As String
    Dim sChemin As String
     
        sChemin = ThisWorkbook.Path & "\" & "Dossier CSV"
        CreationDossier sChemin
     
        sNomFichier = ThisWorkbook.Name
        sNomCSV = Left$(sNomFichier, InStrRev(sNomFichier, ".") - 1) & ".csv"
     
        Application.ScreenUpdating = False
     
        Set WkbXLS = ThisWorkbook
        WkbXLS.Sheets(ShDatas.Name).UsedRange.Copy
     
        Set WkbCSV = Workbooks.Add
        With ActiveSheet
            .Paste
            .Range("A1").Select
        End With
     
        With Application
            .CutCopyMode = False
            .DisplayAlerts = False
        End With
        WkbCSV.SaveAs Filename:=sChemin & "\" & sNomCSV, FileFormat:=xlCSV, Local:=True
        ActiveWindow.Close
        With Application
            .DisplayAlerts = True
            .ScreenUpdating = True
        End With
        Set WkbCSV = Nothing
        Set WkbXLS = Nothing
    End Sub
    ShDatas est le CodeName de la feuille de données voir http://www.developpez.net/forums/d92...cel/vba-bases/
    Voir aide en ligne sur OnTime pour l'intervalle de sauvegarde

    Sinon un exemple, code à placer dans module ShDatas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Application.OnTime Now + TimeValue("00:01:00"), "SauvegardeCSV"
    End Sub
    ou sur Worksheet_Change

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Par défaut
    Merci pour ton aide.

  7. #7
    Expert confirmé
    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
    Par défaut
    Re, j'ai rajouté une procédure CreationDossier pour la création à la volée du dossier de sauvegarde au cas ou.

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

Discussions similaires

  1. [XL-2007] comment récuperer un enregistrement automatique sur excel 2007 ?
    Par tchock_nenette dans le forum Excel
    Réponses: 5
    Dernier message: 28/04/2012, 18h06
  2. Excel 2007 enregistrer avec des macros
    Par stos dans le forum Excel
    Réponses: 2
    Dernier message: 16/10/2009, 20h02
  3. Enregistrer automatiquement en csv
    Par philou029 dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/02/2008, 09h52
  4. Enregistrer automatiquement un classeur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/03/2006, 11h43
  5. [D6][Excel] Comment enregistrer en format csv ?
    Par ShinGaruda dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 04/05/2005, 19h59

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