Pointer une feuille excel dans une autre instance excel

chris_tls

XLDnaute Nouveau
Bonjour,

Je souhaiterais pointer vers une feuille d'une autre instance Excel ouverte.

J'ai un premier classeur "sommaire.xls". J'ai des liens vers une 2eme classeur "test.xls". La première fois lorsque le classeur n'est pas ouvert, j'arrive à l'ouvrir et à pointer sur la bonne feuille. Mes difficultés sont quand "test.xls" est ouvert et que depuis "sommaire.xls" j'essaye d'activer une feuille ... je ne sais pas comment faire ...

Merci beaucoup pour votre aide, très bonne journée.
 

tototiti2008

XLDnaute Barbatruc
Re : Pointer une feuille excel dans une autre instance excel

Bonjour chris tls,

une autre instance Excel, signifie que sur le même poste tu as 2 Excel ouverts, l'un avec le classeur sommaire, l'autre avec le classeur test.

C'est bien ça ?
si oui, pourquoi 2 instances Excel ?
 

chris_tls

XLDnaute Nouveau
Re : Pointer une feuille excel dans une autre instance excel

Bonjour tototiti2008,

C'est tout a fat ça, nous avons 2 excel ouvert sur le même poste.

En fait, le pourquoi, c'est parce que nous utilisons 2 écrans donc nous passons une instances d'excel sur un et l'autre sur l'autre. Mais ça ne facilite pas la prog ...

Merci pour votre aide.
 

tototiti2008

XLDnaute Barbatruc
Re : Pointer une feuille excel dans une autre instance excel

non, en effet, ça ne simplifie vraiment pas les choses.

Si c'est excel qui crée les instances, on peut les affecter à des variables Application et on peut essayer de travailler comme ça. Mais si les instances existent, je ne sais pas.

tout ce que je peux donner, c'est un code dans sommaire.xls qui active la fenêtre du classeur test.xls. je ne suis pas arrivé à activer une feuille après ça... :

AppActivate "test.xls"
 

chris_tls

XLDnaute Nouveau
Re : Pointer une feuille excel dans une autre instance excel

Merci tototiti2008 pour ton aide,

C'est depuis le classeur "sommaire.xls" que l'on ouvre "test.xls" comme ceci :
(bout de code trouvé sur le net)

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")
appExcel.Visible = True
Application.CutCopyMode = False
'Selection du chemin
Set wbExcel = appExcel.Workbooks.Open(ActiveWorkbook.Path & "\CC - Contrôle des comptes\test.xls")
wbExcel.Sheets(S2).Select

Notre soucis est donc que si le classeur est déjà ouvert on ne sait plus comment faire ...

Merci beaucoup.
 

tototiti2008

XLDnaute Barbatruc
Re : Pointer une feuille excel dans une autre instance excel

Si le classeur est déjà ouvert dans une autre instance, c'est ça ? il s'ouvre en lecture seule dans ce cas ? (ou il met le message demandant s'il faut l'ouvrir en lecture seule).
Ou bien alors s'il est déjà ouvert par un autre utilisateur ?
 

chris_tls

XLDnaute Nouveau
Re : Pointer une feuille excel dans une autre instance excel

En fait la premiere fois qu'on utilise la macro depuis "sommaire.xls" on ouvre "test.xls" sur la feuille que l'on veut. Nous l'avons mis dans la variable "S2".

Maintenant on aimerait avec la même macro et une nouvelle valeur dans S2 pointer sur une autre feuille du classeur "test.xls".

Je sais pas si je suis très clair, désolé.

Merci.
 

tototiti2008

XLDnaute Barbatruc
Re : Pointer une feuille excel dans une autre instance excel

Le problème est que si ta première macro s'est arrêtée, la valeur de ta variable appExcel est vidée.
Par conséquent, même si cette application existe encore, tu n'arriveras pas (en tout cas je ne sais pas faire) à réaffecter cette instance Excel déjà ouverte à ta variable.

Pour savoir si elle existe avec test.xls ouvert est possible : c'est simple, si la ligne :

AppActivate "test.xls"

entraine une erreur, c'est qu'elle n'existe plus. Par contre si elle existe je suis incapable de la contrôler...
 

tototiti2008

XLDnaute Barbatruc
Re : Pointer une feuille excel dans une autre instance excel

Une idée qui me vient, peut-être : déclarer la variable appExcel en Public ou en Static, de manière à ce qu'il retienne à quoi elle correspond.
Je pense qu'il y a plus de chance que ça fonctionne que le AppActivate...
 

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista