Détecter le programme d'ouverture

Messages postés
13
Date d'inscription
jeudi 10 mars 2011
Statut
Membre
Dernière intervention
28 février 2012
- - Dernière réponse : bigfish_le vrai
Messages postés
1839
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
Afficher la suite 

10 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
62
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
13
Date d'inscription
jeudi 10 mars 2011
Statut
Membre
Dernière intervention
28 février 2012
0
Merci
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
Commenter la réponse de cs_jonathanm44
Messages postés
13
Date d'inscription
jeudi 10 mars 2011
Statut
Membre
Dernière intervention
28 février 2012
0
Merci
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
Commenter la réponse de cs_jonathanm44
Messages postés
12
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
11 mai 2011
0
Merci
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.
Commenter la réponse de MathieuAP
Messages postés
13
Date d'inscription
jeudi 10 mars 2011
Statut
Membre
Dernière intervention
28 février 2012
0
Merci
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
Commenter la réponse de cs_jonathanm44
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
0
Merci
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
Commenter la réponse de Phalalis
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
0
Merci
Oups j'ai été trop long...Ucfoutu tu ma grillé au poteau
Commenter la réponse de Phalalis
Messages postés
13
Date d'inscription
jeudi 10 mars 2011
Statut
Membre
Dernière intervention
28 février 2012
0
Merci
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
Commenter la réponse de cs_jonathanm44
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
0
Merci
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+
Commenter la réponse de bigfish_le vrai