Enregistrer sous XLSM

Bonjour,

Je veux pouvoir enregistrer sous et au format xlsm mais ça ne marche pas . comment mettre l'option automatiquement sur la boite de dialogue qui s'ouvre ?

Sub Image5_Clic()
Dim fichier As String
fichier = "Fiche suivi chantier lot " & Range("C7") & " - " & Range("C6") & ".xlsm"
Application.Dialogs(xlDialogSaveAs).Show CStr(fichier)
End Sub

Bonjour,

Comme ceci, peut-être :

Sub Utilisation_FileDialog_SelectionFichier()
'https://excel.developpez.com/faq/?page=FenetresExcel#FileDialog
    Dim x As Long

    With Application.FileDialog(msoFileDialogFilePicker)
        'Définit un titre pour la boîte de dialogue
        .Title = "Le tite de la fenêtre:"
        'Autorise la multi-sélection
        .AllowMultiSelect = True

        'Définit un nom de fichier par défaut
        '.InitialFileName = "Nom document.doc"

        'Efface les filtres existants.
        .Filters.Clear
        'Définit une liste de filtres pour le champ "Type de fichiers".
        .Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
        'La valeur 1 permet de spécifier que ce filtre est positionner en premier dans la liste de choix.
        .Filters.Add "Documents Word", "*.doc; *.docx; *.docm", 1
        'Définit le filtre qui s'affiche par défaut dans le champ "Type de fichiers".
        .FilterIndex = 2

        'Indique le type d'affichage dans la boîte de dialogue (exemple visualisation des propriétés)
        .InitialView = msoFileDialogViewProperties
        'Affiche la boîte de dialogue
        .Show

        'Boucle sur les fichiers sélectionnés
        For x = 1 To .SelectedItems.Count
            MsgBox .SelectedItems(x)
        Next x

    End With

End Sub

Bonjour,

n'est-il pas possible de rajouter un paramètre à mes lignes pour l'option ".xlsm " soit mise d'office dans la fenêtre ?

Sub Image5_Clic()
Dim fichier As String
fichier = "Fiche suivi chantier lot " & Range("C7") & " - " & Range("C6") & ".xlsm"
Application.Dialogs(xlDialogSaveAs).Show CStr(fichier)
End Sub

Bonjour,

Puisque tu connais déjà le nom de fichier que tu vas enregistrer ;

( fichier = "Fiche suivi chantier lot " & Range("C7") & " - " & Range("C6") & ".xlsm")

Pourquoi ouvrir une boite de dialogue ?

Tu ne peux pas indiquer le répertoire d'enregistrement ?

Bonjour,

le répertoire d'enregistrement sera de base là où est le fichier avec la macro et un nomé de la façon suivante :

Range("C7") & " - " & Range("C16") & " - " & Range("C19")

Si tu enregistres au même endroit que ton fichier excel … c'est encore plus simple.

Sub Image5_Clic()
Dim fichier As String
Dim Chemin As string
Chemin=Thisworkbook.path &"\"
fichier = "Fiche suivi chantier lot " & Range("C7") & " - " & Range("C6") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=Chemin & fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Ainsi plus besoin de boite de dialogue.

Si l'enregistrement est dans un sous répertoire aprés ton fichier excel alors tu peux aussi adapter

ton chemin par exemple comme ceci.

Chemin=Thisworkbook.path &"\répertoireexport\"

bonjour,

merci pour l'aide, j'ai voulu ajouter un répertoire là où se trouve le fichier, mais rien ne se passe (à part l'enregistrement du fichier en xlsm qui marche bien)

Sub Image5_Clic()

Dim fichier As String
Dim Chemin As String
MkDir "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value
Chemin = ThisWorkbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value
fichier = "Fiche suivi chantier lot " & Range("C7") & " - " & Range("C6") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=Chemin & fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        

Bonjour,

si ton répertoire existe, il n'y a pas de raison que cela ne fonctionne pas.

La macro enregistre dans un répertoire existant ( elle ne créer pas de nouveau répertoire. )

Chemin = ThisWorkbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value

ton chemin doit finir par un anti-slash \

il te manque donc & "\" à la fin

je ne sais pas situ as vu mais j'ai rajouté un "Mkdir" , c'est bien la fonction pour créer un répertoire ?

je ne sais pas situ as vu mais j'ai rajouté un "Mkdir" , c'est bien la fonction pour créer un répertoire ?

Lol j'avais juste régardé la ligne chemin et le manque de "\" à la fin

du coup ma création de répertoire ne marche pas, je vais chercher sur le forum

du coup ma création de répertoire ne marche pas, je vais chercher sur le forum

Ha j'avais pas compris que ta ligne ne fonctionnait pas.

mkdir c'est avec des parenthèse et Tu auras aussi besoin du chemin complet pour créer le répertoire.

MkDir(Thisworbook.path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value &"\")

j'ai une erreur : "Objet requis"

Sub Image5_Clic()

Dim fichier As String
Dim chemin As String

MkDir (Thisworbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value & "\")

chemin = ThisWorkbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value & "\"

fichier = "Fiche suivi chantier lot " & Range("C7") & " - " & Range("C6") & ".xlsm"

ActiveWorkbook.SaveAs Filename:=chemin & fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Il s'arrête sur une ligne précise ?

Essaies sans les parenthèses. ?

Je viens de tester sur mon bureau alors çà donnerai çà pour toi :

MkDir Thisworbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value

Il te manquait seulement Thisworbook.path dans ton premier post . Désolé.

(sauf si dans les cellules C7 C16 il y a des caractères qu'on n'a pas le droit d'utiliser dans les nom de répertoire)

Par contre pour la valeur de "chemin" ensuite il y a bien "\" à la fin.

j'ai toujours objet requis dès le lancement de la macro

j'ai essayé une autre variante avec le test de voir si le dossier est créé mais j'ai toujours l'erreur : objets requis.....SNIFFFFF

Sub Image5_Clic()

Dim fichier As String
Dim chemin As String
Dim chemin2 As String

'chemin = ThisWorkbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value & "\"
chemin = chemin2 & "\"
chemin2 = Thisworbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value
fichier = "Fiche suivi chantier lot " & Sheets("Chantier").Range("C7") & " - " & Sheets("Chantier").Range("C6") & ".xlsm"

If Dir("chemin2", 16) = "" Then MkDir ("chemin2")

ActiveWorkbook.SaveAs Filename:=chemin & fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Essaies ainsi :

Sub Image5_Clic()
Dim fichier As String
Dim chemin As String

MkDir Thisworbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value

chemin = ThisWorkbook.Path & "\" & Range("C7").Value & " - " & Range("C16").Value & " - " & Range("C19").Value & "\"

fichier = "Fiche suivi chantier lot " & Sheets("Chantier").Range("C7") & " - " & Sheets("Chantier").Range("C6") & ".xlsm"

ActiveWorkbook.SaveAs Filename:=chemin & fichier, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub
Rechercher des sujets similaires à "enregistrer xlsm"