MACRO POUR SAUVEGARDER UN CLASSEUR

Résolu
clavervba Messages postés 48 Statut Membre -  
ThauTheme Messages postés 1564 Statut Membre -
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



--
palpevba

4 réponses

  1. HugoHerbomez Messages postés 59 Statut Membre 2
     
    Bonjour claver,

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

    Merci !
    0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  3. ThauTheme Messages postés 1564 Statut Membre 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
    1. clavervba Messages postés 48 Statut Membre
       
      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
    2. clavervba Messages postés 48 Statut Membre
       
      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
      1. ThauTheme Messages postés 1564 Statut Membre 160 > clavervba Messages postés 48 Statut Membre
         
        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
    3. clavervba Messages postés 48 Statut Membre
       
      super ça fonctionne grace a toi Thau.
      0
  4. ThauTheme Messages postés 1564 Statut Membre 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