Erreur '1004' - Macro enregistrement

Kahyasse

XLDnaute Nouveau
Bonjour à tous et à toutes,

Grace à tous les forums du site j'ai toujours pu me débrouiller mais là je coince.
J’essaie de réaliser un macro qui me permettra à l’aide d’un bouton d’effectuer une copie de mon fichier actuel. Jusque là aucun problème, mon macro me permettait très bien d’enregistrer ma copie dans le même dossier que mon fichier d’origine.

Maintenant je souhaiterais enregistrer mes copies dans un dossier ‘enregistrement’ présent dans le dossier où se trouve le fichier d’origine. Et pour corset la chose (à mon niveau) je voudrais que le dossier ‘enregistrement’ contienne des sous-dossiers ‘années’ (2011, 2012, etc.). En gros si on a le dossier Y qui contient mon fichier originale je voudrais : Y\Enregistrement\2011\Copie.xls.

De plus je veux que le macro créer tout-seul le dossier ‘enregistrement’ et les sous-dossiers ‘année’.

Pour cela j’ai essayé de me débrouiller et je pense que je ne suis pas loin du compte mais un problème persiste à la ligne surligné, l’erreur ‘1004’.

Public Sub CommandButton1_Click() 'Enregistrement
Dim Dossier, SousDossier
Dossier = ActiveWorkbook.Path & Enregistrement
SousDossier = Dossier & Year(Date)
Call RépertoireExiste("Dossier")
Call RépertoireExiste("SousDossier")
Dim Nom As String
Nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs SousDossier & "\" & Nom
rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & Nom, vbYes + vbInformation, "Copie sauvegarde classeur")
End Sub

Function RépertoireExiste(Chemin As String) As Boolean
On Error Resume Next
RépertoireExiste = GetAttr(Chemin) And vbDirectory
If RépertoireExiste = True Then
Exit Function
Else
MkDir (Chemin)
End If
End Function


Si vous pourriez m’éclairer sur mes erreurs je vous en remercie d’avance.
Kahyasse
 

unrender

XLDnaute Junior
Re : Erreur '1004' - Macro enregistrement

Bonjour,

si tu passes une variable en argument, il ne faut pas mettre les guillemets :

Code:
Call RépertoireExiste (Dossier)

bon après midi
@+

Bonjour :)

J'allais le dire en effet. Idem pour :

Code:
Call RépertoireExiste(SousDossier)


---------------------
Donc ça donne :

Code:
Sub test()
Dim Dossier As String, SousDossier As String
 Dossier = ActiveWorkbook.Path & "\Enregistrement"
 SousDossier = Dossier & "\" & Year(Date)
 Call RépertoireExiste(Dossier)
 Call RépertoireExiste(SousDossier)
 Dim Nom As String
 Nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs SousDossier & "\" & Nom
 rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & Nom, vbYes + vbInformation, "Copie sauvegarde classeur")
 
End Sub


Function RépertoireExiste(Chemin As String) As Boolean
 On Error Resume Next
 RépertoireExiste = GetAttr(Chemin) And vbDirectory
 If RépertoireExiste = True Then
 Exit Function
 Else
 MkDir (Chemin)
 End If
 End Function
 
Dernière édition:

Kahyasse

XLDnaute Nouveau
Re : Erreur '1004' - Macro enregistrement

Merci à tous, c'est parfait, ca marche.
Peut-être qu'un jour je pourrais vous aidez a mon tour mais ya encore du chemin car je suis q'un novice en la matière.
Bonne fin de journée
Kahyasse
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 126
Membres
104 040
dernier inscrit
pb91