VBA Excel - ouvrir et afficher un fichier .txt existant

Résolu
TonyLucky2025 Messages postés 3 Statut Membre -  
 TonyLucky2025 -

Bonjour à tous,

Je tourne en rond depuis hier et bute sur un problème apparemment simple.

J'arrive à créer un fichier texte et à l'afficher en premier plan, à partir d'un USF.

Par contre, quand je rouvre ce fichier par macro pour le modifier, il s'ouvre bien mais ne s'affiche pas à l'écran. Il faut que je clique dans la barre des tâches pour l'afficher.

J'ai testé plein de solutions en fouinant sur le net, mais je n'ai pas réussi.

Si quelqu'un pouvait m'aider,

Merci par avance,

Voici mon code

'chemin du dossier
MonChemin = ActiveWorkbook.Path & "\TOTO\" & UCase(Me.TBX_3.Value)  & ")\"
MonChemin2 = MonChemin & "NOTES - " & UCase(Me.TBX_3.Value) & ".txt"
  
    If Len(Dir(MonChemin2)) = 0 Then 'crée le fichier s'il n'existe pas
        Open MonChemin2 For Output As #1
        'écrit une 'en-tête'
        Print #1, Me.TBX_2.Value & " " & UCase(Me.TBX_3.Value)
        Print #1, "================================"
        Close
             Set ts = CreateObject("Shell.Application")
             ts.Open (MonChemin2)
        Else

            'ouvre le fichier, mais ne l'affiche pas à l'écran
            Shell "notepad.exe " & MonChemin2
        End If


Windows / Firefox 142.0

2 réponses

  1. JCB40 Messages postés 3069 Date d'inscription   Statut Membre Dernière intervention   479
     

    Bonjour

    Dim MonChemin As String
    Dim MonChemin2 As String
    Dim notepad As Object
    
    'chemin du dossier
    MonChemin = ActiveWorkbook.Path & "\TOTO\" & UCase(Me.TBX_3.Value) & "\"
    MonChemin2 = MonChemin & "NOTES - " & UCase(Me.TBX_3.Value) & ".txt"
    
    If Len(Dir(MonChemin2)) = 0 Then 'crée le fichier s'il n'existe pas
        Open MonChemin2 For Output As #1
        'écrit une 'en-tête'
        Print #1, Me.TBX_2.Value & " " & UCase(Me.TBX_3.Value)
        Print #1, "================================"
        Close #1
        Set ts = CreateObject("Shell.Application")
        ts.Open (MonChemin2)
    Else
        ' Ouvre le fichier avec Notepad et le rend actif
        Set notepad = CreateObject("WScript.Shell")
        notepad.Run "notepad.exe " & MonChemin2, 1, True
    End If

    A tester


    0
  2. TonyLucky2025
     

    Super. Merci beaucoup. Je n'étais pas loin de la solution. Je n'avais juste pas trouvé "WScript.Shell" !

    Je vais pouvoir avancer sur un autre sujet, maintenant...

    Voici le code corrigé :

    'chemin du dossier
    MonChemin = ActiveWorkbook.Path & "\"
    MonChemin2 = MonChemin & "NOTES - toto.txt"
    
        If Len(Dir(MonChemin2)) = 0 Then
            'crée le fichier s'il n'existe pas
            Open MonChemin2 For Output As #1
                'écrit une 'en-tête'
                Print #1, "toto"
                Print #1, "================================"
                Close #1
                    Set ts = CreateObject("Shell.Application")
                    ts.Open (MonChemin2)
        Else
            ' Ouvre le fichier avec Notepad et le rend actif
            Set notepad = CreateObject("WScript.Shell")
            notepad.Run "notepad.exe " & MonChemin2, 1, True
        End If
    

    Bon après-midi.

    0