VBA - GetSaveAsFilename

Résolu/Fermé
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 - Modifié par Submin le 12/03/2012 à 15:03
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 - 12 mars 2012 à 17:32
Bonjour,

J'effectue une macro VBA dans le cadre de mon travail.

Le but est en fait d'enregistrer des documents pour chaques feuilles excels ouverte.

Du coup j'effectue un count pour savoir le nombre de feuille puis une boucle for

for i= 1 to nombredefeuille 

        fileNameSmall = "fichier & i & ".txt" 
        fileName = Application.GetSaveAsFilename(fileNameSmall, "Fichier texte (*.txt), *.txt") 
        If fileName <> False Then ActiveWorkbook.SaveAs fileName:=fileName, FileFormat:=xlText, CreateBackup:=False 
         
        Workbooks(fileNameSmall).Close savechanges:=False 

next i 





Le problème est quand j'ai une 50aine de feuille... le cadre de sauvegarde se réouvre à chaque fois et et je doit cliquer sur enregistrer.
J'aimerais que ce cadre de sauvegarde ne s'affiche pas en fait et que ça enregistre directement.
C'est la que j'ai besoin de vous car je n'arrive pas a trouver la petite partie de code qui me permettrait soit de permettre l'enregistrement automatique soit de simuler un appuie sur la touche "entrée"


Je vous remercie d'avance, j'espere avoir été assez clair sur mon problème sinon n'hésitez pas a me demander, je répondrais rapidement


3 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
12 mars 2012 à 17:08
Bonjour,

Sub test()
Application.DisplayAlerts = True

Sheets(1).Select
fileNameSmall = "fichier1.txt"
Filename = Application.GetSaveAsFilename(fileNameSmall, "Fichier texte (*.txt), *.txt")
Chemin = Left(Filename, Len(Filename) - 12)
Application.DisplayAlerts = False
If Filename <> False Then
ActiveWorkbook.SaveAs Filename:=Filename, FileFormat:=xlText, CreateBackup:=False
End If
For i = 2 To nombredefeuille
Sheets(i).Select
fileNameSmall = "fichier" & i & ".txt"
Filename = Chemin & fileNameSmall
ActiveWorkbook.SaveAs Filename:=Filename, FileFormat:=xlText, CreateBackup:=False
Next i
Application.DisplayAlerts = True
End Sub


C'est peut-etre un peu capilotracter, mais cela marche. A vous d'adapter suivant votre besoin

Bonne suite
1
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
12 mars 2012 à 17:32
J'ai juste envi de dire un grand merci....

Tu as résolu un énorme problème de mon programme... Je l'ai bien evidement adapté ne t'inquiete pas car 'javais deja moi même donner un exemple simplifier pour bien comprendre mon problème.

c'est principalement cette petite manip qui m'a rendu heureux :
Chemin = Left(Filename, Len(Filename) - 12)
Filename = Chemin & fileNameSmall

Je n'y avait pas du tout penser et ton oeil neuf m'a aidé.

Maintenant plus 3 autres erreurs à résoudre et j'aurais entièrement fini mon programme, je vais continuer les recherches

Merci encore
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
12 mars 2012 à 15:05
Bonjour,

voir l'avant dernier point ici.

Cordialement.
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
12 mars 2012 à 15:14
Cela ne marche pas.

J'ai deja utilisé le Application.DisplayAlerts et cela marche pour ce qui est validation de suppression et autre mais pas pour le GetSaveAsFilename

C'est d'ailleur la le problème... je connaissais cette commande mais elle est inutile dans ce cas de figure :s
0