Code pour "enregistrer sous sans macros" via une macro

Bonjour,

Je souhaiterais via un bouton de commande permettre à l'utilisateur d'enregistrer le fichier excel sans prendre en charge les macros.

Remarque: mon fichier excel comprend plusieurs feuilles

Je souhaiterais que le fichier soit nommé automatiquement. Exemple: "Compte rendu" & Feuil2.Range("F4")

Vu que l'emplacement du fichier ne sera pas toujours le même, je voudrais laisser la possibilité à l'utilisateur de le ranger lui même.

Merci d'avance

Sub toto()
Application.GetSaveAsFilename InitialFileName:="Compte rendu" & Feuil2.Range("F4"), filefilter:="Excel Files (*.xlsx), *.xlsx"
End Sub

J'ai essayé mais une fois enregistré avec le nom et dans l'emplacement souhaité. Impossible de retrouver le fichier où je l'avais rangé.

Bonjour,

Dans ton fichier, tu peux te faire un test ...

Sub Test()
  MsgBox ThisWorkbook.Path
End Sub

Ca ne fait rien ou alors je m'y prend mal :s

A la base j'avais mis de code :

ActiveWorkbook.SaveAs

Application.Dialogs(xlDialogSaveAs).Show

Application.Quit

Cette procédure marche mais elle présente plusieurs inconvénients:

  • L'utilisateur doit entrer lui même le nom du fichier
  • Par défaut le document va etre enregistré en conservant les macros

Re,

Pour reprendre le sujet du début ...

Dim nouvFich As String
    ' Définir le Nom du  Nouveau Fichier
    nouvFich = ActiveWorkbook.Path & "\" & "Compte rendu" & Feuil2.Range("F4")& " " & ".xlsx"
    '  Sauver le fichier
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=nouvFich
    Application.DisplayAlerts = True

Merci beaucoup pour ton aide

Mais je viens de rentrer le code que tu m'as donné et il me dit "Erreur d'exécution 1004" (Impossible d'utiliser cette extension avec le type de fichier sélectionné)

J'ai tenté de remplacer xls à la place de xlsx, le fichier s'enregistre mais du coup il me demande si je veux activer les macros quand j'essaye de réouvrir le fichier enregistré.

De plus, j'ai l'impression que l'utilisateur ne peut pas choisir l'emplacement où il souhaite que le fichier soit enregistré.

Désolé, je ne suis pas une experte en vba...

Re,

Je n'avais pas "tilter" sur le fait que voulais permettre à l'utilisateur de choisir l'emplacement ...

Peux-tu poster au minimum ta macro actuelle ... ou encore mieux ton fichier ...???


Re,

Ci-dessous macro à tester ...

Sub TestSauver()
  Dim nouvFich As String
  ' Définir le Nom du  Nouveau Fichier
  nouvFich = ActiveWorkbook.Path & "\" & "Compte rendu" & Sheet2.Range("F4") & " " & ".xls"
  nouvFich = Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Path & "\" & nouvFich, Filefilter:="Fichier Excel (*.xls), *.xls")
  If nouvFich = False Then
    MsgBox "Fichier n'a pas été Sauvegardé ..."
  Else
    '  Sauver le fichier
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs Filename:=nouvFich
    Application.DisplayAlerts = True
    MsgBox "Fichier Sauvegardé."
  End If
End Sub

Vu que c'est pour mon taf, j'ai supprimé dans le fichier Excel tout ce qui ne concernait pas mon problème.

Petit problème annexe, je n'arrive pas à lier le bouton de l'onglet "0 - Procédure" au module "Protection"

Merci

Marie,

A la lecture de ton dernier message ... j'en déduis que tu as essayé de joindre un fichier ...

Pour joindre un fichier ... la video youtube ...

EbNYLzTz5wM

P.S. As-tu testé le dernier code ..???

Erreur d'inattention mais merci pour la vidéo! ^^

37fichier.xlsm (83.51 Ko)

VBA commence à me lessiver le cerveau ^^

