IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fermeture de fichier txt via vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut Fermeture de fichier txt via vba
    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.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    essais avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("nom du fichier.txt").Close

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    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
    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
    workbook("book").close SaveChanges:=true (fermeture avec enregistrement)

  4. #4
    Invité
    Invité(e)
    Par défaut
    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 ?
    Images attachées Images attachées  

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    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.

  6. #6
    Invité
    Invité(e)
    Par défaut
    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
    Fichiers attachés Fichiers attachés

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    comment intégrer le fichier txt dans le userform. la propriété OuvrirFichier n'existe pas dans mon module

  8. #8
    Invité
    Invité(e)
    Par défaut
    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.
    Images attachées Images attachées  

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    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?

  10. #10
    Invité
    Invité(e)
    Par défaut
    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.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    Ok.
    Et si je ne veux rien écrire dans le dossier, que pourrai-je mettre à la place de MyString?

  12. #12
    Invité
    Invité(e)
    Par défaut
    cette parti ce constante de lire le fichier pas d'écrire.
    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.
    elle affiche le contenu du fichier dans Me.TextBox1.Text .
    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

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    Merci pour la stratégie, mais mon fichier ne s'ouvre tjrs pas.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    envoie un fichier xml

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut
    voici le fichier source, le fichier de sortie(qui ne s'ouvre pas) et le fichier excel contenant ma macro et mes données
    Fichiers attachés Fichiers attachés

  16. #16
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 73
    Points
    73
    Par défaut Solution
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Import de fichiers txt en VBA avec paramètres automodulabes
    Par guiguisb dans le forum VBA Access
    Réponses: 0
    Dernier message: 10/09/2007, 11h20
  2. Importation fichier txt en VBA
    Par willytito dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/08/2007, 11h22
  3. .vba echo dans un fichier .txt via .bat
    Par ely_j2002 dans le forum VBScript
    Réponses: 5
    Dernier message: 09/03/2007, 15h23
  4. Réponses: 3
    Dernier message: 01/08/2006, 15h18
  5. import fichier TXT via ACCESS
    Par lepierre dans le forum Access
    Réponses: 4
    Dernier message: 03/12/2005, 06h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo