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 et Excel , TCD, workbooks


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 51
    Points
    51
    Par défaut VB6 et Excel , TCD, workbooks
    Bonjour a tous, bonne fête au lecteur de ce message !

    Voici mon problème, j'utilise le TCD d'Excel pour afficher les résultats de mes requetes sur une BDD

    Au premier coup tout se passe bien !



    Et au moment de le lancer une deuxieme fois, une chouette erreur apparait !



    Ligne qui bug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    Est-ce une erreur de fermeture?

    Voici mon code qui travaille avec Excel:
    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
    40
    41
    42
    43
    44
    45
    46
     
    Public Sub Go()
     
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
     
     
    'Ouverture d'un fichier Excel (TCD)
    Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
     
    '
    Set wbExcel = appExcel.ActiveWorkbook
    Set wsExcel = wbExcel.ActiveSheet
    'ConstruitTCD
    Set wkExcel = appExcel.Workbooks.Open(App.Path & "\rq.xls")
    'Rendre excel visible
     
    appExcel.Visible = True
    appExcel.Run (MacPrincipal)
     
    'Désallocation mémoire
    Set wsExcel = Nothing
    Set wbExcel = Nothing
    Set wkExcel = Nothing
    Set appExcel = Nothing
    'Je supprime le fichier texte utilisé pour éviter tout soucis de conflit
    Kill App.Path & "\rq.txt"
    End Sub
     
    'Pour former le fichier texte que j'envoi
    Public Sub txtRQ(sequence As String)
        Form1.Visible = True
        Form1.Text1.Text = connexionServ.injectNomColonne
        Form1.Text2.Text = sequence
        Open App.Path & "\rq.txt" For Output As #3
            Print #3, connexionServ.injectNomColonne
            Print #3, sequence
        Close #3
    End Sub
    Ailleurs dans mon programme j'utilise KillProcess ("EXCEL.exe") pour être sur que l'utilisateur a correctement refermé Excel avant de le ré-utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'Procédure du site developpez
    Public Function KillProcess(ByVal ProcessName As String) As Boolean
        Dim svc As Object
        Dim sQuery As String
        Dim oproc
        Set svc = GetObject("winmgmts:root\cimv2")
        sQuery = "select * from win32_process where name='" & ProcessName & "'"
        For Each oproc In svc.execquery(sQuery)
            oproc.Terminate
        Next
        Set svc = Nothing
    End Function

  2. #2
    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 038
    Points
    20 038
    Par défaut
    bonjour ...

    déjà pourquoi n'utilise tu pas partout la même collection Workbooks?


    dans ce premier code il s'agit bien de la collection Workbooks de ton application excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set wkExcel = appExcel.Workbooks.Open(App.Path & "\rq.xls")
    'Rendre excel visible


    Mais ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    ce n'est pas précisé ... qu'est ce qui te dis que c'est la bonne collection qui est utilisée ??





    Ailleurs dans mon programme j'utilise KillProcess ("EXCEL.exe") pour être sur que l'utilisateur a correctement refermé Excel avant de le ré-utiliser
    Correctement ..? je suis pas sur que ce soit le bon mot ! ... sauvagement, salement... peu-être

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 51
    Points
    51
    Par défaut
    Effectivement ce n'est pas des plus clair

    Je génère une requete, je la stocke dans un fichier texte que j'ouvre ensuite grâce a Excel.

    (macro commande)
    1.Je copie-colle ces données dans mon fichier rq.xls
    2.Je referme rq.txt
    3.Je traite rq.xls

    Pourquoi avoir décidé de fermer aussi brutalement Excel? Car si l'utilisateur ne le fait pas les macro-commandes bug =D !

    EDIT: le fermer proprement me semble impossible

  4. #4
    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 038
    Points
    20 038
    Par défaut
    et donc tu as essayé de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.OpenText ....
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel.Workbooks.OpenText ..

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 51
    Points
    51
    Par défaut
    Incroyable... je viens de passer 3 jours sur ce problème et tu me la résolut en 15 seconde, tu es un Dieu !
    Il fallait juste comme tu as précisé de rajouter appExcel pour dire sur quel fichier je bosse !

    Je te remercie grandement!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    appExcel.Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    EDIT: On répond en mm temps

  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 038
    Points
    20 038
    Par défaut
    pour marquer le sujet résolu tu as un bouton tout en bas de la discussion

    pas la peine de modifier le titre

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

Discussions similaires

  1. [VB6] Fichier excel en lecture seul et détection fermeture
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2006, 11h48
  2. [VB6]Graphique Excel
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/04/2006, 11h41
  3. [VB6] Fermeture Excel
    Par MonsieurPaul dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 09/01/2006, 14h35
  4. [vb6][activeX][excel] l'activeX ne fonctionne pas
    Par totof39 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/01/2006, 12h32
  5. [VB6]Ouvril excel a une certaine feuille a partir de VB
    Par tomrou59 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/07/2003, 12h17

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