Macro Changer le type de fichier

Résolu
DemandeAide -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
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

6 réponses

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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
  2. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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
  3. DemandeAide
     
    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
  4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. DemandeAide
     
    Parfait, tout fonctionne à merveille.

    Merci beaucoup pour votre aide.

    Cdt

    Christophe
    0
  7. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Re bonjour

    Peux-tu mettre le poste en résolu STP

    Patrice
    0