Ouverture d'une fenêtre enregistrement / erreur lors de l'enregistrement?

Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 28 juil. 2009 à 10:04
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 29 juil. 2009 à 10:52
Bonjour,

Suite à cette macro qui modifie une partie de mon fichier je souhaiterai qu'une fenêtre "Enregistrer sous" s'ouvre automatiquement, ce qui se fait...
Le problème c'est qu'après je rentre le nom sous lequel je souhaite enregistrer je clique sur "enregistrer" mais rien ne se passe: la fenêtre se ferme et mon fichier n'est enregistré nulle part??

Sub Chgmt_Année()

Dim i As Integer
Dim j As Integer

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 Sub

Merci pour votre aide

Roberto

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 juil. 2009 à 13:53
Salut
FileDialog ne s'occupe pas de sauver ton fichier, mais seulement de proposer une interface permettant de saisir le chemin et le nom du fichier.
A toi ensuite de lire le chemin et le nom pour exécuter la sauvegarde :
With Application.FileDialog(msoFileDialogSaveAs)
    If .Show = -1 Then
        SaveAs .SelectedItems(1)
    End If
End With


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
28 juil. 2009 à 14:54
Bonjour Jack,

Merci pour la réponse.

- ya un truc qui cloche; on me demande de définir SaveAS. alors si je le met en string ou en integer on me dit "qualificateur incorrect"?

- il faut que je mette un truc à la place du (1) ou ya pas besoin?

Roberto
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 juil. 2009 à 23:56
SaveAs fait partie des instructions VBA, bizarre qu'il ne la reconnaisse pas.
Tu es sous Excel, Word, ... ?
Non, puisque, lors d'un Save, tu es sensé ne sélectionner (ou écrire) qu'un seul nom de fichier, le premier élément de Item (qui est obligatoirement un 'tableau') est le nom choisi, avec son chemin.
Ce 'tableau' sert en cas de multi-sélection (voir exemple de l'aide)
Le test "Show = -1" car Show renverra 0 si tu as annulé

Si tu ne t'en sorts pas avec le FileDialog, tu peux te rabattre sur le CommonDialog de VB6 : contrôle ActiveX (présent dans n'importe quel XP) à placer sur un UserForm

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
29 juil. 2009 à 10:52
Merci,

Pour info j'ai fais comme suit

SendKeys ("Nom_fichier")
Application.Dialogs(xlDialogSaveAs).Show

comme ça l'utilisateur à le choix d'enregistrer ou non et sous le nom qu'il souhaite

Roberto RIQUELME
0
Rejoignez-nous