Prendre control d'un process (excel)

Résolu
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 - 11 févr. 2010 à 21:38
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 - 12 févr. 2010 à 18:24
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

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
11 févr. 2010 à 22:22
Salut,

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

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

A+
3
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 févr. 2010 à 18:24
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.
3
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 févr. 2010 à 15:37
Merci bigfish,

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

Merci poto!

---------------------------------------------------------
Julien B.
0
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 févr. 2010 à 15:53
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 févr. 2010 à 16:05
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.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
12 févr. 2010 à 16:30
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+
0
Rejoignez-nous