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

VB 6 et antérieur Discussion :

[VB6] Commande pour ouvrir un TXT avec Excel


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 17
    Points
    17
    Par défaut [VB6] Commande pour ouvrir un TXT avec Excel
    Bonjour tout le monde

    Je ne trouve pas la ligne de commande (ou plutôt les paramètres de la commande "ShellExecute") pour lancer Excel avec un document TXT.

    Celui ci étant constitué d'infos avec séparateur ";" le but serait d'arriver dans Excel sur la fenêtre "Assistant Importation de Texte" pour n'avoir plus qu'à choisir le type de séparateur.

    Si quelqu'un peut m'aider
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Salut!
    Et si tu le faisais "à la main" en enregistrant une macro (Fichier...Ouvrir...)... Tu n'aurais plus qu'à regarder et interpréter le code pondu automatiquement.
    A mon humble avis, tu ne seras pas loin de ce que tu cherches à faire.
    Et je ne comprend pas ce que tu veux faire avec ShellExecute.

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut vous deusse

    Citation Envoyé par Megaxel
    Et je ne comprend pas ce que tu veux faire avec ShellExecute.
    C'est parce qu'il code en VB6 et qu'il n'a probablement pas ajouté la référnece à Excel dans son projet.

    J'avoue que moi aussi, histoire de ne pas trop me casser les méninges, j'aurais probablement exploré l'avenue ShelExecute.

    quaife, donne nous un peu de ton code, spécifiquement là où ça plante, et on verra ce qu'on peut faire.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Salut

    Pour vous répondre, enregistrer une macro à partir d'Excel ne me sert à rien. Car comme l'a dit Zazaraignée, je lance Excel à partir de mon appli VB6.

    Et le code ne vous avancera pas plus, car le ShellExecute fonctionne bien avec un document XLS.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RetVal = ShellExecute(hwnd, vbNullString, CheminTableur & NomFichier.XLS, _
             "", vbNullString, 1)
    Fonctionne très bien.

    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RetVal = ShellExecute(hwnd, vbNullString, CheminTableur & NomFichier.TXT, _
             "", vbNullString, 1)
    Ne fonctionne pas.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    J'en conclus que Megaxel n'a pas tout à fait tort... Pour ouvrir un fichier texte depuis Excel, il faut une commande Excel, même si tu l'appelles depuis VB6
    Mais si tu n'as pas trouvé, ce sera après le repas.
    Bon app

    A+

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Quand tu dis "Ne fonctionne pas" cela fait quoi au juste ? et ton code est incomplet on sais pas ce qu'il y as dans "CheminTableur"

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par bbil
    Quand tu dis "Ne fonctionne pas" cela fait quoi au juste ?
    La ligne s'exécute sans erreur, mais Excel ne se lance pas .
    Alors que si je mets un fichier XLS, Excel démarre correctement.

    Citation Envoyé par bbil
    ton code est incomplet on sais pas ce qu'il y as dans "CheminTableur"
    CheminTableur contient le chemin de l'exécutable d'Excel.

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Sous VBA, la syntaxe pour ouvrir un fichier texte avec pt-vigules pour séparateurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Workbooks.OpenText FileName:="C:\MVS.txt", Origin:=xlWindows, StartRow:=1 _
            , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True
    Tu instancies l'appli avant de l'appeler et là, tu peux ouvrir ton fichier txt.
    Un spécialiste VB te donnera mieux que moi la syntaxe
    Si tu ne trouves personnes, je verrai ça ce soir (pas VB ici)
    A+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Salut

    En ce qui me concerne, j'ai toujours rien trouvé
    Si demain soir, personne n'a pu m'aider, je mettrai le code que j'ai utilisé pour contourner mon problème
    (Ca pourra peut être servir !!!)

    Mais dans ce cas là, il faudra créer un nouveau tag "Semi résolu"

  10. #10
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Avant de chercher à le faire par programme, essaye de le faire dans la console DOS.

    Je viens d'essayer et ça fonctionne très bien dans les 2 cas (.xls et .txt).

    Il faut toutefois savoir que dès qu'il y a un espace dans une chaîne, il faut entourer cette chaîne de guillemets.

    Edit --> Ce qui donne, pour un de mes essais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\>"C:\Program Files\Microsoft Office\OFFICE11\excel.exe" "D:\PRG\codes prevention.xls"
    Fonctionne aussi bien avec un .xls qu'un .txt.

    Je suppose donc que le fichier texte que tu appelles doit contenir un ou des espaces dans son nom et/ou chemin d'accès.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Effectivement en DOS cela fonctionne (même s'il ne me propose pas de prendre en compte les séparateurs) mais cela ne fonctionne pas si je fais un ShellExecute avec la même syntaxe

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu as essayé avec shell (tout court..)

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Hello tout le monde

    Alors avec un peu de retard ...

    La commande Shell fonctionne bien. Excel ouvre bien le fichier TXT, mais il ne tient pas compte du séparateur décimal.
    Si l'utilisateur veut classer ses données, il lui suffit de sélectionner la première colonne et de cliquer sur "Données" "Convertir". Je n'ai pas cherché plus loin, car ceci est amplement suffisant pour nos utilisateurs

    Sinon, j'avais trouvé comment alimenté un classeur avec les infos contenues dans un fichier TXT. Je le mets car cela pourra peut être intéresser quelqu'un

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
        Dim Appli As New Application
        Dim Ligne As String
        Dim LigneExcel As Integer
        Dim PointVirgule1, PointVirgule2, PointVirgule3 As Integer
        Dim Long1, Long2, Long3 As Integer
        Dim Data1, Data2, Data3 As String
     
        Screen.MousePointer = vbArrowHourglass
        Open NomFichTXT For Input As #1
     
        'Créer un nouveau classeur EXCEL initialisé à la ligne 1
        Appli.Workbooks.Add.Activate
        LigneExcel = 1
     
        'Inscrire le contenu du fichier texte dans la feuille 1 du classeur EXCEL
        Do While EOF(1) = False
            Line Input #1, Ligne
     
            'Rechercher la position des points virgules
            PointVirgule1 = InStr(1, Ligne, ";")
            PointVirgule2 = InStr(PointVirgule1 + 1, Ligne, ";")
            PointVirgule3 = InStr(PointVirgule2 + 1, Ligne, ";")
     
            'Affecter les données
            Data1 = "'" & Mid(Ligne, 1, PointVirgule1 - 1)
            Data2 = "'" & Mid(Ligne, PointVirgule1 + 1, (PointVirgule2 - PointVirgule1 - 1))
            Data3 = "'" & Mid(Ligne, PointVirgule2 + 1, (PointVirgule3 - PointVirgule2 - 1))
     
            'Affecter les Data dans les cellules de la feuille 1
            Appli.ActiveWorkbook.Worksheets("Feuil1").Cells(LigneExcel, 1) = Data1
            Appli.ActiveWorkbook.Worksheets("Feuil1").Cells(LigneExcel, 2) = Data2
            Appli.ActiveWorkbook.Worksheets("Feuil1").Cells(LigneExcel, 3) = Data3
            LigneExcel = LigneExcel + 1
        Loop
        Close #1
     
        'Rendre visible EXCEL
        Appli.Visible = True

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

Discussions similaires

  1. ouvrir fichier .txt dans excel avec des champs texte
    Par rom05 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/05/2008, 18h27
  2. ouvrir lien .txt avec bloc-notes
    Par Australia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 06/07/2006, 14h47
  3. ouverture de fichier txt avec excel
    Par blondelle dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/05/2006, 11h33
  4. [VB6]Aide pour mettre format date avec inputbox
    Par Geliwy77 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 28/01/2006, 20h13
  5. Commande pour analyser un fichier avec lex et yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 13/09/2005, 19h12

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