Re,

Ci-joint ton fichier à tester ...

Je suis parti de l'hypothèse que toute la première partie de ton code fonctionnait normalement ...

41fichier.xlsm (88.57 Ko)

Malheureusement ca ne marche pas de mon côté:

Lorsque j'appuie sur le bouton "Protection" de l'onglet "0 - Procédure", il m'affiche la fenêtre "Erreur d'exécution '438': Propriété ou méthode non géré par cet objet"

Lorsque j'execute la macro directement dans le module, il m'affiche la fenêtre "Erreur d'exécution '13': Incompatibilité de type"

Je ne comprends vraiment pas

Je suis parti de l'hypothèse que toute la première partie de ton code fonctionnait normalement ...

Marie,

Dès que j'ai un petit moment ... je reprends toute ta macro de zéro ...


Marie,

Le moins que je puisse dire ... c'est que tu ne facilites vraiment pas la vie ...

Je t'épargne la liste de toutes les incohérences ...

Ci-joint ton fichier test ...

59test-maried87.xlsm (87.59 Ko)

Merci mais ca ne marche toujours pas. J'ai exactement les mêmes problèmes qu'avant.

Si chez toi ca marche et bien je crois qu'il est tant pour moi de laisser tomber car ca me dépasse.

Les opérateurs utiliseront la bonne vieille méthode pour aller enregistrer leur document.^^

Merci encore de ton temps

Marie,

Si tu as des problèmes avec le bouton ... cela peut être dû au bug de la dernière mise à jour de Microsoft ...

A toutes fins utiles, tu fermes Excel ... tu te rends sur ton disque C: et tu supprimes tous les fichiers qui ont comme extension *.exd

A la réouveture d'Excel ... tu auras probabement une bonne surprise ...

C'est bon !!!

J'ai réussi à relier le bouton à la macro et j'arrive à enregistrer mon document avec le bon nom.

En revanche, lorsque je veux réouvrir le document enregistré, il y a une fenêtre d'alerte qui s'ouvre et qui dit "Le format du fichier que vous tenter d'ouvrir est différent de celui spécifié par l'extension du fichier. Assurer vous que le fichier n'est pas endommagé et qu'il prévient d'une source fiable avant de l'ouvrir. Souhaitez-vous ouvrir le fichier maintenant?"

J'ai répondu "oui" et du coup il me propose de réactiver les macros alors que je souhaitais qu'elles disparaissent.

Serait-il possible de modifier le code afin de garder le nom du fichier mais en laissant la possibilité à l'utilisateur d'enregistrer le document dans le format qu'il souhaite! (fichier excel avec macro, sans macro, PDF...)? Ca sera plus simple de cette manière et ca laissera plus de fexibilité à l'utilisateur.

Merci beaucoup pour ton aide

Marie,

Tout d'abord ... bravo pour avoir surmonté le premier obstacle ...

Maintenant, pour la suite, il faudrait procéder par étapes ...

1) Est-ce-que la macro fonctionne ...???

2) Quel est ton vértiable objectif ...??? car tes commentaires prêtent à confusion...

Alors je vais essayer d'être plus claire ^^

1) La macro fonctionne

2) Mon objectif est d'enregistrer le document sans les macros via vba et de ne pas avoir le message d'alerte lorsque j'ouvre fichier enregistré (voir mail précédent)

Mais si c'est pas possible, la seule solution que je vois c'est de modifier le code que tu m'as donné afin que l'utilisateur choisisse lui même le format du doc.

J'espère avoir été moins confuse

Re,

Ton explication très claire ... confirme ce qui me semblait avoir deviné ...

Je vais essayer d'ètre aussi très clair ...

Si depuis un fichier qui possède des macros ... tu effectues une sauvegarde ...même en changeant le nom du fichier ... techniquement tu effectues une copie du fichier d'origine ... donc avec les macros ...

Est-ce-que cette explication est assez claire ...???

Rechercher des sujets similaires à "code enregistrer macros via macro"