interdiction fermeture par les croix

  • Initiateur de la discussion DAM
  • Date de début
D

DAM

Guest
bonjour le forum
je veux interdire la fermeture par la croix du fichier ou par celle d'excel et passer un quelque chose du style application.quit.(car les personnes doivent enregistrer sous un nom bien defini)merci dam
 

ninbihan

XLDnaute Impliqué
Re : interdiction fermeture par les croix

Ce n' est hélas pas de moi mais de L Longre et de frederic Sigonneau comme signalé sur le fil initial. Concernant le bouton voici le code que tu peux lui affecter:
Code:
Private Sub CommandButton1_Click()
ActiveWorkbook.Save
Application.Quit
End Sub

Ninbihan
 
Dernière édition:

ninbihan

XLDnaute Impliqué
Re : interdiction fermeture par les croix

Macro worbooks open ( dans thisworkbook) à remplacer par celle ci:
Code:
Private Sub Workbook_Open()
  Dim hwnd As Long
  hwnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

ActiveWorkbook.Protect Structure:=False, Windows:=False
ActiveWindow.WindowState = xlMaximized


ActiveWorkbook.Protect Structure:=False, Windows:=True
End Sub
A tester,

@+

Ninbihan
 

PFRANCO

XLDnaute Junior
Re : interdiction fermeture par les croix

Private Sub Workbook_Open()
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

ActiveWorkbook.Protect Structure:=False, Windows:=False
ActiveWindow.WindowState = xlMaximized


ActiveWorkbook.Protect Structure:=False, Windows:=True
End Sub

FindWindowA LA!!! Il dit Sub ou Fonction non défini
 

ninbihan

XLDnaute Impliqué
Re : interdiction fermeture par les croix

Ah ben oui t'as tout effacé dans thisworkbook et t'as collé ce que je t'ai dis, désolé, je me suis mal exprimé, maintenant efface tout (toujours dans thisworkbook) et colle ceci:
Code:
Private Declare Function FindWindowA Lib "User32" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLongA Lib "User32" _
  (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "User32" _
  (ByVal hwnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long



Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim hwnd As Long
  hwnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000

End Sub

Private Sub Workbook_Open()
  Dim hwnd As Long
  hwnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
ActiveWorkbook.Protect Structure:=False, Windows:=False
ActiveWindow.WindowState = xlMaximized
ActiveWorkbook.Protect Structure:=False, Windows:=True

End Sub
Dis moi si OK, car après c'est dodo
 

PFRANCO

XLDnaute Junior
Re : interdiction fermeture par les croix

On appelle ça la perfection.

Je suis sincèrement impréssionné. Je fais des progrés mais je ne comprends pas tout.

Je pense que je devrais prendre des cours d'anglais en premier car certains termes m'échappent.

Encore merci.

Tout fonctionne trés bien. Je te tiendrai au courant de l'utilisation que j'en fais.

Bonne nuit.

Philippe

Merci à tous ceux qui servent l'inspiration...
 

Discussions similaires

Statistiques des forums

Discussions
312 854
Messages
2 092 830
Membres
105 540
dernier inscrit
missmel59