Microsoft 365 Afficher Google et fermer l'onglet nouveau sans fermer le navigateur

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

J'ai une nouvelle p'tite demande ... de confort .
Malgré essais et recherches : je n'ai pas trouvé !

Quand je travaille, sont ouverts :
- mon classeur excel,
- mon navigateur Google et mon onglet "agenda",

J'ai fait un p'tit code pour afficher Google direct sans sortir de mon classeur (ça ... c'est pas très difficile)
Mais ça ouvre toujours un nouvel onglet dans le navigateur :mad:
Est-il possible d'afficher Google et de sélectionner directement mon agenda sans qu'un nouvel onglet soit ouvert ?
mon p'tit code :
VB:
Option Explicit
Dim CmdBar As CommandBar
Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub agenda1()
    Dim fichier As String
        fichier = "https://accounts.google.com/ServiceLogin/"
    ShellExecute 0, "", fichier, "", "", 0
End Sub
le lien : est tronqué pour la confidentialité :)

Auriez-vous la solution ?
Je joins un petit classeur test,
Avec mes remerciements,
lionel,
 

Pièces jointes

  • Agenda.xlsm
    15.9 KB · Affichages: 99
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour,
2 options dans le classeur joint.
- Activation par nom complet de fenêtre (simple, copié de cet exemple sur developpez.net)
- Activation par nom partiel de fenêtre (moins simple, scan des fenêtres visibles)
Les noms complets à rallonge étant souvent difficiles à prédéterminer, l'option par nom partiel peut s'avérer très utile)
 

Pièces jointes

  • Activate Window by Name.xlsm
    29.2 KB · Affichages: 12

Usine à gaz

XLDnaute Barbatruc
Bonjour Dudu2,
Merci pour ce classeur que je garde "au chaud".
Mais, sauf erreur de ma part ou j'ai mal compris son fonctionnement, il ne répond pas à mon besoin car je ne cherche pas à envoyer des informations.

Je voudrais juste : Est-il possible d'afficher Google et de sélectionner directement mon agenda sans qu'un nouvel onglet soit ouvert ?
@+
lionel,
 

Dudu2

XLDnaute Barbatruc
Lionel,
Le code ne fait qu'activer une fenêtre d'application existante (désignée par son nom complet ou un nom partiel) parmi celles de la barre des tâches.
Il n'envoie aucune information nulle part et n'ouvre aucun onglet.
J'ai supposé que tu avais ouvert un navigateur sur la Connexion Google et que tu voulais à partir d'Excel, retourner sur cette fenêtre du navigateur.
Mais j'ai peut-être mal compris ce que tu veux faire.
D.
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Dudu2, bonjour à toutes et à tous,
Je vous souhaite un beau WE :)

Je n'ai pas trouvé la solution à mon petit souci et le fichier de Dudu2 que je n'arrive pas à utiliser me semble lourd en codes à intégrer dans mon fichier "formation"

J'essaie donc de prendre "la chose" dans l'autre sens :
Sans titre.jpg

Avec mes remerciements,
Amicalement,
lionel
 

Dudu2

XLDnaute Barbatruc
Bonjour Lionel,
J'ai donné un double exemple de recherche de fenêtre (par nom partiel et par nom complet).
Je peux le simplifier à l’extrême si tu indiques le nom exact qui apparait dans la barre des tâches, comme ici:
"Connexion : comptes Google - Mozilla Firefox"
2020-07-25_124053.jpg
 

Dudu2

XLDnaute Barbatruc
:) ce n'est pas vraiment la réponse mais sachant que tu utilises Google Chrome j'ai fait une hypothèse, ne sachant plus vraiment ce qu'il faut faire.
Je te propose ce code au cas où ça correspondrait à ton besoin.
Il faut appeler le Sub ActiveConnectionGoogle().
VB:
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

'--------------------------------------
'Active le fenêtre de connection Google
'--------------------------------------
Sub ActiveConnectionGoogle()
    Const NomFenêtreConnectionGoogle = "Connexion : comptes Google - Google Chrome"
    If Not ActivateWindowByFullName(NomFenêtreConnectionGoogle) Then MsgBox "Fenêtre """ & NomFenêtreConnectionGoogle & """ non trouvée !"
End Sub

'---------------------------------------------
'Active la fenêtre trouvée par son nom complet
'https://www.developpez.net/forums/d1711931/logiciels/microsoft-office/excel/macros-vba-excel/activer-fenetre-windows-via-vba/#post9377545
'---------------------------------------------
Function ActivateWindowByFullName(FullName As String) As Boolean
    Dim hWnd As Long
     
    hWnd = FindWindow(vbNullString, FullName)
     
    If hWnd = 0 Then Exit Function
    ShowWindow hWnd, 9
    SetForegroundWindow hWnd
    ActivateWindowByFullName = True
End Function
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
588
Réponses
1
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
314 631
Messages
2 111 395
Membres
111 123
dernier inscrit
lauTTTTTTTTT