Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/10/2011, 09h47   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
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.
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 10h12   #2
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
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,
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 10h14   #3
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
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 ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 10h26   #4
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
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
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 10h27   #5
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 708
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

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

Informations forums :
Inscription : juin 2006
Messages : 1 708
Points : 3 635
Points : 3 635
Salut, pour la sauvegarde en CSV

Code :
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 :
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
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 11h44   #6
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Merci pour ton aide.
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 12h10   #7
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 708
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

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

Informations forums :
Inscription : juin 2006
Messages : 1 708
Points : 3 635
Points : 3 635
Re, j'ai rajouté une procédure CreationDossier pour la création à la volée du dossier de sauvegarde au cas ou.
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h05.


 
 
 
 
Partenaires

Hébergement Web