VBA - GetSaveAsFilename

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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. 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
  2. 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