VBA Excel - ouvrir et afficher un fichier .txt existant

Résolu
TonyLucky2025 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 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

A voir également:

2 réponses

JCB40 Messages postés 3015 Date d'inscription   Statut Membre Dernière intervention   463
 

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
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