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.
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.
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,
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 ?
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
Salut, pour la sauvegarde en CSV
ShDatas est le CodeName de la feuille de données voir http://www.developpez.net/forums/d92...cel/vba-bases/
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
Voir aide en ligne sur OnTime pour l'intervalle de sauvegarde
Sinon un exemple, code à placer dans module ShDatas
ou sur Worksheet_Change
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
Re, j'ai rajouté une procédure CreationDossier pour la création à la volée du dossier de sauvegarde au cas ou.
Partager