Signaler

Affichage simplifié [Résolu]

Posez votre question Landry85 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 2017 Dernière intervention - Dernière réponse le 6 sept. 2017 à 23:23 par Landry85
Bonjour,

j'ai "développé", pour me faciliter le travail une sorte de "moteur de recherche", la page de recherche est situé en Feuil1 et les base de données sur une multitude de feuilles. Je vais bien sur en faire profiter mes collègues, donc j'aimerai en simplifier l'affichage.

Plusieurs critères :

- Ne pas avoir de "barre des tâches" excel
- Ne pas avoir l'affichage des différentes feuilles (pas d’accès pour mes collègues aux
Feuilles bases de données).
- Ne plus pouvoir sauvegarder en sortant.

-Mais conserver pour moi un accès pour modifier si besoin.

Je ne sais pas si c'est très clair, mais j'ai du mal à formuler et surtout je ne sais pas si c'est faisable et comment.

Merci pour votre aide.

Landry

PS : mon idées en image (sans le bouton sauvegarde).

http://img-19.ccm2.net/8dU5ym4YTMpbAeMBQLWnpVPk0qs=/54f00ba59a4a433d80b614f19cd3594d/ccm-ugc/Image2.jpg
Utile
+0
plus moins
Bonjour,

Voici un exemple, faire Alt F11 pour voir les codes dans le module et ThisWorkbook:

http://www.cjoint.com/c/GIcqHBIRC7Q

Pour Ne plus pouvoir sauvegarder en sortant.


https://www.excel-pratique.com/fr/astuces_vba/empecher_enregistrement_fichier.php


Landry85 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 2017 Dernière intervention - 3 sept. 2017 à 02:03
C'est parfait ! J'y ai même ajouté un petit mot de passe pour déclencher la macro qui rétabli l'affichage classique, extra!

Pour pousser le vice, sur mon écran à la maison (23") il m'affiche la plage A1:U46
Est ce qu'il y a possibilité de lui demander d'ajuster la fenêtre à la plage A1:O31, ou d'ajuster la plage au plein écran (mais dans ce deuxieme cas j'ai peur qu'il modifie la mise en page) ? Tout en sachant qu'à mon travaille, les écrans sont plus petits.
Répondre
Donnez votre avis
Utile
+0
plus moins
Ah!!! Ce matin, je me suis dis "n'y a t'il vraiment pas moyen de sortir du plein écran sans le mot de passe... si : tout simplement par la touche échappe deux fois. Est ce qu'on peut bloquer ça?
Donnez votre avis
Utile
+0
plus moins
Si il n'y avait que la touche echap!
il y a aussi le clic droit pour supprimer le plein écran!

Voici donc le code pour bloquer tout cela:

Option Explicit
'Plein écran
Private Sub CommandButton1_Click()
Application.OnKey "{ESCAPE}", "" 'touche echap
  Application.DisplayFullScreen = True 'plein écran
    ActiveWindow.DisplayWorkbookTabs = False 'onglets masqués
    CacheBOutils ' clic droit
End Sub
'rétabli
Private Sub CommandButton2_Click()
Application.OnKey "{ESCAPE}"
Application.DisplayFullScreen = False
   ActiveWindow.DisplayWorkbookTabs = True
   AfficheOutils
End Sub
Sub CacheBOutils()
Dim CmdB As CommandBar
  For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
  Next CmdB
End Sub
Sub AfficheOutils()
Dim CmdB As CommandBar
  For Each CmdB In Application.CommandBars
    CmdB.Enabled = True
  Next CmdB
End Sub




Pour ajuster la plage au plein écran

je ne vois que le zoom:

 ActiveWindow.Zoom = 200'a adapter
    ActiveWindow.Zoom = 100' rétabli


Voilà
willy- 4 sept. 2017 à 11:06
 
Pour cs_Le Pivert,

Ma réponse est tout à fait valable et utile pour Landry85 car c'est un très bon
exemple : j'ai bien précisé que l'un doit être l'inverse de l'autre, ce qui est le cas.

a) Pour .DisplayFullScreen, c'est sûr car il y a écrit : « ' MOT DE PASSE DE
    DEBLOCAGE PLEIN ECRAN » => plein écran si mot de passe correct ;
    non plein écran si mot de passe incorrect.

b) Pour .DisplayWorkbookTabs, je pense que c'est : onglets affichés
    si password correct ; onglets non affichés si password incorrect ;
    si c'est l'inverse, je suis sûr que le demandeur saura inverser
    les 2 valeurs True et False correspondantes.

c) Pour la touche Echap, il me semble que ce devrait plutôt être :
    active si pw correct, inactive si pw incorrect.

Mais sans plus de précisions du demandeur, je ne peux pas en être certain ;
c'est à lui de voir et de modifier en conséquence, je ne peux pas deviner.

Aussi, ça pourrait être :


Private Sub CommandButton5_Click()

  ' MOT DE PASSE DE DEBLOCAGE PLEIN ECRAN
  
  Dim sPass As String
  
  sPass = InputBox("Veuillez saisir le mot de passe")
  
  If sPass = "maelena" Then
    Application.DisplayFullScreen = False ' non plein écran
    ActiveWindow.DisplayWorkbookTabs = False ' onglets non affichés
    Application.OnKey "{ESCAPE}" ' touche Echap active
  Else
    Application.DisplayFullScreen = True ' plein écran
    ActiveWindow.DisplayWorkbookTabs = True ' onglets affichés
    Application.OnKey "{ESCAPE}", "" ' touche Echap inactive
  End If
  
  AfficheBOutils ' affiche les barres d'outils
  ActiveWindow.Zoom = 100 ' zoom 100 %

End Sub


@Landry85 : regarde quand même aussi mon message précédent de 01:22 :
http://www.commentcamarche.net/forum/affich-34839864-affichage-simplifie#13
 
Répondre
cs_Le Pivert 4569Messages postés jeudi 13 septembre 2007Date d'inscription ContributeurStatut 19 septembre 2017 Dernière intervention - 4 sept. 2017 à 11:21
Voir ma réponse:

http://www.commentcamarche.net/forum/affich-34839864-affichage-simplifie#14
Répondre
willy- 4 sept. 2017 à 11:54
 
Je l'avais bien vu, mais je ne trouve pas que c'est valable dans le cas présent :
« Sinon on ne met rien ou un message le cas échéant » : faux ; car ici, c'est
telle chose pour celui qui saisit le password correct, et l'inverse de cette
chose si le password est incorrect ; ce qui est situé sous le bloc If .. End If
est indépendant du password, donc pour tous les utilisateurs.

Je mets ces 2 liens pour Landry85 car ils lui seront sûrement utiles :

http://www.commentcamarche.net/forum/affich-34839864-affichage-simplifie#13
http://www.commentcamarche.net/forum/affich-34839864-affichage-simplifie#16
 
Répondre
cs_Le Pivert 4569Messages postés jeudi 13 septembre 2007Date d'inscription ContributeurStatut 19 septembre 2017 Dernière intervention - 4 sept. 2017 à 12:10
Tu n'as toujours rien compris, tu réponds sans savoir. Si tu avais téléchargé le classeur que j'ai mis, tu te serais aperçu qu' a l'ouverture de ce classeur le mode plein écran etc. était mis. Donc il n'est pas nécessaire de remettre ce qui l'est déjà.

Quand on s'immisce dans un post on consulte tout les tenants et aboutissant avant de répondre!

Voilà
Répondre
willy- 4 sept. 2017 à 12:48
 
« Tu n'as toujours rien compris, tu réponds sans savoir. » : je te trouve bien
péremptoire et même plutôt agressif ! est-ce un exemple de la courtoisie
des Contributeurs ? même si je me suis trompé, je suis sûr que mes
différentes remarques pourront être utiles au demandeur ; serait-ce que
tu refuses purement et simplement qu'il juge par lui-même ? si ça ne lui
convient pas, il saura bien le dire lui-même.  ;)

