Enregistrement fichier sous un autre nom

Bonjour tout le monde, une question me turlupine et je n'arrive pas à trouver la solution.

J'ai un fichier appelé toto.xlsm avec x onglets.

Je cherche, via du code vba, à:

_ supprimer certains onglets de mon fichier toto.xlsm pour ne laisser qu'une feuille précise (cette fonction marche)

_ depuis cette nouvelle version, je souhaite enregistrer le fichier sous toto2.xlsx (pour virer les macros) dans le but de l'envoyer ensuite à des utilisateurs.

Mon problème est:

_ l'enregistrement du fichier de .xlsm à xlsx

_ le fait que je n'arrive pas à fermer le nouveau fichier xlsx et à continuer à travailler sur le fichier xlsm

Des idées?
j'ai essayé le savecopyas, le saveas etc mais je n'arrive pas à faire ce que je veux.

Voici mon bout de code:

MaRecherche = ComboBox7.Value

chemin = ThisWorkbook.Path

nomFichier = chemin & "\" & "Dispos" & " - " & UCase(MaRecherche)

For Each Feuille In Application.ActiveWorkbook.Worksheets
If Feuille.Name <> "Personnels" And Feuille.Name <> MaRecherche Then
Feuille.Delete
End If
Next
Sheets("Personnels").Visible = False

ActiveWorkbook.SaveAs Filename:= _
nomFichier, FileFormat _
:=xlOpenXMLWorkbook, CreateBackup:=False

Workbooks.Open Filename:=chemin & "\" & "Création.xlsm"

Workbooks(chemin & nomFichier).Close True

Bonjour,

En imaginant qu'il s'agit du classeur actif dans le code :

MaRecherche = ComboBox7.Value

chemin = ThisWorkbook.Path

nomFichier = chemin & "\" & "Dispos" & " - " & UCase(MaRecherche)

application.displayalerts = false
with ActiveWorkbook
    For Each Feuille In .Worksheets
        If Feuille.Name <> "Personnels" And Feuille.Name <> MaRecherche Then
            Feuille.Delete
        End If
    Next
    .Sheets("Personnels").Visible = False
    .SaveAs Filename:=nomFichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    .close true
end with
application.displayalerts = true

Workbooks.Open Filename:=chemin & "\" & "Création.xlsm"

J'ai mis les lignes dans un ordre plus cohérent. Le problème venait de la redondance de chemin (dans workbooks.close) car NomFichier comprend déjà le chemin.

Cdlt,

Yes pas mal du tout, le seul truc est que le fichier Création ne s'ouvre pas à la fin :-)

... Le code est exécuté depuis le fichier fermé ?

Si c'est bien le cas, un essai :

MaRecherche = ComboBox7.Value

chemin = ThisWorkbook.Path

nomFichier = chemin & "\" & "Dispos" & " - " & UCase(MaRecherche)
Workbooks.Open Filename:=chemin & "\" & "Création.xlsm"

application.displayalerts = false
with thisworkbook
    For Each Feuille In .Worksheets
        If Feuille.Name <> "Personnels" And Feuille.Name <> MaRecherche Then
            Feuille.Delete
        End If
    Next
    .Sheets("Personnels").Visible = False
    .SaveAs Filename:=nomFichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    .close true
end with
application.displayalerts = true

non non il ne s'exécute pas avec le fichier fermé mais l'ouverture du fichier ne se fait pas...cf la dernière ligne de ton premier message.

Jessaierai le deuxième code demain matin.

Merci en tout cas

Etonnant, rien ne se passe

Je pense que je m'explique mal.....mon fichier de référence est Création.xlsm.

A l'intérieur je fais des actions et au final je créé deux nouvelles feuilles.

Ce feuilles et uniquement celles ci doivent être conservées dans un fichier au format xlsx

J'ai trouvé une astuce qui fonctionne:

Sheets(Array("Personnels", MaRecherche)).Select

Sheets(Array("Personnels", MaRecherche)).Copy
ActiveWorkbook.SaveAs Filename:=nomFichier, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close

Merci pour votre aide

Très bien ! Au cas où, je crois qu'il est possible de faire sheets(array(...)).copy directement.

En fait, je n'arrivais pas à situer correctement les classeurs. Si un nouveau problème survient, c'est ce point qu'il faudra surveiller : bien distinguer le classeur exécutant (thisworkbook) du classeur actif (activeworkbook). Avant la copie, a priori, ce sont les mêmes et après la copie, le nouveau classeur devient le classeur actif.

Cdlt,

Rechercher des sujets similaires à "enregistrement fichier nom"