OVH Cloud OVH Cloud

retrais des 3 icone (minimiser,maximiser,fermer) serais la solution.

10 réponses
Avatar
Daniel Pelletier
Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........

10 réponses

Avatar
Philippe.R
Bonsoir Daniel,
Voici toujours pour la croix de fermeture :
http://perso.wanadoo.fr/frederic.sigonneau/code/Bricolos/CroixFermetureFeuilleCalcul.txt
Il me semble bien que le reste a fait l'objet d'une publication ici même, mais je ne retrouve pas pour
l'instant ; tente de ton côté via Google...
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Daniel Pelletier" a écrit dans le message de
news:fmzVb.23781$
Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........





Avatar
Daniel Pelletier
Bonsoir

J'e n'arrive pas a faire fonctionner cela, j"ai toujours des message
d'erreur. :-((

"Philippe.R" a écrit dans le message de
news:u10$
Bonsoir Daniel,
Voici toujours pour la croix de fermeture :

http://perso.wanadoo.fr/frederic.sigonneau/code/Bricolos/CroixFermetureFeuilleCalcul.txt

Il me semble bien que le reste a fait l'objet d'une publication ici même,
mais je ne retrouve pas pour

l'instant ; tente de ton côté via Google...
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Daniel Pelletier" a écrit dans le message de
news:fmzVb.23781$
Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque
d'autre


macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........









Avatar
michdenis
Bonsoir Daniel,

Voici une procédure parue ici sous la plume de Michel Perron

'Déclaration des API - Haut d'un module standard
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long _
, ByVal nPosition As Long, ByVal wFlags As Long) As Long

'-------------------------
Sub InhibeSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, False)
If hSysMenu = 0 Then Exit Sub
lCount = GetMenuItemCount(hSysMenu)
If lCount Then
' Le menu système d'une application contient un minimum de 9 items.
For lCount = 1 To 9
RemoveMenu hSysMenu, 0, &H400&
Next
DrawMenuBar hWnd
End If
End Sub
'-------------------------
Sub RestoreSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, True)
If hSysMenu Then DrawMenuBar hWnd
End Sub
'-------------------------


Salutations!


"Daniel Pelletier" a écrit dans le message de news:fmzVb.23781$
Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........
Avatar
Daniel Pelletier
Bonsoir

Cela fonctionne avec une fenêtre , mais ci il y en a plusieurs ,ont peut les
fermer une a une.

Moi je voudrait bloquer tout les Xrouge. :-((

"michdenis" a écrit dans le message de
news:
Bonsoir Daniel,

Voici une procédure parue ici sous la plume de Michel Perron

'Déclaration des API - Haut d'un module standard
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long _
, ByVal nPosition As Long, ByVal wFlags As Long) As Long

'-------------------------
Sub InhibeSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, False)
If hSysMenu = 0 Then Exit Sub
lCount = GetMenuItemCount(hSysMenu)
If lCount Then
' Le menu système d'une application contient un minimum de 9 items.
For lCount = 1 To 9
RemoveMenu hSysMenu, 0, &H400&
Next
DrawMenuBar hWnd
End If
End Sub
'-------------------------
Sub RestoreSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, True)
If hSysMenu Then DrawMenuBar hWnd
End Sub
'-------------------------


Salutations!


"Daniel Pelletier" a écrit dans le message de
news:fmzVb.23781$

Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........






Avatar
michdenis
Si tu désactives les boutons de la barre de titre lors de la première ouverture de l'application excel, tous les classeurs
que tu ouvriras par la suite dans la même instance d'excel auront eux aussi leurs boutons de la barre des titres inhibés.


Salutations!



"Daniel Pelletier" a écrit dans le message de news:%
Bonsoir

Cela fonctionne avec une fenêtre , mais ci il y en a plusieurs ,ont peut les
fermer une a une.

Moi je voudrait bloquer tout les Xrouge. :-((

"michdenis" a écrit dans le message de
news:
Bonsoir Daniel,

Voici une procédure parue ici sous la plume de Michel Perron

'Déclaration des API - Haut d'un module standard
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long _
, ByVal nPosition As Long, ByVal wFlags As Long) As Long

'-------------------------
Sub InhibeSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, False)
If hSysMenu = 0 Then Exit Sub
lCount = GetMenuItemCount(hSysMenu)
If lCount Then
' Le menu système d'une application contient un minimum de 9 items.
For lCount = 1 To 9
RemoveMenu hSysMenu, 0, &H400&
Next
DrawMenuBar hWnd
End If
End Sub
'-------------------------
Sub RestoreSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, True)
If hSysMenu Then DrawMenuBar hWnd
End Sub
'-------------------------


Salutations!


"Daniel Pelletier" a écrit dans le message de
news:fmzVb.23781$

Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........






Avatar
michdenis
Si tu préfères modifier l'état des boutons lorsque tous les classeurs sont ouverts essaie ceci : j'ai ajouté quelques lignes
de code à la procédure originale de Michel Perron.


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long _
, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Sub InhibeSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

For Each wn In Application.Windows
hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, False)
If hSysMenu = 0 Then Exit Sub
lCount = GetMenuItemCount(hSysMenu)
If lCount Then
' Le menu système d'une application contient un minimum de 9 items.
For lCount = 1 To 9
RemoveMenu hSysMenu, 0, &H400&
Next
DrawMenuBar hWnd
End If
Next
End Sub

