Macro enregistrer uniquement feuille active dans nouveau fichier

Bonjour à tous,

J'ai fichier où une de mes macros doit m'enregistrer le fichier ouvert dans un emplacement et avec nom prédéfini par la macro. Mais pour l'instant, la macro qui fonctionne correctement, m'enregistrer tout le classeur et je ne parviens pas à trouver le bout de code qui me permettrait de n'enregistrer que la feuille active (cet à dire "Feuil(1)").

Voici mon code :

Sub Enregistrer_Classeur()

    Dim chemin As String, fichier As String, datedu_jouR As String

' "datedu_jouR" est la date que l'on va manipuler pour l'insérer dans le nom du fichier à sauvegarder

    datedu_jouR = Format(Range("Y10"), "yyyy.mm.dd")

    If Range("Y10") = "" Then
        MsgBox ("Date du Virement ?")
        Exit Sub
        End If

    chemin = "\monchemin\"
    fichier = chemin & Range("X8") & " " & Range("X9") & "-" & datedu_jouR & ".xlsm"
    ActiveWorkbook.SaveAs Filename:=fichier

    End Sub

Si l'un d'entre vous connait la solution, je suis preneur.

D'avance, merci et bon week-end à tous.

Bonjour,

le fait de copier une feuille, crée automatiquement un nouveau classeur qui est automatiquement sélectionné, du coup il suffit d'enregistrer ce nouveau classeur qui contiendra uniquement la feuille copiée :

ActiveSheet.Copy
ActiveWorkbook.SaveAs "le chemin d'enregistrement"
Active.Workbook.Close

Voyez vous ? Un truc dans le genre

@ bientôt

LouReeD

Bonjour LouReeD et merci de ton aide !

Après plusieurs bidouilles, j'arrive à ouvrir un nouveau classeur avec 1 seule feuille, mais il ne s'enregistre pas avec le nom que je veux lui donner et ne se ferme pas non plus. Je ne maîtrise pas du tout la syntaxe

    ' Version en Test pour n'enregistrer que la feuille active
    ActiveSheet.Copy
    chemin = "\Users\Joe\Desktop\VIREMENTS\"
    fichier = chemin & Range("X8") & " " & Range("X9") & "-" & datedu_jouR & ".xlsm"
    With ActiveWorkbook
        .SaveAs Filename:=fichier
        .Close
    End With

Je joints un fichier TEST pour visualiser c'est sûrement mieux...

7test.xlsm (32.67 Ko)

bonjour....

oh quand je vois cela

chemin = "\Users\Joe\Desktop\VIREMENTS\"

cela veut dire qu'on est sur MAC....

peut-être voir ici :

https://www.rondebruin.nl/mac/mac016.htm

edit

peut-etre pour l'enregistrement :

ActiveWorkbook.SaveAs fichier , FileFormat:=53

Fred

Bonjour Fred2406 et non désolé, je ne suis pas sur Mac, environnement Windows...

alors dans chemin il manque quelque chose ...

normalement il devrait ressembler à

chemin = C:\Users\Fred\Desktop\

Fred

Je viens de refaire un test (parce qu'avec toutes les modifs j'aurai pu "manger" un bout du chemin) mais non, je te confirme que ça marche (peut-être parce que le fichier Test est sur mon bureau, c'est sûrement pour ça je pense).

J'ai réussi à le faire fonctionner en modifiant l'extension du fichier de ".xlsm" en ".xls"

Avec l'extension ".xls" la macro s'exécute bien mais j'ai un message d'avertissement à l'ouverture du fichier :

"Le format du fichier que vous tentez d'ouvrir est différent de celui spécifié par l'extension du fichier" ?

J'ai trouvé la solution

Sub Enregistrer_Classeur()

' Macro qui permet d'enregistrer en automatique le détail du virement
' dans le répertoire "VIREMENTS" qui est sur mon bureau de PC

    Dim Chemin As String, fichier As String, datedu_jouR As String

' "datedu_jouR" est la date que l'on va manipuler pour l'insérer dans le nom du fichier à sauvegarder

    datedu_jouR = Format(Range("Y10"), "yyyy.mm.dd")

    If Range("Y10") = "" Then
        MsgBox ("Date du Virement ?")
        Exit Sub
        End If

    ' Version qui fonctionne mais enregistre tout le classeur
    ' chemin = "\Users\Joe\Desktop\VIREMENTS\"
    ' fichier = chemin & Range("X8") & " " & Range("X9") & "-" & datedu_jouR & ".xlsm"
    'ActiveWorkbook.SaveAs Filename:=fichier

    ' Version qui fonctionne et n'enregistre que la feuille active
    ActiveSheet.Copy
    Chemin = "\Users\Joe\Desktop\VIREMENTS\"
    fichier = Range("X8") & " " & Range("X9") & "-" & datedu_jouR & ".xlsm"

    With ActiveWorkbook
        .SaveAs Filename:=Chemin & fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
        .Close
    End With

End Sub

Il ne fallait pas oublier "FileFormat:=xlOpenXMLWorkbookMacroEnabled".

OUF !

Merci et bonne soirée.

Rechercher des sujets similaires à "macro enregistrer uniquement feuille active nouveau fichier"