flololf
Messages postés6Date d'inscriptionmercredi 23 avril 2008StatutMembreDernière intervention23 avril 2008
-
23 avril 2008 à 15:03
sauvageon93
Messages postés12Date d'inscriptiondimanche 20 mars 2005StatutMembreDernière intervention24 juin 2011
-
8 févr. 2010 à 17:45
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
flololf
Messages postés6Date d'inscriptionmercredi 23 avril 2008StatutMembreDernière intervention23 avril 2008 23 avril 2008 à 18:01
Merci beaucoup
Par contre Application.FileDialog(msoFileDialogSaveAs) ne fonctionnait pas chez moi (VBA sous Excel donc) mais Application.Dialogs(xlDialogSaveAs).Show fonctionne lui
Et si on écrit
SendKeys (Nom_fichier)
Application.Dialogs(xlDialogSaveAs).Show
Il y aura Nom_fichier prédéfini dans la boite de dialogue
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 août 2009 27 juil. 2009 à 16:04
Bonjour,
A travers le code ci-dessous, je souhaite modifier un fichier puis pour finir simplement ouvrir la fenêtre enregistrer sous (car la modification du fichier entraîne la perte d'informations du fichier précédent). Le choix du nouveau nom de fichier est libre.
Le problème c'est quand je rentre le nom du fichier et je clique sur enregistrer, ya rien qui s'enregistre nulle part.
Je ne trouve pas l'erreur!!
Sub Chgmt_Année()
'
Dim Réponse As Integer
Dim Chgmt As Integer
Dim i As Integer
Dim j As Integer
Chgmt = MsgBox("Êtes-vous sûr de vouloir créer le fichier pour l'année suivante?", vbQuestion + vbYesNo, "Changement d'année")
If Chgmt = 6 Then
If Réponse = 7 Then
Columns("P:P").Select
Selection.ClearContents
End If
i = 4
Do While i < 300
If Cells(i, 21) = "OUI" Then
Cells(i, 20).Select
Selection.Copy
Cells(i, 11).Select
ActiveSheet.Paste
End If
i = i + 1
Loop
Columns("U:U").Select
Selection.ClearContents
For j = 4 To 101
Cells(j, 10).Select
ActiveCell.FormulaR1C1 = _
"=IF(OR(RC[1]=""fin de vie"",RC[-2]=""DMS""),0,RC[-2])"
Next j
Application.FileDialog(msoFileDialogSaveAs).Show
End If
End Sub
Merci
Roberto
Vous n’avez pas trouvé la réponse que vous recherchez ?
sauvageon93
Messages postés12Date d'inscriptiondimanche 20 mars 2005StatutMembreDernière intervention24 juin 2011 8 févr. 2010 à 17:45
Bonjour,
oui j'ai lu mais cela ne répondait pas à mon souci car la boite de dialogue s'affichait mais n'enregistrait rien.
Du coup je suis passé par cette manipulation :
' ########## Enregistrer sous le PPT ##############################
' #################################################################
Dim dlgSaveAs As FileDialog
Set dlgSaveAs = pptApp.FileDialog(msoFileDialogSaveAs)
If dlgSaveAs.Show = -1 Then
pptPres.SaveAs dlgSaveAs.SelectedItems.Item(1)
End If
PS : Niveau syntaxe et organisation il doit y avoir mieux mais ça marche donc pour le moment ça me convient. En espérant que cela puisse servir à d'autres personnes