Sub RestoreSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, True)
If hSysMenu Then DrawMenuBar hWnd
End Sub



Salutations!






"michdenis" a écrit dans le message de news:
Si tu désactives les boutons de la barre de titre lors de la première ouverture de l'application excel, tous les classeurs
que tu ouvriras par la suite dans la même instance d'excel auront eux aussi leurs boutons de la barre des titres inhibés.


Salutations!



"Daniel Pelletier" a écrit dans le message de news:%
Bonsoir

Cela fonctionne avec une fenêtre , mais ci il y en a plusieurs ,ont peut les
fermer une a une.

Moi je voudrait bloquer tout les Xrouge. :-((

"michdenis" a écrit dans le message de
news:
Bonsoir Daniel,

Voici une procédure parue ici sous la plume de Michel Perron

'Déclaration des API - Haut d'un module standard
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long _
, ByVal nPosition As Long, ByVal wFlags As Long) As Long

'-------------------------
Sub InhibeSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, False)
If hSysMenu = 0 Then Exit Sub
lCount = GetMenuItemCount(hSysMenu)
If lCount Then
' Le menu système d'une application contient un minimum de 9 items.
For lCount = 1 To 9
RemoveMenu hSysMenu, 0, &H400&
Next
DrawMenuBar hWnd
End If
End Sub
'-------------------------
Sub RestoreSysMenu()
Dim hSysMenu As Long, lCount As Long, hWnd As Long

hWnd = FindWindow("XLMAIN", Application.Caption)
hSysMenu = GetSystemMenu(hWnd, True)
If hSysMenu Then DrawMenuBar hWnd
End Sub
'-------------------------


Salutations!


"Daniel Pelletier" a écrit dans le message de
news:fmzVb.23781$

Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........






Avatar
sabatier
alors, tous en choeur avec moi :

au clair de la lune, mon ami pierron
prête-moi ta plume, je serai moins c..
ma ficelle est morte, plus de mpfe
ouvre-moi ta proc, toi si généreux

jps

michdenis a écrit:
Bonsoir Daniel,

Voici une procédure parue ici sous la plume de Michel Pierron



Avatar
Michel Pierron
Bonjour Daniel;
Pour supprimer le menu system d'un classeur, une solution consiste à en supprimer
la barre de titre:
Dans le module ThisWorkbook du classeur:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String _
, ByVal lpsz2 As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private TBar As String

Private Sub Workbook_Activate()
Application.ScreenUpdating = False
Application.WindowState = xlMaximized
Dim hWnd As Long
TBar = Left(Application.Caption, InStr(1, Application.Caption, "-") - 2)
hWnd = FindWindow("XLMAIN", Application.Caption)
hWnd = FindWindowEx(hWnd, ByVal 0&, "XLDESK", vbNullString)
hWnd = FindWindowEx(hWnd, ByVal 0&, "EXCEL7", vbNullString)
SetWindowLong hWnd, -16, GetWindowLong(hWnd, -16) And Not &HC00000
DrawMenuBar hWnd
With ActiveWindow
.WindowState = xlNormal
.Top = 0: .Left = 0
.Height = Application.UsableHeight
.Width = Application.UsableWidth
End With
Application.Caption = TBar & " - " & ThisWorkbook.Name
End Sub

' Procédure utilisée si l'on veut réserver ce traitement à ce seul classeur
Private Sub Workbook_Deactivate()
Application.Caption = TBar
Application.WindowState = xlMaximized
ActiveWindow.WindowState = xlMaximized
End Sub

MP

"Daniel Pelletier" a écrit dans le message de
news:fmzVb.23781$
Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........





Avatar
Frédéric Sigonneau
Bonjour,

Protéger le (les) classeur(s) en cochant la case 'Fenêtres' dans le menu
OutilsProtectionProtéger le classeur a exactement pour effet ce que tu
demandes : supprimer les icones minimiser, maximiser et fermer.
Rien n'empêche cependant (et il en va de même pour les autres solutions
proposées) de fermer un classeur en passant par le menu FichierFermer.

Si tu dois aussi empêcher l'accès à ce menu...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque d'autre
macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........


Avatar
Daniel Pelletier
Super Super Super FS
Ca fait 2 mois que je cherche cela Gros MERCI :-)))))))))))))))))


"Frédéric Sigonneau" a écrit dans le message
de news:
Bonjour,

Protéger le (les) classeur(s) en cochant la case 'Fenêtres' dans le menu
OutilsProtectionProtéger le classeur a exactement pour effet ce que tu
demandes : supprimer les icones minimiser, maximiser et fermer.
Rien n'empêche cependant (et il en va de même pour les autres solutions
proposées) de fermer un classeur en passant par le menu FichierFermer.

Si tu dois aussi empêcher l'accès à ce menu...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir à tous

j'ai une dizaine de fichier utilisant les même VBA.
Ce que je veut faire est empêcher mes collègue (très peut familier avec
Excel)
de mêler les fenêtres (en les fermant une a une , car cela blocque
d'autre


macro).

Idéalement le retrais des 3 icone (minimiser,maximiser,fermer) serais la
solution.

A vous une solution :-) Gros merci de votre expertise..........