MACRO POUR SAUVEGARDER UN CLASSEUR

Résolu/Fermé
clavervba Messages postés 47 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 7 mars 2017 - 1 mars 2017 à 15:00
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 2 mars 2017 à 09:53
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 dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017 2
1 mars 2017 à 15:23
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
Modifié par gbinforme le 1/03/2017 à 15:31
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
1 mars 2017 à 15:37
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 vendredi 3 février 2017 Statut Membre Dernière intervention 7 mars 2017
2 mars 2017 à 08:41
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 vendredi 3 février 2017 Statut Membre Dernière intervention 7 mars 2017
2 mars 2017 à 09:30
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > clavervba Messages postés 47 Date d'inscription vendredi 3 février 2017 Statut Membre Dernière intervention 7 mars 2017
2 mars 2017 à 09:53
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 vendredi 3 février 2017 Statut Membre Dernière intervention 7 mars 2017
2 mars 2017 à 09:52
super ça fonctionne grace a toi Thau.
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
2 mars 2017 à 09:13
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