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" .
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 | |
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" <thierry.grosse@numericable.fr> a écrit dans le message de
news: 4332d7de$0$167$a3f2974a@nnrp1.numericable.fr...
| 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) 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 | |
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
' 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.
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
' 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
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
' 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