Macro

chinel

XLDnaute Impliqué
comment sauvegarder une feuille de mon classeur sous le nom "Archive du + date en cours" (ex: archive du 21/06/07)

merci d'avance de votre aide !!!:)
 

Staple1600

XLDnaute Barbatruc
Re : Macro

Bonjour


edition : réponse effacée (mal lu la question)


Juste une précision: il me semble que le slash est un caractère interdit
pour les noms de feuilles ou classeurs dans Excel.

En se basant sur la réponse de nada

"Archive du " & Format(Date,"dd-mm-yyyy") donnera:
Archive du 21-06-2007
 
Dernière édition:

chinel

XLDnaute Impliqué
Re : Macro

Merci pour ta réponse, c'est super elle fonctionne bien, mais je voudrais qu'elle sauvegade dans C:\Documents and Settings\Manuel Dejong\Mes documents et en plus je sais que je suis difficile mais est-il possible d'avoir juste le contenu pas aussi les macros et les boutons de commandes

Sub sauve()

Sheets("feuil1").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Archive du " & Format(Date, "dd mmm")

End Sub


merci de ton aide !!!
 

nada

XLDnaute Nouveau
Re : Macro

oki, une autre approche :


Sub sauve()

NomFichier = "Archive du " & Format(Date, "dd mmm")
MonPath = ActiveWorkbook.Path
Sheets("feuil1").Copy
ActiveWorkbook.SaveAs Filename:= _
MonPath & "\" & NomFichier, FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

End Sub

sachant qu'il faut placer ton fichier source dans le dossier ou tu souhaite faire une copie de sauvegarde, et

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Mabox
Mabox = MsgBox("enregistrer une copie d'archivage?", vbYesNo, "création copie")
If Mabox = vbYes Then

sauve

Else

Exit Sub
End If

End Sub

à placer dans workbook.( créé la copie lors de la fermeture du fichier)
 

myDearFriend!

XLDnaute Barbatruc
Re : Macro

Bonsoir chinel, Staple1600, nada,

chinel à dit:
mais je voudrais qu'elle sauvegade dans C:\Documents and Settings\Manuel Dejong\Mes documents et en plus je sais que je suis difficile mais est-il possible d'avoir juste le contenu pas aussi les macros et les boutons de commandes
Si j'ai bien compris l'ensemble du problème et si les boutons dans la feuille d'origine sont bien des boutons issus de la Boîte à Outils Contrôles (objets ActiveX) :
Code:
[SIZE=2][COLOR=GRAY][B][I]DANS UN MODULE DE CODE STANDARD[/I][/B][/COLOR]

[COLOR=NAVY]Sub[/COLOR] Traitement()
[COLOR=Green]' myDearFriend! - www.mdf-xlpages.com[/COLOR]
[COLOR=NAVY]Dim[/COLOR] Obj [COLOR=NAVY]As[/COLOR] OLEObject
[COLOR=NAVY]Dim[/COLOR] Chemin [COLOR=NAVY]As String[/COLOR], NomFeuille [COLOR=NAVY]As String[/COLOR]

    Chemin = "C:\Documents and Settings\Manuel Dejong\Mes documents\"
    NomFeuille = "Feuil1"       [COLOR=GREEN]'Nom de l'onglet à sauvegarder (à adapter)[/COLOR]
    
    Application.ScreenUpdating = [COLOR=NAVY]False[/COLOR]
    [COLOR=GREEN]'Copie de la feuille (création nouveau classeur)[/COLOR]
    Sheets(NomFeuille).Copy
    
    [COLOR=GREEN]'Suppression des boutons (ActiveX) dans la feuille[/COLOR]
    [COLOR=NAVY]For Each[/COLOR] Obj [COLOR=NAVY]In[/COLOR] ActiveSheet.OLEObjects
       [COLOR=NAVY]If TypeOf[/COLOR] Obj.[COLOR=NAVY]Object Is[/COLOR] MSForms.CommandButton [COLOR=NAVY]Then[/COLOR] Obj.Delete
    [COLOR=NAVY]Next[/COLOR]
    
    [COLOR=GREEN]'Suppression du code VBA[/COLOR]
    [COLOR=NAVY]With[/COLOR] ActiveWorkbook
        [COLOR=NAVY]With[/COLOR] .VBProject.VBComponents(NomFeuille).CodeModule
            .DeleteLines 1, .CountOfLines
            .CodePane.Window.[COLOR=NAVY]Close
        End With[/COLOR]
        
        [COLOR=GREEN]'Sauvegarde du classeur et fermeture[/COLOR]
        .SaveAs Chemin & "Archive du " & Format([COLOR=NAVY]Date[/COLOR], "dd mmm")
        .[COLOR=NAVY]Close
    End With[/COLOR]
    Application.ScreenUpdating = [COLOR=NAVY]True
