Macro imprimer archiver fermer classseur

bonjour le forum

Voila j'ai vu bcp d'exemple mais j'arrive pas a trouver la macro que je veux executer je voudrai inclure une nouvelle macro qui consisterai a imprimer ma feuille 2 a l'acrchiver celon la date et a fermer la classeur sans apporter les modification faite :/

CoOki: /me est tres chiant !!! lol

merci

Salut le forum

Vite fait avec l'enregistreur de macro

Sub Macro1()
    Sheets("Feuil2").PrintPreview 'PrintOut Copies:=1
    Sheets("Feuil2").Copy
    ActiveWorkbook.SaveAs Filename:="C:\Excel\" & Date & ".xls", FileFormat:=xlNormal
    ActiveWorkbook.Close
    Application.Quit
End Sub

Mytå

là ji un bug je veux sauvegarder sur cle usb çà change le lecteur c tout non?

Sub print_and_close()

'

Sheets("Feuil2").PrintPreview 'PrintOut Copies:=1

Sheets("Feuil2").Copy

ActiveWorkbook.SaveAs Filename:="G:\archive\" & Date & ".xls", FileFormat:=xlNormal

ActiveWorkbook.Close

Application.Quit

End Sub

nn c bon c moi je suis une boulette ^^

merci

Salut le forum

Cooki_ a écrit :

Bonjour j'ai un souci sur une macro je n'arrive pas a lui établir le nom en lui donnant la date et l'heure comment puis je faire ??

De plus je voudrai, quand je ferme qu'il ne me pose pas les question si je veux sauvegarder les modification je voudrai que mon fichier ne soit pas modifier hors là il le fait.

Le code de ta macro adapter

Sub Save_And_Close()
    Sheets("Feuil2").Copy
    ActiveWorkbook.SaveAs Filename:="G:\archive\ & Format(Date, "dd_mmm") & Format(Time, "_hh_mm") & ".xls", FileFormat:=xlNormal
    ActiveWorkbook.Close
    ActiveWorkbook.Close SaveChanges:=False
    Application.Quit
End Sub

Tu peux utiliser aussi Format(Now, "dd mmm hh""h""mm")

Mytå

Bonjour,

C'est drôle parce que je venais justement chercher la même information, à la différence près, que je voudrais qu'il sauvegarde le nouveau fichier créé, et non mon fichier original.

et j'aimerais aussi que le nom de fichier créé porte le nom d'une case donnée.

Salut Balty,

c'est ce que le code proposé par Myta fait.

Cette ligne ci:

Sheets("Feuil2").Copy

va ouvrir et activer un nouveau classeur contenant la copie de la Feuille 2

Ainsi la ligne : ActiveWorkbook.SaveAs ...

va sauvegarder le nouveau classeur et non l'original

Francois.

balty a écrit :

Bonjour,

C'est drôle parce que je venais justement chercher la même information, à la différence près, que je voudrais qu'il sauvegarde le nouveau fichier créé, et non mon fichier original.

et j'aimerais aussi que le nom de fichier créé porte le nom d'une case donnée.

Salut le forum

Bienvenue comme nouveau membre Francois

Pour la question #2, Balty remplace

Format(Date, "dd_mmm") & Format(Time, "_hh_mm") par Worksheets("NomDeFeuille").Range("B5")

Sub Save_And_Close() 
  Dim Nom as String
    Nom=Worksheets("Feuil1").Range("B5") 'A adapter
    Sheets("Feuil2").Copy 
    ActiveWorkbook.SaveAs Filename:="G:\archive\ & Nom & ".xls", FileFormat:=xlNormal 
    ActiveWorkbook.Close 
    ActiveWorkbook.Close SaveChanges:=False 
    Application.Quit 
End Sub

Mytå

MERCI infiniment, j'essaie ça de suite. Je dois terminer le projet pour dans 3 heures.

edit: InfinIment... pas infinment

Raah, ça ne fonctionne qu'à moitier...

Voici ce que j'ai entré dans ma macro:

Sub Save_And_Close()

Dim Nom As String

Nom = Worksheets("Result").Range("C6")

Sheets("Result").Copy

ActiveWorkbook.SaveAs Filename:="C:\testtest\" & Nom & ".xls", FileFormat:=xlNormal

ActiveWorkbook.Close

ActiveWorkbook.Close SaveChanges:=False

Application.Quit

End Sub

En fait, il fait bien une copie de l'onglet demandé dans un nouveau document, mais il enregistre dans mon répertoire C:\testtest mon fichier original et non le nouveau document.

J'suis sur que c'est une bêtise, mais j'trouve pas.

Pouvez-vous m'aider ?

Salut Balty et le forum

Le problème ne semble pas venir de la macro que je t'ai donnée

Tu dois avoir d'autres macros dans ton fichier du style

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Le code...
End Sub

A te relire

Mytå

Bon, je viens de me débrouiller en recopiant des trucs du générateur de macros. Voilà ce que ca donne:

Sub Save_And_Close()

Dim Nom As String

Nom = Worksheets("Result").Range("C6")

Sheets("Result").Copy

ActiveWorkbook.SaveAs Filename:="C:\testtest\" & Nom & ".xls", FileFormat:=xlNormal

ActiveWorkbook.Close

ActiveWindow.ActivateNext

End Sub

Par contre j'ai un peu peur de la fonction "ActiveWindow.ActivateNext" qui, je crois, fait l'équivalent d'un ALT+TAB... autrement dit, c'est dangereux si il y a d'autres fichiers excel ouverts. Avez-vous une alternative ? Pour être sur de sélectionner le bon fichier.

Merci

Merci Mytå,

Mais je n'ai rien trouvé de tel ni dans mes macros, ni dans mes codes de pages.

Salut le forum

Désolé pour le retard, utilise Windows("Classeur1.xls").Activate

Classeur1 étant le nom de ton fichier

Mytå

Oh tu n'as pas à t'excuser

Merci. j'essaierai ca demain. Le projet est bouclé, j'pourrai encore le modifier légèrement.

Merci encore pour tout. et bravo pour ce forum

Salut Balty

Au plaisir de se croiser sur une autre ficelle.

Mytå

EDIT: PROBLÈME RÉSOLU. Merci encore !

Bonjour,

Je viens d'essayer d'intégrer ta ligne, mais ça ne fonctionne pas. C'est bien ça que je dois écrire ?

Sub Save_And_Close()

Dim Nom As String

Nom = Worksheets("Result").Range("C6")

Sheets("Result").Copy

ActiveWorkbook.SaveAs Filename:="C:\testtest\" & Nom & ".xls", FileFormat:=xlNormal

ActiveWorkbook.Close

Windows("Classeur1.xls").Activate

End Sub

Quand tu dis: "Classeur1 étant le nom de ton fichier", tu veux bien dire le nom de mon fichier original ? (et non le fichier généré)

Merci

Salut le Forum

Balty a écrit :

EDIT: PROBLÈME RÉSOLU. Merci encore !

Edites-ta première ficelle et met [Résolu] devant le sujet

Exemple : [Résolu]Le sujet de la ficelle

Mytå

P.S. A quand le bouton résolu sur les ficelles, Monsieur l'administareur (Sébastien pour pas le nommer)

Rechercher des sujets similaires à "macro imprimer archiver fermer classseur"