MACRO POUR SAUVEGARDER UN CLASSEUR

Résolu
clavervba Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai essaye écrire une macro pour sauvegarder mon classeur, mais elle beug au niveau souligné, s'il vous plait, quelqu'un peux m'aider?
PS: suis pas un expert en macro

Sub enregistre()

origine = ThisWorkbook.Path

Dossier = InputBox("Nom du dossier", "Definir le repertoire de destination:")

If Dir(ThisWorkbook.Path & "\" & Dossier, vbDirectory) = "" Then MkDir ThisWorkbook.Path & "\" & Dossier

ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\" & Dossier & "\" & Dossier & "\" & Dossier & "_" & ThisWorkbook.Name

Workbooks.Open origine & "\" & "Enreg.xlsm"
MsgBox "Fichier enregistré dans " & Dossier

ThisWorkbook.Close

End Sub



A voir également:

4 réponses

HugoHerbomez Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour claver,

Tu peux éditer ton message et le mettre dans des bornes de code "basic" s'il te plait?

Merci !
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Pour sauvegarder ta feuille active du classeur, je verrais plutôt ceci
Sub enregistre()
Dim origine As String, Dossier As String
origine = ThisWorkbook.Path
With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        .Title = "Choisissez votre répertoire"
        .Show
        If .SelectedItems.Count > 0 Then
            Dossier = .SelectedItems(1)
        Else
            Exit Sub
        End If
End With
ActiveSheet.SaveAs Dossier & "\" & ThisWorkbook.Name
End Sub

Je ne vois pas l'utilité de l'open/close final ?
 Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.  Antoine de Saint-Exupéry
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour le fil, bonjour le forum,

Moi ce qui me gêne bien plus que les balises ce sont les deux points suivants :
• Ne pas savoir quel est le code erreur quand ça plante. As-tu vérifié qu'il existe bel est bien un fichier nommé Enreg.xlsm dans le même dossier que le fichier qui contient la macro. Sinon le plantage est naturel...
• Même si ça n'a rien à voir avec le beug, n'y aurait-il pas un Dossier en trop dans a ligne :
ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\" & Dossier & "\" & Dossier & "\" & Dossier & "_" & ThisWorkbook.Name

j'aurais plutôt écrit :
ActiveSheet.SaveAs Filename:=ThisWorkbook.Path & "\" & Dossier & "\" & Dossier & "_" & ThisWorkbook.Name

0
clavervba Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour ThauTheme,
merci pour la rectification du code,cool.
mais tu peux plus m'expliquer le point 1 stp
(Ne pas savoir quel est le code erreur quand ça plante. As-tu vérifié qu'il existe bel est bien un fichier nommé Enreg.xlsm dans le même dossier que le fichier qui contient la macro. Sinon le plantage est naturel... )
merci pour le temps accordé
0
clavervba Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
voici le code que j'ai ecrit pour créer mon fichier, mais il a un message erreur qui met dit :
erreur de compilation, sub ou fonction non definie.

Sub creationfichier()

CreationRepertoire "c:\docuements and setting\dossier", "Enreg.xlsm"

End Sub
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160 > clavervba Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

C'est normal c'est un code que tu as carrément inventé. Le mot clé CreationRepertoire n'existe pas en VBA. On ne peut pas faire n'importe quoi tu sais, et sans savoir exactement ce que tu veux, je ne peux pas t'aider. Je ne comprends pas non plus pourquoi ce dernier code n'apparaît pas dans le premier que tu as fourni. C'est complètement incohérent... Je passe la main. Bonne chance.
0
clavervba Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
super ça fonctionne grace a toi Thau.
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

Quand il y a un bug dans un code, il y a un message et le numéro de l'erreur qui s'affichent. Puis, la ligne qui pose problème est surlignée de jaune. Tu nous as montré la ligne qui plantait mais ni le message ni le numéro d'erreur. Ils permettent de mieux cerner l'erreur et de trouver plus facilement la solution.

Ensuite, si le fichier Enreg.xlsm n'existe pas, il est évident que ça va provoquer un bug quand tu demandes au code de l'ouvrir (le nom du fichier et le nom utilisé dans le code doivent être parfaitement identiques y compris l'extension)...
0