Enregistrement sous un autre nom

Résolu
flololf Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

Alors voila je suis en train de mettre en place une macro VBA qui permet la création d'un classeur Excel à partir d'un autre classeur.
A la fin de la macro, cette dernière enregistre une copie dans un répertoire sous un nom prenant en compte la date du jour.
Si il existe dans le répertoire indiqué un fichier avec le même nom (enregistré le même jour) Excel ouvre tout seul une fenêtre demandant à l'utilisateur s'il souhaite remplacer le fichier existant (utilisation de la commande "Application.DisplayAlerts = True"), ce qui se fait si on clique sur "Oui".
Jusque là je me débrouille sans trop de problème.

Mon problème c'est si on clique sur "Non", il plante puisque je ne sais pas comment prévoir ce cas.
J'aimerai donc que si l'utilisateur clique sur "Non", la fenêtre de l'explorateur "Enregistrer sous" apparaisse lui permettant ainsi de renommer son fichier comme il le souhaite et même où il le souhaite.
A savoir que la solution consistant à indiquer l'heure d'enregistrement dans le nom du fichier ne me convient pas dans ce cas.

Au final je ne sais pas :
- comment faire comprendre à la macro que si on clique sur "Non" il doit faire apparaître cette fenêtre
- quel est le code nécessaire pour l'ouverture de cette fenêtre

Si quelqu'un pouvait m'aider ce serait avec joie
Ci joint la fin de mon code

Sub Save()
...
Dim fichier
fichier = ActiveWorkbook.Path & "\" & Format(Date, "yyyymmdd") & " - Nom_du_fichier"
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs fichier
End Sub


Merci d'avance pour vos conseils ou solutions et bonne fin de journée à vous

Florent

2 réponses

tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
Salut,

Je pense que vous pouvez faire simplement en MsgBox:

Vous savez tres bien que vous pouvez afficher votre message dans un MsgBox et mettre les bouttons Ok et Annuler, dans ce cas le MsgBox retourne une valeur, puis un if...else...endif

Dans le if Ok vous savez ce que vous devez mettre, et dans le non: il est possible d'afficher le Save as... donc je pense avec un peu de concentration vous y arriverez.

Bon Courage :)
0
flololf Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Justement je ne vois pas bien comment récupérer la réponse de l'utilisateur à une MsgBox sur laquelle je n'ai pas la maiin
Et quand bien même je saurai la récupérer je ne sais pas comment faire afficher l'explorateur Windows permettant d'"Enregister sous"
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
Pour la première partie:

Sub test()
    Reponse = MsgBox("test", vbOKCancel, "test")
    
    If (Reponse = vbOK) Then
        MsgBox "ok"
    Else
        MsgBox "Cancel"
    End If
    
End Sub


Pour la deuxième, j'ai jamais fait un truc Pareil (en générale je suis sous Access!)
0
flololf Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup
Je vais voir ce que je peux faire pour le reste
0
flololf Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > flololf Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Pour ceux que ça peut intéresser, j'ai trouver, il s'agit de la commande Application.Dialogs(xlDialogSaveAs).Show

Et en tapant SendKeys (Nom_fichier) avant, le Nom_fichier sera inscrit par défaut dans la boite de dialogue
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122 > flololf Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour l'info :)

BonCourage :)
0