Enregistrement feuille...

P

Pykrees

Guest
Bonjour,

Je souhaite enregistrer la "feuil1" d"un classeur excel automatiquement dans un répertoire prédéfini "c:\ar\sav_ar.xls , sans avoir de message de demande d'enregistrement.

Quelqu'un peut-il m'aider ?

Merci

Pyk.
 
L

lupin

Guest
Le moyen est de la faire par code vba. Mais pour sauver un classeur car il n'est pas possible de sauver ne seule feuille.

Sub Sauvegarde()
ActiveWorkbook.SaveAs "c:\ar\sav_ar.xls"
End Sub

Mais avec plus de précision tel que à quelle étape cela doit se passer et à partir de quelle donnée, il serait plus facile de t'aider.

A+
Lupin
 
P

pykrees

Guest
En fait, je suis entrain de créer une macro pour la gestion d'accuser reception.

Je souhaite faire une sauvegarde de ce qui me sert de base de donné dans un repertoire prédéfini à la fermeture de la macro.

Cet enregistrement doit se faire sans qu'il n'y ai de message de demande de sauvegarde, pour faire une sauvegarde "caché", dans le repertoire de mon choix. Cela doit se faire à sans que l'utilisateur sans appercoive.

Voila, j'espere que tu pourras m'aider

@+
pyk
 
M

michel

Guest
Bonsoir Pykrees et Lupin

je ne suis pas sur que la macro ci dessous répondra totalement à ta demande
la procedure est à placer dans ThisWorkbook

au moment de la fermeture du classeur contenant la macro , la feuille 1 est copiée dans un nouveau classeur . Ce nouveau classeur est sauvegardé dans un repertoire cible
j'ai compris que tu souhaitais effectuer une sauvegarde "cachée" . C'est pour cette raison que j'ai préféré utiliser SaveCopyAs ( copie de sauvegarde )
je n'ai pas intégré l'action de sauvegarde sur le classeur d'origine

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False 'pour ne pas avoir les messages d'alerte
ThisWorkbook.Sheets("Feuil1").Copy ' copie de la feuille1 dans un nouveau classeur
ActiveWorkbook.SaveCopyAs "c:\ar\sav_ar.xls" ' enregistrement copie dans repertoire
ActiveWorkbook.Close 'fermeture du classeur sauvegardé
Application.DisplayAlerts = True ' ne pas oublier de remettre true en en fin de procedure
End Sub


bonne soirée
michel
lapin4.gif
 
P

Pykrees

Guest
Bonsoir Michel !

C'est exactement ce que je souhaitais !

Je te remercie bcp !

Voici mon code :

Private Sub CommandButton3_Click()

Application.DisplayAlerts = False 'pour ne pas avoir les messages d'alerte
ThisWorkbook.Sheets("Feuil1").Copy ' copie de la feuille1 dans un nouveau classeur
ActiveWorkbook.SaveCopyAs "c:\ar\sav_ar.xls" ' enregistrement copie dans repertoire
ActiveWorkbook.Close 'fermeture du classeur sauvegardé
Application.DisplayAlerts = True ' ne pas oublier de remettre true en en fin de procedure
ActiveWorkbook.Close
End Sub

A l'avant derniere ligne, j'y ai rajouter "ActiveWorkbook.Close" qui lui me sauvegarde la totalite du fichier excel. Quel est le moyen d'enlever le message de confirmation de sauvegarde ? C'est le dernier point qui me manque!

Merci et Bonne soirée

Pyk.
 
M

michel

Guest
bonjour Eric

Application.DisplayAlerts =False permet de désactiver les message de confirmation

en fin de procedure il faut écrire Application.DisplayAlerts = True , pour réactiver les messages d'alerte

dans l'exemple de Pykrees , la fermeture du classeur ( ActiveWorkbook.Close ) est apres la réactivation des messages d'alertes
................
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub



il faut donc plutot écrire
................
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

bonne journée
michel
lapin4.gif