probleme avec macro excel

probleme avec macro excel - VB/VBA/VBS - Programmation

Marsh Posté le 18-06-2005 à 00:10:49    

Bonjour,
Dans un classeur excel j'ai inserer un macro pour avoir une copie du classeur:
Sub Enregistre()
    Dim NomFich As String
    NomFich = "c:\TEMP\" & Day(Date) & Month(Date) & Year(Date) & ".xls"
    ActiveWorkbook.SaveCopyAs NomFich
End Sub
 
Pour que le macro s'execute à la fermeture du classeur j'ai mis un code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim NomFich As String
    NomFich = "c:\TEMP\" & Day(Date) & Month(Date) & Year(Date) & ".xls"
    ActiveWorkbook.SaveCopyAs NomFich
End Sub
Tout marche bien, le probléme c'est que quands je veux fermer la copie avec la date j'ai une erreur 1004, et il marque en jaune ActiveWorkbook.SaveCopyAs NomFich normalment dans la copie il ne devrais  pas avoir de macro? Comment faire pour appliquer mon macro juste à la feuille principale.
Merci de m'expliquer pas à pas je ne connais pas trop tout ca
desole pour les fautes je suis italien
merci

Reply

Marsh Posté le 18-06-2005 à 00:10:49   

Reply

Marsh Posté le 18-06-2005 à 17:36:37    

bonjour,
 
le problème vient sans doute du fait que le répertoire de destination (C:\temp) n'existe pas ce qui génère une erreur!

Reply

Marsh Posté le 19-06-2005 à 10:48:07    

j'ai creé mon repertoire et j'ai une copie avec la date dans le repertoire. Quands j'ouvre ma copie avec la date toute mes donné sont bien enregistre,le probleme c'est quands je ferme la copie il'ya le macro qui se declenche meme dans la copie et essaye de faire un'autre copie. Pour bien explique j'ai le probleme à la fermeture de la copie.
Merci

Reply

Marsh Posté le 19-06-2005 à 17:33:56    

fait une boucle du style
 
si non fichier existe alors
créer fichier
fin si
 
'If not .... Then
'...
'End If

Reply

Marsh Posté le 20-06-2005 à 19:05:00    

Une copie de fichier contient tout de l'original,y compris les macros. Il est donc normal que ta macro soit executée.
Tu peux par exemple modifier ta macro pour qu'elle ne fonctionne que si le nom du fichier ne correspond pas au nom d'une copie.
Ou alors faut faire des copies de tes données dans un nouveau fichier au lieu de faire une copie de fichier.

Reply

Marsh Posté le 21-06-2005 à 17:50:25    

Bonj
Tu pourrais m'aider a transformer mon macro pour qu'il ne marche pas avec la copie?
merci

Reply

Marsh Posté le 22-06-2005 à 06:46:33    

Salut
Je sait pas si ça marche, c'est juste une idée
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
    Dim NomFich As String  
if ActiveWorkbook.name = "nom du classeur principale" then
    NomFich = "c:\TEMP\" & Day(Date) & Month(Date) & Year(Date) & ".xls"  
    ActiveWorkbook.SaveCopyAs NomFich  
else
exit sub
End Sub  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed