XL 2010 Utilisation API

cathodique

XLDnaute Barbatruc
Bonjour,

Dans les diverses codes que j'ai pu rencontrer utilisant les API. Elles sont généralement déclarées en "Private".

Voulant utiliser un fichier en plein écran que ce soit Excel et Userform (pas tous les userforms du projet).

j'ai modifié le private en Public, cela semble fonctionner.

je voudrai votre avis pour ne pas avoir de mauvaises surprises.

VB:
#If Win64 Then ' (Office 64bit ET Win 64Bit)
            Public Declare PtrSafe Function SetWindowLongPtrA Lib "user32" (ByVal hwnd As LongLong, ByVal nIndex As Long, ByVal dwNewLong As LongLong) As LongLong
            Public Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongLong
            Public Declare PtrSafe Function GetWindowLongA Lib "user32" (ByVal hwnd As LongLong, ByVal nIndex As LongLong) As LongLong
            Public Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongLong, ByVal nCmdShow As LongLong) As LongLong
        #Else ' (Office 32bit ET Win 32Bit) OU (Office 32Bit ET Win 64Bit)
            Public Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
            Public Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
            Public Declare Function GetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
            Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
        #End If

En vous remerciant par avance.

Bonne journée.
 

Pièces jointes

  • Plein Ecran.xlsm
    35.3 KB · Affichages: 2

patricktoulon

XLDnaute Barbatruc
normalement oui si la gestion MDI des fentres le permet
cela dit je viens de te donné la fonction complète qui le fait sans API
pour ton userform sans barre de titre et plen ecran ben c'est simple
tu reprend le code que je t'ai donné et tu rajoute le showwindow hwnd,3

VB:
Private Sub UserForm_Activate()
    Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, Me.Caption)
    SetWindowLongA hwnd, -16, &H94080080
    'Me.Width = Application.Width
    'Me.Height = Application.Height
ShowWindow hwnd, 3
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 32 ou 64 bits
Réponses
46
Affichages
2 K

Statistiques des forums

Discussions
314 628
Messages
2 111 329
Membres
111 102
dernier inscrit
driss touzi