Crée un fichier .txt sans fenêtre à valider

Résolu
Esteban13 -  
Christof422 Messages postés 990 Statut Membre -
Bonjour,

Je suis débutant, et bricoleurs.

Mon but est de crée l'arborescence (si elle n'existe pas) et de placer dedans plusieurs fichier .txt (vide) pour servir de modèle pour des vrai fichiers.

Les noms et les chemins sont prédéfinit par une codification sur une feuille de calcul Open Office.

J'arrive à faire cela, mais suivant la finalité du fichier à créer, je peux avoir jusqu'à 5 fichiers à créer (donc 5 fenêtres d'affilé à valider).

Je sollicite votre aide pour ne pas avoir l'affichage de la boite de dialogue "Enregistrer sous" et donc la validation du nom à effectuer par le bouton "Enregistrer".

Si ce n'est pas possible, il serait bien de crée au pire un seul fichier et de le copier/renommé (dans des répertoires de niveau différents), mais je n'arrive pas à le faire.

Merci

11 réponses

  1. Christof422 Messages postés 990 Statut Membre 213
     
    oui, c'est possible avec la fonction
    Application.displayAlerts:=false
    0
  2. Esteban13
     
    Petites précisions:
    j'utilise LibreOffice (que je considère peut-être à tort comme identique à OOO)

    j'ai mis le code avant Application.GetSaveAsFilename

    mais la fenêtre de VB LibreOffice 3.5 me renvoie
    ************************
    * Erreur de syntaxe BASIC. *
    * Symbole inattendu::=. *
    ************************

    et me surligne : displayAlerts
    0
  3. Christof422 Messages postés 990 Statut Membre 213
     
    Cela doit venir de la syntaxe je pense. Tu utilises quoi comme langage?
    0
  4. Esteban13
     
    J'utilise l'éditeur de LibreOffice

    Au début du fichier, (avant Sub) j'ai ajouté la ligne Option VBASupport 1
    (par rapport à l'utilisation du code récupéré d'excel par endroit et je ne me rappel plus pour quelle fonction)

    Si je l'écris comme cela: Application.displayAlerts=false
    il ne m'indique pas d'erreur, mis j'ai quand même la fenêtre d'enregistrement qui apparait
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Christof422 Messages postés 990 Statut Membre 213
     
    Essaye:

    application.Saved=true
    0
  7. Esteban13
     
    Alors, placé avant l'enregistrement, cela ne change rien.
    Si je le place à la fin de la commande GetSave, je n'ai plus de fenêtre, mais il ne crée plus les fichiers.

    voici un bout du code
    Dim fFilename As String
    Dim folder As String, path As String, nommage As String
    Dim path_Index As String
    
    With Worksheets("Macro")
        C = Range("A2:A6")
    End With
    'creation Index
    folder = Range("c_Index").Value
    ' nom fichier
    nommage = Range("n_Index").Value
    path = folder+nommage
    MkDir (folder)
    application.Saved=true '(sans effet)
    fFilename = _
    Application.GetSaveAsFilename(InitialFileName:=path, _
    fileFilter:="Text Files (*.txt), *.txt",application.Saved=true)
    Open fFilename For Output As #1
        Close #1
    
    0
  8. Esteban13
     
    Je crois que c'est là que s'arrête ma compréhension.

    Si j'ai bien compris, cette macro fonctionne avec le bouton enregistrer.
    -Si le fichier n'est pas dans c:\mes documents, il ouvre la boite de dialogue "enregistrer sous" dans c:\mes documents.
    -Si le fichier est déjà dans le bon répertoire, il enregistre sans rien dire (ce qui est le fonctionnement normal)

    En tout cas, je ne suis pas plus avancé car je ne sais pas l'appliquer à mon export.

    Peut-être qu'il me faut me rabattre sur ma deuxième idée de n'en créer qu'un seul et de le copier/renommé.
    Mais je ne trouve pas comment faire ces manip.... :-(
    0
    1. Christof422 Messages postés 990 Statut Membre 213
       
      Je regarderai demain, pour t'écrire un bout de code.
      0
    2. Esteban13
       
      Ok, merci bien (mais pas forcément demain)
      Et peut-être qu'entre temps, quelqu'un d'autre qui passe aura une autre idée.
      0
  9. Christof422 Messages postés 990 Statut Membre 213
     
    Open "C:\nomdetonfichier.txt" For Append As #1
    
    'Cellule à copier
    
    Print #1, Cells(1, 1).Value
    
    Close #1


    0
  10. Esteban13
     
    Ok, super

    Merci Christof pour ta réactivité

    Je n'ai plus qu'une seule fenêtre sur cinq à valider.

    Ceci dit, si quelqu'un d'autre à la solution, çà m'intéresse encore.

    J'attendrais un peu avant de marquer comme résolu.
    0
    1. Christof422 Messages postés 990 Statut Membre 213
       
      Normalement tu devrais en avoir 0...

      Ils ne faut plus utiliser le getsaveasfilename (car c'est lui qui t'affiche la fenêtre) mais adapter ma formule à ton cas.
      0
  11. Esteban13
     
    Autant pour moi, je n'avais pas compris le fonctionnement comme cela.

    Bin alors je dit champion !

    Merci beaucoup
    0
    1. Christof422 Messages postés 990 Statut Membre 213
       
      dr, bonne journée
      0