sauvegarde excel !

sophie23

XLDnaute Junior
Bonsoir, j'aimerais pouvoir mettre en mémoire toutes les valeurs du tableau a 17H30 (sachant que les valeurs changent tout le temps)
Pour cela , je dois programmer une macro , mais je ne sais pas comment faire.
Merci beaucoup d'avance
Sophie
 

sophie23

XLDnaute Junior
Re : sauvegarde excel !

Staple, quand je remplace le nouveau code dans le module 1, cela affiche une erreur de code, cela met la 1ere ligne en jaune et donc ca ne marche pas ( g fait un copié collé de tout y compris les commentaires )........
merci de m'aider :)
sophie
 

JCGL

XLDnaute Barbatruc
Re : sauvegarde excel !

Bonjour à tous,
Salut Staple :),

Pour des besoins personnels, j'ai utilisé ton code qui fonctionne parfaitement sous XL 2003. ;)
J'ai rajouté l'effacement de la forme et du code dans la Sauvegarde créée

Code:
Sub Sauvegarde() 'Staple sur XLD
'Déclarations
Dim WBk As Workbook
Dim WBk_Copie As Workbook
Dim Nom_Sauvegarde As String
Dim i As Long
'///////////////////////////////////
Set WBk = ThisWorkbook
'création du nom du fichier backup
Nom_Sauvegarde = "Sauvegarde du " & Format(Date, "yyyy-mm-dd") & ".xls"
 'fige l'actualistion de l'écran
Application.ScreenUpdating = False
'enregistre ton document initial
WBk.Save
'ajoute un nouveau classeur avec une seule feuille
Workbooks.Add (1)
'nomme cette feuille "temp" pour éviter
' une erreur lors de la recopie
ActiveWorkbook.Sheets(1).Name = "temp"
'recopie des feuilles dans le nouveau classeur
WBk.Sheets.Copy After:=ActiveWorkbook.Sheets(Sheets.Count)
'transforme les formules en valeur
' (équivalent de copier/collage spécial/valeurs
For i = 1 To ActiveWorkbook.Sheets.Count
    With ActiveWorkbook.Sheets(i)
'-------------------------------------------
  'Ajout JCGL Efface l'image
   .DrawingObjects.Delete
'-------------------------------------------
    .UsedRange.Cells.Value = .UsedRange.Cells.Value
'-------------------------------------------
    'Ajout JCGL Supprime le code VBA dans la Sauvegarde
    On Error Resume Next
    .VBProject.VBComponents("Module1").CodeModule
       Debut = .ProcStartLine("Sauvegarde", 0)
        Lignes = .ProcCountLines("Sauvegarde", 0)
        .DeleteLines Debut, Lignes
        End With
'-------------------------------------------
Next i
'désactive le message d'alerte
Application.DisplayAlerts = False
    With ActiveWorkbook
'supprime la feuille temp crée plus haut
        .Worksheets("temp").Delete
'enregisre la copie avec le nom défini
        .SaveAs (Nom_Sauvegarde)
'ferme le classeur
        .Close
End With
'réactivation de l'écran
Application.ScreenUpdating = True
'réactivation du message d'alerte
Application.DisplayAlerts = True
End Sub
Si cela peut convenir à quelqu'un....

A+
 

Staple1600

XLDnaute Barbatruc
Re : sauvegarde excel !

Bonsoir JCGL



--> • JCGL: Avec tout cela on devrait avoir donné l'envie à Sophie23 de se pencher sur le VBA ;)


Merci pour tes modifs et les commentaires dans le code.


--> • Sophie23: Est-ce que cela fonctionne chez toi?

Bonne soirée
 

JCGL

XLDnaute Barbatruc
Re : sauvegarde excel !

Re,

Staple : ce n'est pas à toi que je vais "apprendre" qu'il faut citer ses sources : tu le fais naturellement lors de tes recherches sur la Toile. Et commenter ses codes: il vaut mieux avec notre amie Sophie :p.

C'est pour rire Sophie : nous apprenons tous encore et encore...

A+ à tous
 

sophie23

XLDnaute Junior
Re : sauvegarde excel !

Bonjour à tous :
Je n'arrive pas à compiler le code que vous m'avez donne!

Dans thisworkbook, je tape :

Private Sub Workbook_Open()
Application.OnTime TimeValue("17:30:00"), "sauvegarde"
End Sub

Puis j'insere un module 1 et je tape :