De plus, vu que la plupart de mon code VBA est la reprise du tien (comme
je l'avais bien précisé), on dirait vraiment que tu te contredis toi-même !  ;P

Je te propose ceci : laisse d'abord Landry85 lire mes 2 messages ; si c'est
ce qu'il faut, il pourra passer le sujet en résolu ; sinon, je suis sûr que mes
remarques l'aideront.

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

Je rappelle que Landry85 avait écrit : « Ce qui est quand même très drôle
c'est que lorsque la fenêtre de demande de mot de passe s'ouvre, si je ne
rentre rien et fais annuler, le plein écran se débloque :-D ».

C'est suite à cela que j'ai proposé le code VBA de mon message #13.

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

Liens pour Landry85 :

http://www.commentcamarche.net/forum/affich-34839864-affichage-simplifie#13
http://www.commentcamarche.net/forum/affich-34839864-affichage-simplifie#16
 
Répondre
Donnez votre avis
Utile
+0
plus moins
*
Donnez votre avis
Utile
+0
plus moins
Il ne s'agit pas de faire des copier coller sans comprendre.
Je te le fais en français:

Si mot de passe correct Alors
on met la totalité du code rétablir
Sinon
on ne met rien ou un message le cas échéant
Fin si

Voilà c'est pourtant simple!!!!!!!!!!
willy- 6 sept. 2017 à 03:05
 
Pour le fichier "Test MDP & Identifiants12.xlsm", dans ThisWorkbook,
tu dois avoir uniquement ceci :


Option Explicit


Sub CacheBOutils()
  Dim CmdB As CommandBar: Application.ScreenUpdating = 0
  For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
  Next CmdB
  Application.ScreenUpdating = -1
End Sub


Private Sub Workbook_Open()

  Application.OnKey "{ESCAPE}", "" ' touche Echap inactive
  Application.DisplayFullScreen = True ' affichage plein écran
  Application.ScreenUpdating = False
  With ActiveWindow
    .DisplayWorkbookTabs = False ' onglets masqués
    .DisplayHorizontalScrollBar = False 'barre de défilement masquée
    .DisplayVerticalScrollBar = False 'barre de défilement masquée
    CacheBOutils ' masque les barres d'outils
    .Zoom = 110
  End With
  Feuil3.DisableSystemMenu ' bloquer croix rouge et menu système
  ActiveSheet.ScrollArea = "A1:Q38"
    
  With Worksheets("KiKiFé").ComboBox2
    .Select: .Activate
  End With
  
  Application.ScreenUpdating = True

End Sub


Pour ton code super long de Feuil3, je ne me suis occupé que
des 2 parties concernées, sans voir le reste => tout en haut :


' Déclaration de 2 constantes

Private Const MF_BYPOSITION As Long = &H400
Private Const mlNUM_SYS_MENU_ITEMS As Long = 9

' Déclaration de 3 fonctions de la Librairie User32

Private Declare Function GetSystemMenu Lib "User32" _
  (ByVal hwnd As Long, ByVal bRevert As Long) As Long
  
Private Declare Function DeleteMenu Lib "User32" _
  (ByVal hMenu As Long, ByVal nPosition As Long, _
  ByVal wFlags As Long) As Long
  
Private Declare Function FindWindowA Lib "User32" _
  (ByVal lpClassName As String, ByVal lpWindowName _
  As String) As Long
'
  
  
' Adaptation du code de Vasant Nanavati, Andrew Baker (mpep)

'   Signification du paramètre :

'     6 : désactive la croix de fermeture d'Excel
'         et la commande Fermeture du menu système

'     5 : supprime le trait de séparation du menu système
'         avant Fermeture

'     4 : supprime la commande Agrandissement du menu système
'         et la commande Agrandir de la fenêtre

'     3 : supprime la commande Réduction du menu système
'         et désactive la commande Réduire de la fenêtre

'     2 : désactive la commande Déplacement du menu système

'     1 : supprime la commande Déplacement du menu système
'         et désactive la commande Dimension

'     0 : supprime la commande Restauration du menu système
'         et désactive la commande Restaurer de la fenêtre

Public Sub DisableSystemMenu()
  On Error Resume Next
  Dim lHandle As Long, lCount As Long, prm As Integer
  lHandle = FindWindowA(vbNullString, Application.Caption)
  If lHandle = 0 Then Exit Sub
  For prm = 6 To 0 Step -1
    DeleteMenu GetSystemMenu(lHandle, False), prm, &H400
  Next prm
End Sub


Private Sub EnableSystemMenu()
  Dim lHandle As Long: On Error Resume Next
  lHandle = FindWindowA(vbNullString, Application.Caption)
  GetSystemMenu lHandle, True
End Sub


et la sub CommandButton5_Click().

Ce sont 2 copier / coller, faits avant adaptation à la "sauce"
version 64 bits des librairies de ton Excel 2013 ; donc tu
dois les reprendre et les adapter comme tu l'as déjà fait.
 
Répondre
Landry85 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 2017 Dernière intervention - 6 sept. 2017 à 22:32
Salut, bon j'ai repris et réadapté sauce64 le code, ça donne ça (si j'ai pas fais d'erreur) :

Private Declare PtrSafe Function GetSystemMenu Lib "User32" _
  (ByVal hwnd As LongPtr, ByVal bRevert As LongPtr) As LongPtr
  
Private Declare PtrSafe Function DeleteMenu Lib "User32" _
  (ByVal hMenu As LongPtr, ByVal nPosition As LongPtr, _
  ByVal wFlags As LongPtr) As LongPtr
  
Private Declare PtrSafe Function FindWindowA Lib "User32" _
  (ByVal lpClassName As String, ByVal lpWindowName _
  As String) As LongPtr
'
  
  
' Adaptation du code de Vasant Nanavati, Andrew Baker (mpep)

'   Signification du paramètre :

'     6 : désactive la croix de fermeture d'Excel
'         et la commande Fermeture du menu système

'     5 : supprime le trait de séparation du menu système
'         avant Fermeture

'     4 : supprime la commande Agrandissement du menu système
'         et la commande Agrandir de la fenêtre

'     3 : supprime la commande Réduction du menu système
'         et désactive la commande Réduire de la fenêtre

'     2 : désactive la commande Déplacement du menu système

'     1 : supprime la commande Déplacement du menu système
'         et désactive la commande Dimension

'     0 : supprime la commande Restauration du menu système
'         et désactive la commande Restaurer de la fenêtre

Public Sub DisableSystemMenu()
  On Error Resume Next
  Dim lHandle As LongPtr, lCount As LongPtr, prm As Integer
  lHandle = FindWindowA(vbNullString, Application.Caption)
  If lHandle = 0 Then Exit Sub
  For prm = 6 To 0 Step -1
      DeleteMenu GetSystemMenu(lHandle, False), prm, &H400
  Next prm
End Sub


Private Sub EnableSystemMenu()
  Dim lHandle As LongPtr: On Error Resume Next
  lHandle = FindWindowA(vbNullString, Application.Caption)
  GetSystemMenu lHandle, True
End Sub



Dans l'application, quand j'ouvre le classeur j'obtient bien ma page plein écran (clique droit et touche échappe bloqués), la croix est toujours bien grisée et ne fonctionne plus . Par contre les commandes réduire et niveau inf. sont toujours fonctionnelles.
Quand j'utilise le commandbutton5 avec mot de passe, je récupère bien toutes les fonctionnalités (comme prévu).

Mais pourquoi donc ces deux commandes restent activent????
Répondre
willy- 6 sept. 2017 à 22:54
 
Salut, c'est bon : j'ai pas vu d'erreurs ; pour réduire et niveau inf, c'est bien
réduire et restaurer, n'est-ce pas ? et si tu parles des commandes, c'est
que c'est celles du menu système (coin haut gauche), oui ? car sinon,
c'est les cases correspondantes (coin haut droit, près de la croix) ; mais
normalement, si un changement est effectué à gauche, il est aussi fait
à droite. Quoiqu'il en soit, si ça ne marche pas, je pense que c'est dû
à la nouvelle interface d'Excel 2013 :

https://msdn.microsoft.com/fr-fr/library/office/dn251093.aspx

J'ai pas encore eu le temps de lire tout cet article ; la solution est
peut-être dedans (ou au moins un indice) ; tu trouveras peut-être
ce qu'il faut ?

Moi, je sèche, et je ne crois pas que je pourrai t'aider davantage ;
donc en espérant qu'un autre intervenant t'apporte une solution,
continue de surveiller les prochaines réponses.  ;)
 
