1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2016 Enregistrer sous prenant en charge les macro

Discussion dans 'Forum Excel' démarrée par dreamy, 21 Janvier 2019.

  1. dreamy

    dreamy XLDnaute Nouveau

    Inscrit depuis le :
    3 Avril 2015
    Messages :
    13
    "J'aime" reçus :
    1
    Bonjour à tous,

    Pour l'un de mes fichiers, j'ai une macro pour ouvrir la fenêtre " enregistrer sous " avec le nom du fichier (en fonction de la cellule R2) la date du jour et le chemin ou enregistrer mon fichier (j'ai 2 macro pour 2 chemin différent)

    Tout fonctionne parfaitement jusque la, sauf que ... je n'arrive pas à faire en sorte que la fenêtre "enregistrer sous" indique directement le type de fichier à enregistrer : Classeur Excel prenant en charge les macros.
    (Les utilisateurs oublient systématiquement du coup de la modifié, et le reste du fichier ne peut pas fonctionner car il y a d'autre macro pour le faire fonctionner)

    J'ai tenté plein de proposition que j'ai trouvé sur les forums, pas moyen. Je précise bien l'extension que je souhaite etc ...

    Auriez vous une solution pour m'aider ou me dire si j'ai une incohérence dans ma macro qui empêche de l'enregistrer correctement ?

    Voici la macro :

    Sub SAVE_Client()

    Dim chemin As String, fichier As String, extension As String

    chemin = "V:\PARC CLIENT\"
    extension = ".xlsm"
    Date_F = Format(Date, " ddmmyy")
    fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

    ChDrive "V:"
    ChDir chemin

    With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = fichier
    .Show
    End With

    End Sub

    J'ai également essayé de mettre & ".xlms"

    Je vous mets un fichier avec les 2 macros.

    Merci par avance de votre aide,
     

    Pièces jointes:

  2. Chargement...


  3. herve62

    herve62 XLDnaute Barbatruc

    Inscrit depuis le :
    14 Octobre 2005
    Messages :
    2205
    "J'aime" reçus :
    70
    Sexe :
    Masculin
    Habite à:
    Arques ( ville du Cristal) 62
    Utilise:
    Excel 2010 (PC)
    Bonjour
    Je connais un peu , j'avais des exemples ....qui ne fonctionnaient pas bien donc j'ai dû fouiner et moi !! bin j'ai trouvé
    chez moi ça marche , verifie : remet tes chemins adequat
     

    Pièces jointes:

  4. cathodique

    cathodique XLDnaute Accro

    Inscrit depuis le :
    3 Mars 2012
    Messages :
    1660
    "J'aime" reçus :
    83
    Sexe :
    Masculin
    Habite à:
    Montreuil
    Utilise:
    Excel 2010 (PC)
    Bonjour herve62:),@dreamy :),

    à tester
    Code (Visual Basic):
    Sub SAVE_Client()
       Dim chemin As String, fichier As String, extension As String

       chemin = "V:\PARC CLIENT\"
       extension = ".xlsm"
       Date_F = Format(Date, " ddmmyy")
       fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

       With ActiveWorkbook
          .SaveAs Filename:=chemin & fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
       End With
    End Sub
     
  5. dreamy

    dreamy XLDnaute Nouveau

    Inscrit depuis le :
    3 Avril 2015
    Messages :
    13
    "J'aime" reçus :
    1
    Bonjour Messieurs et merci pour vos retours,

    J'ai testé vos solutions mais elles ne fonctionnent pas comme je souhaiterais :

    Solution d'Herve62 : il ne prend plus en compte le nom de mon fichier en R2 dans la macro SAVE_Propo()

    Solution de Cathodique : la macro fonctionne, mais il enregistre directement dans le fichier, mais une fois dans Parc Client, l'utilisateur doit encore choisir le fichier avec le nom du client, donc la fenêtre "enregistrer sous" doit impérativement s'ouvrir. J'ai modifier la macro en mettant FileDialog au lieu d'ActiveWorkbook mais du coup le nom de mon fichier n'apparait plus.

    J'ai essayé de bidouillé, je ne trouve pas dans les 2 cas :confused:
    une idée ???
     
  6. cathodique

    cathodique XLDnaute Accro

    Inscrit depuis le :
    3 Mars 2012
    Messages :
    1660
    "J'aime" reçus :
    83
    Sexe :
    Masculin
    Habite à:
    Montreuil
    Utilise:
    Excel 2010 (PC)
    Bonsoir,

    un autre essai
    Code (Visual Basic):
    Sub SAVE_Client()
        Dim Chemin As String, Fichier As String, extension As String
        Chemin = "V:\PARC CLIENT\"
        extension = ".xlsm"
        Date_F = Format(Date, " ddmmyy")
        Fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension
    Fichier = Application.GetSaveAsFilename(Fichier, "Fichiers Excel (*.xlsm), *.xlsm")
        ActiveWorkbook.SaveAs Fichier
    End Sub
    Bonne soirée.
     
  7. herve62

    herve62 XLDnaute Barbatruc

    Inscrit depuis le :
    14 Octobre 2005
    Messages :
    2205
    "J'aime" reçus :
    70
    Sexe :
    Masculin
    Habite à:
    Arques ( ville du Cristal) 62
    Utilise:
    Excel 2010 (PC)
    Bonsoir
    ? normalement le nom de fichier dans R2 était pris en compte :
    fichier = "SIMUL-" & Sheets("Récap").Range("R2") & "-" & Date_F & ".xlsm"
    par contre MS reconnait que le "enregistrer sous" n'a pas été perfectionné
    essaye cette autre méthode , chez moi cela fonctionne , ensuite à toi d'adapter chemin , variable etc ...
     

    Pièces jointes:

  8. herve62

    herve62 XLDnaute Barbatruc

    Inscrit depuis le :
    14 Octobre 2005
    Messages :
    2205
    "J'aime" reçus :
    70
    Sexe :
    Masculin
    Habite à:
    Arques ( ville du Cristal) 62
    Utilise:
    Excel 2010 (PC)
    Yups @cathodique
    On se croise pendant que je rédigeais , donc pas vu ton code et ...... exactement la même solution !!!
    juste coïncidence pure
    Donc là à 2 , je pense SUR que cela fonctionne
    Je viens même de m'apercevoir que ANNULER entraine une erreur , le remède >
    Code (Visual Basic):
    fichier = Application.GetSaveAsFilename(fic_enr, "Fichiers Excel (*.xlsm), *.xlsm")
        If fichier = fic_enr Then ActiveWorkbook.SaveAs fichier Else Exit Sub
     
    Dernière édition: 11 Février 2019 à 22:33
    cathodique aime votre message.
  9. cathodique

    cathodique XLDnaute Accro

    Inscrit depuis le :
    3 Mars 2012
    Messages :
    1660
    "J'aime" reçus :
    83
    Sexe :
    Masculin
    Habite à:
    Montreuil
    Utilise:
    Excel 2010 (PC)
    Bonjour Herve2, Dreamy,
    :confused::confused::oops::oops:, je n'avais ni pensé ni testé la touche Annuler.
    Merci de ma part.

    @herve62 : le petit gars ne veut toujours pas participer.

    Bonne journée.
     
  10. dreamy

    dreamy XLDnaute Nouveau

    Inscrit depuis le :
    3 Avril 2015
    Messages :
    13
    "J'aime" reçus :
    1
    Bonjour Messieurs,

    De nouveau merci de votre retour,
    Je dois avoir un truc qui bloque car chez moi la macro fonctionne a moitié :(.
    Je n'ai pas de bug, le chemin est bon, le nom s'affiche ... jusque la c'est parfait je fais "enregistrer" dans le dossier .... mais il n'y a rien, aucun fichier, pourtant aucun message d'erreur (et le nom du fichier en haut de ma page ne se modifie pas non plus d'ailleurs)


    Voici le macro que j'ai mis d'après vos conseils ...

    Sub SAVE_Client()

    Dim Chemin As String, Fichier As String, extension As String
    Chemin = "V:\PARC CLIENT\"
    extension = ".xlsm"
    Date_F = Format(Date, " ddmmyy")
    Fichier = "SIMUL - " & Sheets("Récap").Range("R2") & " - " & Date_F & extension

    ChDrive "V:"
    ChDir Chemin

    Fichier = Application.GetSaveAsFilename(Fichier, "Fichiers Excel (*.xlsm), *.xlsm")
    If Fichier = fic_enr Then ActiveWorkbook.SaveAs Fichier Else Exit Sub
    ActiveWorkbook.SaveAs Fichier
    End Sub



    Si j'enlève : If Fichier = fic_enr Then ActiveWorkbook.SaveAs Fichier Else Exit Sub
    Ou si je le place en dessous de : ActiveWorkbook.SaveAs Fichier
    j'ai un message d'erreur pour le format XLSM (screen en PJ)

    C'est un grand mystère pour moi surtout si pour vous 2 tout fonctionne. Mon fichier est un Modèle de document prenant en charge les macro, est-ce que cela pourrait créer un conflit avec la macro ?
     

    Pièces jointes:

  11. cathodique

    cathodique XLDnaute Accro

    Inscrit depuis le :
    3 Mars 2012
    Messages :
    1660
    "J'aime" reçus :
    83
    Sexe :
    Masculin
    Habite à:
    Montreuil
    Utilise:
    Excel 2010 (PC)
    Bonjour,
    Si on te propose des procédures et que tu ne t'en sers pas.
    Je ne vois pas comment t'aider plus que ça.
    Mais dis-nous à quoi servent ces 2 lignes
    ChDrive "V:"
    ChDir Chemin

    :rolleyes::rolleyes: je pense à t'embêter pour la suite du code.....
     
    Dernière édition: 17 Février 2019 à 16:19
  12. herve62

    herve62 XLDnaute Barbatruc

    Inscrit depuis le :
    14 Octobre 2005
    Messages :
    2205
    "J'aime" reçus :
    70
    Sexe :
    Masculin
    Habite à:
    Arques ( ville du Cristal) 62
    Utilise:
    Excel 2010 (PC)
    Bonjour , salut cathodique
    Je suppute l'idée de sauvegarde via un serveur , non ? si oui là ce n'est plus pareil le chemin ne s'écrit plus pareil
    Je faisais comme ça : "\\SRVPROD\commun_mairie\" ..etc pour affecter le chemin de sauvegarde des fichiers utilisés par tout le personnel
    sur le serveur il faut écrire le nom et pas "V:" , mais plutôt "\\Serveur-2012\ ...etc"
    @dreamy : a toi de vérifier
     

Partager cette page