Sub Sauvegarde() 'Staple sur XLD 'Déclarations Dim WBk As Workbook
Dim
WBk_Copie
As Workbook Dim Nom_Sauvegarde As String Dim i As Long
'/////////////////////////////////// Set WBk = ThisWorkbook 'création
du
nom du
fichier backup Nom_Sauvegarde = "Sauvegarde du " & Format(Date,
"yyyy-mm-dd") &
".xls" 'fige l'actualistion de l'écran Application.ScreenUpdating =
False
'enregistre ton document initial WBk.Save 'ajoute un nouveau classeur
avec une
seule feuille Workbooks.Add (1) 'nomme cette feuille "temp" pour
éviter
' une
erreur lors de la recopie ActiveWorkbook.Sheets(1).Name = "temp"
'recopie des
feuilles dans le nouveau classeur WBk.Sheets.Copy
After:=ActiveWorkbook.Sheets(Sheets.Count) 'transforme les formules en
valeur '
(équivalent de copier/collage spécial/valeurs For i = 1 To
ActiveWorkbook.Sheets.Count With ActiveWorkbook.Sheets(i)
'------------------------------------------- 'Ajout JCGL Efface
l'image
.DrawingObjects.Delete
'-------------------------------------------
.UsedRange.Cells.Value =
.UsedRange.Cells.Value '-------------------------------------------

'Ajout
JCGL Supprime le code VBA dans la Sauvegarde On Error Resume Next
.VBProject.VBComponents("Module1").CodeModule Debut =
.ProcStartLine("Sauvegarde", 0) Lignes =
.ProcCountLines("Sauvegarde", 0)
.DeleteLines Debut, Lignes End With
'------------------------------------------- Next i 'désactive le
message
d'alerte Application.DisplayAlerts = False With ActiveWorkbook
'supprime la
feuille temp crée plus haut .Worksheets("temp").Delete
'enregisre la
copie avec le nom défini .SaveAs (Nom_Sauvegarde) 'ferme le
classeur
.Close End With 'réactivation de l'écran
Application.ScreenUpdating
= True
'réactivation du message d'alerte Application.DisplayAlerts = True
End Sub


Au moment de la sauvegarde,il y a marqué erreur compilations, merci
beaucoup de m'aider
 

sophie23

XLDnaute Junior
Re : sauvegarde excel !

re!
Voila en utilisant le code du fichier excel testsauve.zip, la macro fonctionne sur un fichier de base !
par contre sur le fichier excel que j'utilise pour mon travail, celà ne marche pas!
voila ce que excel m'indique :"Run-time error "438" "
"object doesnt support this property or method"
il y a un bouton debug qui apparait , j'appuie dessus et il s'affiche :
et il y a la ligne de code qui apparait en jaune , c'est la ligne qui commence par
.UsedRange.cells.value=.UsedRange.cells.value
merci pour votre aide!
sophie
 

sophie23

XLDnaute Junior
Re : sauvegarde excel !

Bonjour à tous,
lorsque j'utilise le code vba du fichier testSauve.zip, cela fonctionne avec un fichier excel de base, j'ai fait les tests...
Par contre, quand j'utilise cette macro pour le fichier excel dont j'ai besoin ca ne marche pas!
En effet, il affiche un message d'erreur lors de l'heure demandée :
Runtime error "438" object doesnt support this property or method.
Il y a un bouton debug, j'appuie dessus et la ligne jaune du code source apparait, c'est la ligne qui commence par .UsedRange.Cells.Value=Used.Rqnge.Cells.Value

voila merci beaucoup de votre aide,
Sophie
 

JCGL

XLDnaute Barbatruc
Re : sauvegarde excel !

Bonjour à tous,
Salut l'Agrafe,
Salut Sophie,

Je viens de constater que j'avais mis "la pagaille" entre vous deux...
Code Excel s'entend arf...

Désolé pour mon intrusion qui a généré des doutes chez Sophie et une "participation accrue" de Staple.

A+ à tous

Edition : Salut Roro le petit Jura arf
 
Dernière édition:

roro69

XLDnaute Impliqué
Re : sauvegarde excel !

RE
ma question est simplement de savoir si tu utilises ton fichiers sur le meme ordi que celui de testSauve ; car il peut arriver que lorsqu'on change d'ordi et qu'on n'ait pas le meme windows installé on n'est ce genre de message d'erreur.
 

Discussions similaires