Détecter le programme d'ouverture

cs_jonathanm44 Messages postés 13 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 28 février 2012 - 10 mai 2011 à 15:07
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 4 oct. 2011 à 17:36
Bonjour à tout le forum,

Voila, je suis devant un problème et j'en appel à votre sagesse :
J'ai un fichier excel ABC en lien avec un fichier excel publier en html. Lorsque j'ouvre mon fichier html (avec internet explorer) et que je clique sur le lien cela ouvre mon fichier excel ABC avec internet explorer (jusque la tout va bien).
Je voulais savoir si l'on pouvais par macro détecter le type de programme à l'ouverture (soit internet explorer soit excel) pour par exemple qu'il me cache les onglets quand le fichier excel ABC est ouvert avec internet explorer et qu'il me les affiches quand j'ouvre mon fichier ABC avec Excel

Merci d'avance

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 mai 2011 à 18:27
Salut

Premier réflexe que j'aurai, serait de regarder autour de l'objet Application. Peut-être y a t-il un Application.Name ou autre indice ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_jonathanm44 Messages postés 13 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 28 février 2012
11 mai 2011 à 07:55
Bonjour jack,

Merci de ta réponse, je vais regarder l'objet application.
Si je trouve, je ne manquerais de faire partager la solution

jonathanm44
0
cs_jonathanm44 Messages postés 13 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 28 février 2012
11 mai 2011 à 09:04
Re,

Bon j'ai recherché mais la je piétine !!!
J'ai un problème de syntaxe avec "Application.Name" je ne sait pas comment faire.

Voici le code :
Private Sub Workbook_Open()
If Application.Name = InternetExplorer Then
With Application
.DisplayFullScreen = True
.DisplayFormulaBar = False
.DisplayStatusBar = False
.DisplayWorkbookTabs = False
End With
Else
End If
End Sub


Jonathanm44
0
MathieuAP Messages postés 12 Date d'inscription mardi 10 mai 2011 Statut Membre Dernière intervention 11 mai 2011
11 mai 2011 à 10:54
Salut,

Pour connaitre le programme utilisé, à ta place je regarderais les extensions.

ex :
If (extension = .xlsx)
then
'Le programme utilisera exell
elseif (extension = .xxx)
then
'Le programme utilisera internet explorer
end if

Bon courage.
0

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

Posez votre question
cs_jonathanm44 Messages postés 13 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 28 février 2012
11 mai 2011 à 13:49
Bonjour MathieuAP,

Le problème est que le fichier Excel est ouvert soit par internet explorer soit par excel donc l'extension sera toujour de la ".xls".
Merci quand même de ton aide

jonathanm44
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 mai 2011 à 14:45
Bonjour, jonathanm44

1) Es-tu conscient de ce que la propriété .Name d'un objet (et Application en est un) est de type String ? (c'est donc une chaîne de caractères, et elle s'exprime entre guillemets !)
2) je te conseille d'utiliser, avec cette propriété, une msgbox pour afficher, dans un cas et dans l'autre, la propriété Name de Application. Cela te permettra d'en conna^tre le nom exact
Bonne continuation.


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 1
11 mai 2011 à 14:55
Bonjour,

Juste une petite remarque...

Dans ton if, tu compare Application.Name avec Internet explorer...

1er point : je ne suis pas sur que l'application.name renvoyé soit internet explorer, selon moi se serait plutot iexplorer.exe (je n'ai pas fait le test donc je m'avance pas trop)

2eme point : ta chaine de comparaison devrait peut être se trouvé entre ""

Cdt
0
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 1
11 mai 2011 à 14:56
Oups j'ai été trop long...Ucfoutu tu ma grillé au poteau
0
cs_jonathanm44 Messages postés 13 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 28 février 2012
11 mai 2011 à 15:51
Bonjour a vous,

Alors après des plusieurs recherche j'obtien le code suivant :

If Application.Name <> "Microsoft Excel" Then
Application.ActiveWindow.DisplayWorkbookTabs = False
End If

Alors, cela ne marche pas en grande majorité (car cela à marcher pendant 2 ou 3 essais de suite mais après ca ne fonctionne plus ou cela marche sur le premier onglet ouvert mais pas les autres)

Le faite de faire apparaitre "Internet Explorer" ou "IExplorer.exe" est la même chose selon les recherches que j'ai effectué.

Je pense que je vais procéder de manière differente :
Création d'un fichier ABC qui une fois rempli va céer (par macro) un autre fichier qui servira uniquement à la visualisation du fichier ABC sans permettre aucune modification.

Je vous remercie pour l'aide que vous m'avez apporté.

Jonathanm44
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
4 oct. 2011 à 17:36
Salut,

avec du retard:

Function CheckContainer() As String
   Dim ContainerName As String
   ContainerName = vbNullString
   On Error Resume Next
   ContainerName = ThisWorkbook.Container.Name
   CheckContainer = ContainerName
   On Error GoTo 0
End Function


Attention ne fonctionne pas depuis l'evenement "WorkBook_Open" car à ce niveau l'objet Container est encore vide.

notez que l'une des propriétés du container est ".hwnd" qui renvoi le "handle" du container

A+
0
Rejoignez-nous