Bonjour
j'ai créé un fichier txt à partir de VBA et je l'ai ouvert avec la la fonction "Shell". Le problème c'est que j'aimerai l'enregistrer et le fermer.
Bonjour
j'ai créé un fichier txt à partir de VBA et je l'ai ouvert avec la la fonction "Shell". Le problème c'est que j'aimerai l'enregistrer et le fermer.
essais avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Workbooks("nom du fichier.txt").Close
je ne peut pas mettre workbooks.close parce que ce n'est pas un classeur excel, c'est un fichier texte. avec le classeur c'est possible de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub fichier() Dim systemeDeFichier As Scripting.FileSystemObject Dim nouveauFichier As Scripting.TextStream Dim texte As String Set systemeDeFichier = New Scripting.FileSystemObject Set nouveauFichier = systemeDeFichier.OpenTextFile(Filename:="chemind'accès", IOMode:=ForWriting, Create:=True) nouveauFichier.Write texte Shell "notepad.exe Chemind'accès", 0 'j'aimerai ensuite à ce niveau l'enregistrer et le fermer. 'sachant que nouveaufichier.close permet de fermer juste l'objet textstrem Set systemeDeFichier = Nothing Set nouveauFichier = Nothing End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part workbook("book").close SaveChanges:=true (fermeture avec enregistrement)
Bonjour,
un peut de code me ferait du bien.
ta fonction Shell exécute quoi notpad?
si tu ouvre ton fichier texte dans un userform ?
Voici le problème.
C'est un document xml qui n'arive pas à s'ouvrir Ce que je fait c'est ca:
je l'ouvre avec notepad, je l'enregistre sans toutefois le modier et je le ferme
et quand je l'ouvre de nouveau il s'exécute.
ce que je veux donc faire par VBA c'est automatiser cette procédure qui :
- ouvre le fichier xml avec notepad
- enregistre le fichier et le ferme
le problème c'est qu'une fois que je l'ouvre avec shell, j'arrive pas à l'enregistrer et à le fermer.
regarde ça
dans le fichier joint:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sub test() UserForm1.OvrirFichier "c:\test\test.txt" End Sub
comment intégrer le fichier txt dans le userform. la propriété OuvrirFichier n'existe pas dans mon module
L’explorateur de projet vb fonctionne comme Windows exploreur.
Tu procède en déplacé collé de mon projet vers le tien.
Tu maintiens le click gauche de la souris sur mon UserForm et tu le déplace vers ton projet.
Pareil pour le module.
En fait j'ai un soucis avec les variables que vous avez définies.
Ce que vous avez défini comme NumFichier, est-ce le nombre de lignes de mon fichier txt? Et Fichier est-ce le répertoire dans lequel se trouve mon fichier?
et que Représente MyString?
NuMfichier c'est le nom virtuel du fichier il est entier long
Ficher est le fichier.
j'ouvre le fichier en lui donnant un Endle (NuMfichier) Fichier virtuel.
http://www.developpez.net/forums/d93...e-precisement/
Code : Sélectionner tout - Visualiser dans une fenêtre à part Open Ficher For Input As #NuMfichier ' Ouvre le fichier en lecture.
Ok.
Et si je ne veux rien écrire dans le dossier, que pourrai-je mettre à la place de MyString?
cette parti ce constante de lire le fichier pas d'écrire.
elle affiche le contenu du fichier dans Me.TextBox1.Text .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Open Ficher For Input As #NuMfichier ' Ouvre le fichier en lecture. Do While Not EOF(NuMfichier) ' Effectue la boucle jusqu'à la fin du fichier. Line Input #NuMfichier, MyString Me.TextBox1.Text = Me.TextBox1.Text & MyString & vbCrLf Loop Close #NuMfichier ' Ferme le fichier.
si tu modifie le contenu de Me.TextBox1.Text quand le UerForm s'affiche.
tu peux enregistre les modification en cliquant sur enregistre.
c'est un nodpad sauf qu'il est intégré à ton projet vb et pas a l’extérieur via Shell.
tu peux donc agir dessus par des instruction VB.
exemple l'enregistrer a son activation et refermer le UserForm:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub UserForm_Activate() CommandButton1_Click End Sub
Merci pour la stratégie, mais mon fichier ne s'ouvre tjrs pas.
Bonjour,
envoie un fichier xml
voici le fichier source, le fichier de sortie(qui ne s'ouvre pas) et le fichier excel contenant ma macro et mes données
Sachant qu'il fallait que j'ouvre le fichier xml avec notepad, que je l'enregistre et que je le ferme pourqu'il puisse s'ouvrir avec le programme par défaut, j'ai écris ce bout de code qui fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim Monid As Long Monid = Shell("notepad.exe chemin d'accès fichier xml", 1) AppActivate Monid ' je met le focus sur l'application notepad 'Combinaison de touches SendKeys "%F", True 'je clique sur Fichier SendKeys "{DOWN 2}", True 'je selectionne enregistrer SendKeys "{ENTER}", True ' j'enregistre SendKeys "%{F4}", True 'Je ferme le chier
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager