Prendre control d'un process (excel) [Résolu]

Signaler
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
-
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
-
Salut tout le monde,

Je cherche comment prendre contrôle sur un processus.

Disons que j'ai un excel ouvert, et que je lance mon application vb6 et que par son processId ou autre moyen je veuille prendre le contrôle de ce processus.

L'idéal serait que je puisse l'utiliser dans un objet.

En bref je cherche un équivalent à :
Dim xlApp as Excel.Application
Set xlApp = CreateObject("Excel.Application")

Ne me dite pas que je n'ai pas chercher parce que j'ai bel et bien chercher mais tout les threads que je trouve me disent comment terminer un processus, ce n'est pas ce que je cherche....


En espérant que quelqu'un puisse éclairer ma lanterne.

Bonne journée!


---------------------------------------------------------
Julien B.

6 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

On Local Error Resume Next
Set ExcelAppli = GetObject(, "Excel.Application")

Pour plus d'info cette source de l'exelent Renfield

A+
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Bon j'ai trouver chaussure à mon pied.

Voici ce que je fais.

Copy_Err_Handler:
    Dim tempXL As Object
    Set tempXL = GetObject(tempFile) ', "Excel.Application")
    If tempXL.Application.Visible = False Then
        tempXL.Application.Quit
    End If
    Err.Clear
    GoTo copy


Merci de m'avoir mis sur la piste bigfish

---------------------------------------------------------
Julien B.
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Merci bigfish,

Très intéressant je connaissais pas cette fonction.

Merci poto!

---------------------------------------------------------
Julien B.
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Bon ca y etais presque... mais disons que j'ai trois fichier Excel d'ouvert par defaut il va me chercher le premier ouvert enfin je crois ... y a-t-il un moyen de prendre un autre fichier... ?


---------------------------------------------------------
Julien B.
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Bon selon ce que j'ai compris, si je met dans le premier paramètre le chemain d'accès au fichier Excel que je cherche... c'est supposer fonctionner tel que je désir le faire, cependant quand je le fais... il ne trouve pas l'objet.

Voici mon code
Copy_Err_Handler:
    Dim tempXL As Excel.Application
    Dim founded As Boolean
    Set tempXL = GetObject(tempFile)
    If tempXL.Workbooks(1).FullName = tempFile Then
        tempXL.Visible = True
        founded = True
        'tempXL.Quit
    End If
    GoTo copy


Est-ce que je suis dans le champs, ou est-ce que cette fonction accepte les repertoires réseau du genre \\server\files\temp\myXL.xls

Bon je continue à chercher...

---------------------------------------------------------
Julien B.
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

oula oulaaaaaaaa ! Attention c'est l'application que tu recupperes via GetObject pas le les fichiers ouverts dans cette application !

donc :

Copy_Err_Handler:
    Dim tempXL As Excel.Application
    Dim founded As Boolean
    Set tempXL = GetObject(,"Excel.Application") '<--- pour excel tu ne peux pas faire autrement
    'pour savoir si tempfile est ouvert cette appli XL tu peux faire comme ceci
    On local Error Resume Next
    tempXL.tempfile.Ativate 'ici on tente d'activer le fichier
    If err = 0 Then 'si pas d'erreur c'est que le fichier est bien la
        tempXL.Visible = True
        founded = True
        'tempXL.Quit
    Else
       MsgBox "le fichier " & tempfile & " n'est pas ouvert ! ", vbexclamation
    End If


A+