Macro Changer le type de fichier

Résolu/Fermé
DemandeAide - 12 août 2010 à 01:39
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 12 août 2010 à 17:54
Bonjour,

Je ne trouve pas de réponse sur le net au problème suivant:

J'utilise la commande Application.Dialogs(xlDialogSaveAs).Show (NomFichier) dans workbook_open() pour forcer mon utilisateur à enregistrer une copie de mon document, mais je souhaiterais changer le type de fichier dans la boite de dialogue "Enregister sous" pour avoir le type .xlsx (classeur sans macro) et shunter le message d'avertissement qui s'affiche ensuite prevenant de la perte des macros.

Merci d'avance pour votre aide.

Cdt

Christophe

A voir également:

6 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
Modifié par Mytå le 12/08/2010 à 02:29
salut le forum

Essaye ceci
Sub Enregistrement() 
Dim Sauvegarde As Variant, Question As Integer 
Sauvegarde = Application.GetSaveAsFilename("c:\dede.xlsx", FileFilter:="XLSX (*.xlsx), *.xlsx", Title:="Sauvez moi vite ...") 
' Demande ou sauver le doc et le nom à lui donner 
If Sauvegarde = False Then Exit Sub 
' Si click sur annuler, alors exit sub 
If Dir(Sauvegarde) <> "" Then ' le fichier renseigné par l'utilisateur existe-t-il ? 
   Question = MsgBox("Attention le fichier existe déjà" & Chr(13) & "Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...") 
   ' Si oui, faut t-il l'effacer ? 
   If Question = 6 Then ' Oui 
      Kill Sauvegarde ' Efface 
   Else ' Non 
      Exit Sub ' Stop procédure 
   End If 
End If 
ThisWorkbook.SaveAs Sauvegarde ' Sauvegarde 
End Sub 

Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
12 août 2010 à 02:35
Re le forum

Tu veux plutot ceci :

Application.Dialogs(xlDialogSaveAs).Show arg1:="C:\Transfert\test.xlsx"

ou

Application.Dialogs(xlDialogSaveAs).Show ("leNom.xlsx")

Mytå
0
Merci pour vos réponses,

Voici le code que j'utilise finalement:

NomFichier = Application.GetSaveAsFilename(Code, FileFilter:="XLSX (*.xlsx), *.xlsx", Title:="Sauvez moi vite ...")

ThisWorkbook.SaveAs Filename:=NomFichier, FileFormat:=xlOpenXMLWorkbook

En revanche je ne parviens pas à mettre une réponse automatique au message d'alerte prévenant de la perte des macros lors d'un passage d'xlsm en xlsx.

Cdt

Christophe
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
12 août 2010 à 13:56
Bonjour,

Essaie :


NomFichier = Application.GetSaveAsFilename(Code, FileFilter:="XLSX (*.xlsx), *.xlsx", Title:="Sauvez moi vite ...")

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NomFichier, FileFormat:=xlOpenXMLWorkbook 
Application.DisplayAlerts = True
      


Cordialement,
Patrice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Parfait, tout fonctionne à merveille.

Merci beaucoup pour votre aide.

Cdt

Christophe
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
12 août 2010 à 17:54
Re bonjour

Peux-tu mettre le poste en résolu STP

Patrice
0