End Sub[/COLOR]
[/SIZE]
Cordialement,
 

Staple1600

XLDnaute Barbatruc
Re : Macro

Re

En reprenant le code de myDearFriend!

et comme il s'agit d'enregistrer une seule feuille

en l'enregistrant au format XL4, les macros sont automatiquement supprimées.
Code:
Sub Macro2()
' myDearFriend! - www.mdf-xlpages.com
Dim Obj As OLEObject
Dim Chemin As String
'Chemin = "C:\"  ici pour pour pouvoir tester
Chemin = "C:\Documents and Settings\Manuel Dejong\Mes documents\"
NomFeuille = "Feuil1"
Application.ScreenUpdating = False
Sheets(NomFeuille).Copy
'Suppression des boutons (ActiveX) dans la feuille
For Each Obj In ActiveSheet.OLEObjects
    If TypeOf Obj.Object Is MSForms.CommandButton Then Obj.Delete
Next
Application.DisplayAlerts = False
    With ActiveWorkbook
        .SaveAs Chemin & "Archive du " & _
        Format(Date, "dd mmm"), FileFormat:=xlExcel4
        .Close
    End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro

Re

C'était juste une idée, qui n'avait que pour but que d'être une idée

Et pour ce qui est d'être la meilleure, c'est ton idée qui tient la corde pour le moment (cf edition)

Je n'ai pas Excel 2007, et 1992 était pas mal comme année

(sentiment personnel)

même si à l'époque je n'avais qu' un ATARI ST (qui fontionne toujours d'ailleurs!)


edit: pas froissé pour un sou
d'accord sur l'orientation vers le futur
(meme si cela oblige à une course folle vers des upgrades permanents)
(pas toujours évident de suivre financièrement...
sauf à basculer vers le monde de l'open source, qui malheureusement n'est VBA compliant)
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : Macro

Re,

Le but n'était pas de dire que mDFmachin ou truc à la meilleure idée... l'objectif était seulement de dire que dans un forum comme celui-ci, il me semble préférable d'orienter ceux qui posent des questions sur des solutions d'aujourd'hui et d'abandonner les veilles références d'il y a 15 ans...

Pour info, moi aussi, à cette époque j'étais sur Atari ST (c'est en 1995 que j'ai fait connaissance avec le PC).

En espérant ne pas t'avoir froissé, ce n'était pas l'intention.

Cordialement,
 

chinel

XLDnaute Impliqué
Re : Macro

merci tout le monde de votre aide mais j'ai encore un souci !

sub macro ()

Dim Obj As OLEObject
Dim Chemin As String
'Chemin = "C:\" ici pour pour pouvoir tester
Chemin = "C:\Documents and Settings\Manuel Dejong\Mes documents\"
NomFeuille = "Feuil1"
Application.ScreenUpdating = False
Sheets("Planning").Copy
'Suppression des boutons (ActiveX) dans la feuille
For Each Obj In ActiveSheet.OLEObjects
If TypeOf Obj.Object Is MSForms.CommandButton Then Obj.Delete
Next
Application.DisplayAlerts = False
With ActiveWorkbook
.saveas Chemin & "Archive du " & _
Format(Date, "dd mmm"), FileFormat:=xlExcel4
.Close
End With
end sub

cela fonctionne ! j'aurais bien voulu que dans ma copie les macros soient désactivées et qu'on ne puisse pas voir le bouton de commande (voir exemple) bizarre mai quand j'ouvre ma copie sauvegardée mon fichier original s'ouvre aussi (pas bien ça !)
mais la couleur de fond de mon planning a disparu elle était jaune , les cellules liées ont disparus

pouvez vous m'aider ça commence à prendre forme mon projet !!!
 

Pièces jointes

  • Archive du 22 juin.xls
    23.5 KB · Affichages: 41
  • Archive du 22 juin.xls
    23.5 KB · Affichages: 45
  • Archive du 22 juin.xls
    23.5 KB · Affichages: 40
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 875
Membres
103 980
dernier inscrit
grandmasterflash38