OVH Cloud OVH Cloud

Débutant à nouveau

2 réponses
Avatar
grosse thierry
Merci à Fred, Patrick, Guy et les autres pour vos réponses.
J'ai donc abandonné mon projet initial et j'ai donc mis mon projet sur une
"Userform".
Je suis assez fier du résultat si on considère que je n'y connaissais pas
grand chose il y a seulement quelques jours.

Mais j'ai encore quelques diffucultés à résoudre :

1) quelle est l'instruction pour un bouton qui permetrait d'enregistrer les
modifications apportées au classeur excel et de fermer l'ensemble de
l'application ?

2) Peut-on adapter les dimensions d'une userform pour qu'elle couvre
l'ensemble de l'écran ?

3) Comment protéger une userform : par exemple que l'utilisateur ne puisse
pas fermer la fenêtre à l'aide de la "X" .

Encore merci
Thierry

2 réponses

Avatar
X
Bonjour,

Tu dis:

"2) Peut-on adapter les dimensions d'une userform pour qu'elle couvre
l'ensemble de l'écran ?"

En VB (si ça marche), c'est:

Form1.WindowState = maximized

--------------------------------------





"grosse thierry" a écrit dans le message de
news: 4332d7de$0$167$
| Merci à Fred, Patrick, Guy et les autres pour vos réponses.
| J'ai donc abandonné mon projet initial et j'ai donc mis mon projet sur une
| "Userform".
| Je suis assez fier du résultat si on considère que je n'y connaissais pas
| grand chose il y a seulement quelques jours.
|
| Mais j'ai encore quelques diffucultés à résoudre :
|
| 1) quelle est l'instruction pour un bouton qui permetrait d'enregistrer
les
| modifications apportées au classeur excel et de fermer l'ensemble de
| l'application ?
|
| 2) Peut-on adapter les dimensions d'une userform pour qu'elle couvre
| l'ensemble de l'écran ?
|
| 3) Comment protéger une userform : par exemple que l'utilisateur ne puisse
| pas fermer la fenêtre à l'aide de la "X" .
|
| Encore merci
| Thierry
|
|
Avatar
Jacques93
Bonjour grosse thierry,
grosse thierry a écrit :
Merci à Fred, Patrick, Guy et les autres pour vos réponses.
J'ai donc abandonné mon projet initial et j'ai donc mis mon projet sur une
"Userform".
Je suis assez fier du résultat si on considère que je n'y connaissais pas
grand chose il y a seulement quelques jours.

Mais j'ai encore quelques diffucultés à résoudre :

1) quelle est l'instruction pour un bouton qui permetrait d'enregistrer les
modifications apportées au classeur excel et de fermer l'ensemble de
l'application ?

2) Peut-on adapter les dimensions d'une userform pour qu'elle couvre
l'ensemble de l'écran ?

3) Comment protéger une userform : par exemple que l'utilisateur ne puisse
pas fermer la fenêtre à l'aide de la "X" .




Code à ajouter ou insérer dans ton UserForm :

Option Explicit

' 2 - Déclarations pour redimensionner la fenêtre
' -----------------------------------------------
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As
Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long,
ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal
Cx As Long, ByVal Cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOP = 0
Private Const SWP_SHOWWINDOW = &H40

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long,
lpRect As RECT) As Long

' 3 - Déclarations pour désactiver la croix de fermeture
' ------------------------------------------------------
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long,
ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long,
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long)
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long,
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060


' 1 - Code pour enregistrer et quitter
' ------------------------------------
Private Sub CommandButton1_Click()
If Not ActiveWorkbook.Saved Then
ActiveWorkbook.Save
' ou
' ActiveWorkBook.SaveAs "NomDeFichier.xls"
End If
Application.Quit
End Sub


' 2 - Code pour redimensionner la fenêtre
' ---------------------------------------
Private Sub UserForm_Activate()
Dim hWnd As Long, lResult As Long
Dim Cx As Long, Cy As Long
Dim rc As RECT, h As Long

hWnd = FindWindow(vbNullString, Me.Caption)
Cx = GetSystemMetrics(SM_CXSCREEN)
Cy = GetSystemMetrics(SM_CYSCREEN)

' Si on ne veut pas masquer la barre de tâches
' en supposant quelle soit en bas de l'écran
lResult = FindWindow("Shell_traywnd", "")
If lResult > 0 Then
GetWindowRect lResult, rc
h = rc.Bottom - rc.Top
End If
SetWindowPos hWnd, HWND_TOP, 0, 0, Cx, Cy - h, SWP_SHOWWINDOW
DisableRedCross
End Sub

' 3 - Déclarations pour désactiver la croix de fermeture
' ------------------------------------------------------
' Adapaté d'un code de MichDenis sur MPFE
Sub DisableRedCross()
Dim hWnd As Long, hMenu As Long

hWnd = FindWindow("ThunderDFrame", Me.Caption)
hMenu = GetSystemMenu(hWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar hWnd
Application.CommandBars("Worksheet Menu
Bar").Controls("&Fichier").Controls("&Quitter").Enabled = False
End Sub


--
Cordialement,

Jacques.