Répondre
Landry85 90Messages postés mardi 5 novembre 2013Date d'inscription 17 septembre 2017 Dernière intervention - 6 sept. 2017 à 23:23
Merci encore pour ton aide ;-)
Répondre
eriiic 21050Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 5 sept. 2017 à 15:39
Bonjour,

je confirme, je parlais bien de la demande.
Merci d'avoir remis dans le contexte le pivert.
Willy, pourquoi ne t’inscris-tu donc pas ? Est-ce toi que l'on voit sous de multiples pseudos depuis quelques temps ?
eric
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonsoir à tous les deux :-)

Merci beaucoup pour l'engouement porté à ce projet, faut pas se mettre dans des états comme ça :-) KeepCalm = True :-D

Finalement tout fonctionne avec ce dernier code (j'ai adapté les trues et les falses). J'ai vérifié, effectivement il n'est pas nécessaire de désigner le "Sinon" comme l'a précisé Cs_Le Pivert.
@Willy : c'est vrai en analysant un peu, c'était très bête ce que j'avais écrit : If mot de passe ok...blabla et la même chose après le end if (complètement con :-D )

Bon sans se gronder :-), est ce qu'il y a une ligne ou deux à rajouter pour supprimer le bouton "réduire" et "niveau inf." en haut à droite de la fenêtre? (ce doit être la dernière façon de sortir du pleine écran sans mot de passe)
J'ai bien trouvé un code (assez long) que je vais tester de suite mais peut être qu'une ligne suffit...

Merci encore et bonne soirée/journée
willy- 4 sept. 2017 à 23:54
 
Finalement tout fonctionne avec ce dernier code (j'ai adapté les trues et les falses).

Merci de me rendre justice ! contrairement à ce que pensait cs_Le Pivert
je savais bien que mon code VBA te serait utile !  :)

Pour ce que tu as demandé ensuite, c'est tellement spécial que je laisse
le soin à cs_Le Pivert de te répondre.  ;)

Bonne soirée/journée à toi aussi.
 
Répondre
Donnez votre avis
Utile
+0
plus moins
http://img-19.ccm2.net/Fay5aCoAD4jZsK2dIgrCldYB_P0=/5ddce8c39a1540328cb7f7bca2ff98dd/ccm-ugc/Image1.jpg
Donnez votre avis
Utile
+0
plus moins
http://img-19.ccm2.net/OjI3022EgjyKSq1Lk9mEgJN4DIc=/6be4e2ee4ebe4c71a8ed79552796ec39/ccm-ugc/Image3.jpg
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !