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:

Usine à gaz

XLDnaute Barbatruc
Re :)
Le classeur du pos#40 fonctionne nickel
Je te remercie d'avoir et là et du temps pour résoudre ma demande :)
Merci2.gif
à toi,
lionel :)
 

Dudu2

XLDnaute Barbatruc
Pas grave...
Tu peux même ajouter ton ShellExecute dans la macro (en ayant pris soin de le déclarer en haut du module) au cas où Google Chrome ne serait pas déjà ouvert (Fichier du Post #40 modifié).
VB:
Sub ActiveGoogleChrome()
    Const NomFenêtreGoogle = "- Google Chrome"
    Const NomCible = "https://google.com/"
  
    If Not ActivateWindowByPartialName(NomFenêtreGoogle) Then
        ShellExecute 0, "", NomCible, "", "", 0
    End If
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Re Dudu, toutes et tous,

Je viens de m'apercevoir d'un dernier souci :mad:
a l'affichage, Google n'est plus en plein écran !
J'ai ajouté ce code dans la macro mais ça ne fonctionne pas :

VB:
Sub ActiveGoogleChrome()
    Const NomFenêtreGoogle = "- Google Chrome"
    With Application
    .WindowState = xlMaximized 'window max
    End With
    If Not ActivateWindowByPartialName(NomFenêtreGoogle) Then MsgBox "Fenêtre """ & NomFenêtreGoogle & """ non trouvée !"
End Sub
Voici comment ça s"ouvre :
Sans titre.jpg
Peut-être une solution ?
Avec mes remerciements,
lionel,
 

Dudu2

XLDnaute Barbatruc
Il faut changer le 2ème paramètre du ShowWindow (voir les valeurs possibles ici).

Idéalement il faudrait utiliser la valeur 5 qui ré-affiche la fenêtre dans l'état où elle était auparavant (maximisée ou réduite). Sauf que si la fenêtre est minimisée dans la Barre des Tâches, elle sera activée mas pas affichée !

Donc il n'y a pas d'option pour ré-afficher une fenêtre dans son état précédent (maximisée ou réduite)
Elle ne peut être qu'affichée selon son affichage par défaut ou maximisée. Pour ta demande c'est la valeur 3 qu'il faut utiliser. Dans le code:
VB:
ShowWindow TabWindowTexts(2, Choice), 3

J'ai modifié le fichier du Post #40.
 

patricktoulon

XLDnaute Barbatruc
re
juste en passant
pour savoir si une fenetre est minimisée c'est l'api isiconic

IsIconic
Description :
Cette fonction permet de savoir si fonction est actuellement minimisée (en icône sous Win 3.x, ou dans la barre des tâches sous Win 9x).
hwnd est le handle de la fenêtre à tester.
La fonction retourne Vrai si la fenêtre est réduite sinon Faux.
VB:
Private Declare PtrSafe Function IsIconic Lib "User32" (ByVal hWnd As LongPtr) As LongPtr
pour le rétablir c'est showwindow handle,2 ou 6
ShowWindow
SW_HIDE0Cache la fenêtre et en active une autre.
SW_MAXIMIZE3Agrandit la fenêtre.
SW_MINIMIZE6Réduit la fenêtre et active la prochaine (dans l'ordre des tâches windows).
SW_RESTORE9Active et affiche la fenêtre à sa taille et position initiales.
SW_SHOW5Active et affiche la fenêtre.
SW_SHOWMAXIMIZED3Active et agrandit la fenêtre.
SW_SHOWMINIMIZED2Active et réduit la fenêtre.
SW_SHOWNA8Identique à SW_SHOW sauf que la fenêtre n'est pas activée.
 

Dudu2

XLDnaute Barbatruc
Information utile pour une adaptation comme suit testée et approuvée ! par moi :)
VB:
'--------------------------
'Active la fenêtre du hWnd
'-------------------------
Private Sub ActivateWindow(ByVal hWnd As Long)
    'ShowWindow() Commands
    'https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow

    'Window is minimized, 2 options:
    'SW_RESTORE (9):  Restores the window to its original size and position, i.e. its default size and position at launch time (e.g. Google Chrome is not maximized at launch time)
    'SW_MAXIMIZE (3):  Maximizes the specified window
    If IsIconic(hWnd) Then
        ShowWindow hWnd, 3

    'Window is NOT minimized, best option is:
    'SW_SHOW (5): Displays the window in its current size and position
    Else
        SetForegroundWindow hWnd
        ShowWindow hWnd, 5
    End If
End Sub
 
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 634
Messages
2 111 435
Membres
111 136
dernier inscrit
Ahmad Ibnou