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

Résolu/Fermé
Esteban13 - 18 juin 2012 à 11:10
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 - 19 juin 2012 à 11:39
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

A voir également:

11 réponses

Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
18 juin 2012 à 11:37
oui, c'est possible avec la fonction
Application.displayAlerts:=false
0
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
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
18 juin 2012 à 12:00
Cela doit venir de la syntaxe je pense. Tu utilises quoi comme langage?
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
18 juin 2012 à 14:04
Essaye:

application.Saved=true
0
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
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
18 juin 2012 à 14:38
Regarde ce lien, tu trouvera peut être une réponse.

http://jacxl.free.fr/cours_xl/cours_xl_jac.html#enreg_oblige

Il ne faut pas utiliser la fonction getsaveasfilename car celle-ci affiche automatiquement cette boite de dialogue.
0
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
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
18 juin 2012 à 17:22
Je regarderai demain, pour t'écrire un bout de code.
0
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
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
19 juin 2012 à 08:45
Open "C:\nomdetonfichier.txt" For Append As #1

'Cellule à copier

Print #1, Cells(1, 1).Value

Close #1


0
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
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
19 juin 2012 à 11:09
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
Autant pour moi, je n'avais pas compris le fonctionnement comme cela.

Bin alors je dit champion !

Merci beaucoup
0
Christof422 Messages postés 867 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
19 juin 2012 à 11:39
dr, bonne journée
0