Affichage simplifié

Résolu
Landry85 Messages postés 96 Statut Membre -  
Landry85 Messages postés 96 Statut Membre -
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).

https://img-19.ccm2.net/8dU5ym4YTMpbAeMBQLWnpVPk0qs=/54f00ba59a4a433d80b614f19cd3594d/ccm-ugc/Image2.jpg

8 réponses

Résumé de la discussion

Landry cherche à rendre Excel plus lisible pour ses collègues en cachant les feuilles sources et la barre des tâches, en désactivant l'enregistrement à la fermeture, tout en conservant pour lui un accès de modification.

Plusieurs réponses techniques proposent des scripts ou codes pour masquer l'interface et créer des éléments de contrôle (bouton de fermeture, mode plein écran) afin de restreindre l'accès aux feuilles.

Des ressources et fichiers de test sont partagés pour permettre d'essayer les configurations suggérées, avec des références à des messages d'erreur et à des détails de versions Excel.

L'échange met aussi en évidence des positions divergentes et des réactions parfois vives, avec des participants annonçant des abandons et une réorientation de la discussion.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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

    @+ Le Pivert
    0
    1. Landry85 Messages postés 96 Statut Membre 2
       
      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.
      0
  2. Landry85 Messages postés 96 Statut Membre 2
     
    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?
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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à
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      perso on me passe un fichier comme ça c'est direct poubelle ;-)
      L'utilisateur est assez grand pour savoir ce qu'il veut voir à l'écran.
      Là c'est infantiliser, pas du tout agréable je trouve.
      Ca n'engage que moi... :-)
      eric
      0
    2. Landry85 Messages postés 96 Statut Membre 2
       
      Merci cs_Le Pivert,

      Pour le blocage, je ne comprends pas trop le code, est il à mettre dans thisWorbook? y a t'il des commandbuttons à créer?

      Pour le zoom, je ne vois pas comment l'utiliser non plus, mais je vais fouiner.



      @eriiic : Mon but est d'avoir une interface très simplifié (minimum de pollution visuelle).
      Pour l'utilisation de cet outil, il n'y a pas besoin des fonctionnalités excel, et j'ai
      voulu élaboré ce petit projet pour nous faciliter la vie quotidienne au travail, pas
      pour faire de la maintenance suite à des manipulations malheureuses.
      Mais merci pour ton avis...
      0
    3. willy > Landry85 Messages postés 96 Statut Membre
       
       
      Bonjour Landry85,

      Je te propose cette adaptation du code VBA de cs_Le Pivert :

      
      Option Explicit
      
      ' plein écran
      Private Sub CommandButton1_Click()
        Application.OnKey "{ESCAPE}", "" ' touche Echap inactive
        Application.DisplayFullScreen = True ' affichage plein écran
        ActiveWindow.DisplayWorkbookTabs = False ' onglets masqués
        CacheBOutils ' masque les barres d'outils
        ActiveWindow.Zoom = 200 ' zoom 200 %
      End Sub
      
      ' rétabli
      Private Sub CommandButton2_Click()
        Application.OnKey "{ESCAPE}" ' touche Echap active
        Application.DisplayFullScreen = False ' non plein écran
        ActiveWindow.DisplayWorkbookTabs = True ' onglets affichés
        AfficheBOutils ' affiche les barres d'outils
        ActiveWindow.Zoom = 100 ' zoom 100 %
      End Sub
      
      Sub CacheBOutils()
        Dim CmdB As CommandBar
        For Each CmdB In Application.CommandBars
          CmdB.Enabled = False
        Next CmdB
      End Sub
      
      Sub AfficheBOutils()
        Dim CmdB As CommandBar
        For Each CmdB In Application.CommandBars
          CmdB.Enabled = True
        Next CmdB
      End Sub
      
      

      Tes 2 boutons seront par exemple sur Feuil1 => place ce code VBA
      dans le code de Feuil1 (pas dans un module, ni ThisWorkbook).

      Sur Feuil1, crée 2 boutons de commande puis affecte-leur la macro
      correspondante comme suit :

      affecte au 1er     bouton la macro : CommandButton1_Click()
      affecte au 2ème bouton la macro : CommandButton2_Click().

      Cordialement
       
      0
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Landry85 Messages postés 96 Statut Membre
       
      Je croyais que tu aurais compris avec le classeur que je t'ai mis à télécharger où placer les macros!!!
      0
    5. Landry85 Messages postés 96 Statut Membre 2 > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      Je n'avais pas de nouveau fichier dans ta réponse :-(
      Mais ce qui m'a fait douter, ce sont les commandbuttons.

      Donc j'ai bien utilisé cette nouvelle méthode, mais pour le coup il faut que je clique sur le bouton pour mettre le plein ecran.
      Je suis en tentative de déclenchement du bouton automatiquement à l'ouverture du classeur... et pour le moment c'est pas fructueux
      0
  4. Landry85 Messages postés 96 Statut Membre 2
     
    *
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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!!!!!!!!!!
    0
    1. Landry85 Messages postés 96 Statut Membre 2
       
      Bonjour Cs_ Le Pivert,

      Tu n'as surement pas lu la suite de ce post, donc je me permet de contacter via cette réponse car je cherche à supprimer ou griser les touches "réduire" et "niveau inf" (et la croix si y'a pas le choix). J'ai trouvé un code que tu as fourni sur un autre post mais il ne fonctionne pas chez moi, j'obtiens un message d'erreur que tu pourras, si tu le veux bien, voir en capture d'ecran.

      https://forums.commentcamarche.net/forum/affich-34839864-affichage-simplifie#23

      Si tu as la solution, Merci beaucoup
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Landry85 Messages postés 96 Statut Membre
       
      Oui j'ai la solution, mais quand une tiers personne met la pagaille, cela ne m'incite pas à répondre!

      a mettre dans un module:

      Option Explicit
      Private Const MF_BYPOSITION As Long = &H400
      Private Const mlNUM_SYS_MENU_ITEMS As Long = 9
      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
      'Vasant Nanavati, Andrew Baker (mpep), fs
      Public Sub DisableSystemMenu()
      Dim lHandle As Long, lCount As Long
          
        On Error Resume Next
        lHandle = FindWindowA(vbNullString, Application.Caption)
        If lHandle <> 0 Then
      
            'désactive la croix de fermeture d'Excel
            'et la commande Fermeture du menu système
           ' DeleteMenu GetSystemMenu(lHandle, False), 6, &H400
            'supprime le trait de séparation du menu système avant Fermeture
          '  DeleteMenu GetSystemMenu(lHandle, False), 5, &H400
            'supprime la commande Agrandissement du menu système
            'et la commande Agrandir de la fenêtre
            DeleteMenu GetSystemMenu(lHandle, False), 4, &H400
            'supprime la commande Réduction du menu système
            'et désactive la commande Réduire de la fenêtre
            DeleteMenu GetSystemMenu(lHandle, False), 3, &H400
            'désactive la commande Déplacement du menu système
          '  DeleteMenu GetSystemMenu(lHandle, False), 2, &H400
            'supprime la commande Déplacement du menu système
            'et désactive la commande Dimension
            DeleteMenu GetSystemMenu(lHandle, False), 1, &H400
            'supprime la commande Restauration du menu système
            'et désactive la commande Restaurer de la fenêtre
            DeleteMenu GetSystemMenu(lHandle, False), 0, &H400
              
        End If
      End Sub
      'rétablit le menu sytème et les commandes de fenêtre (Réduire, Agrandir, Fermer)
      Public Sub EnableSystemMenu()
          Dim lHandle As Long
          On Error Resume Next
          lHandle = FindWindowA(vbNullString, Application.Caption)
          GetSystemMenu lHandle, True
      End Sub


      pour appeler:

      'bloqué
      DisableSystemMenu
      'débloqué
      EnableSystemMenu


      voilà
      bonne continuation
      0
    3. willy > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
       
      @cs_Le Pivert

      quand une tiers personne met la pagaille
      Tu ferais mieux de surveiller ton orthographe au lieu d'accuser les autres
      de mettre la pagaille simplement parce qu'ils proposent des solutions !
      C'est « tierce personne », pas « tiers personne ».

      Tu n'as pas à m'en vouloir d'avoir repris ton code puisque j'ai bien signalé
      que c'était le tien ! et j'espère que tu t'es rendu compte que j'ai pris bien
      soin de séparer les subs, ce que tu n'avais pas fait, et eriiic a même écrit :
      perso on me passe un fichier comme ça c'est direct poubelle ;-)

      https://forums.commentcamarche.net/forum/affich-34839864-affichage-simplifie#5

      De plus le demandeur Landry a confirmé que mon code lui a été utile :
      Finalement tout fonctionne avec ce dernier code (j'ai adapté les trues et les falses).

      https://forums.commentcamarche.net/forum/affich-34839864-affichage-simplifie#21
       
      0
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > willy
       
      Tu as oublié une ligne dans la citation de eriiic, il parlait de la demande de Landry85 et non de mon code!

      perso on me passe un fichier comme ça c'est direct poubelle ;-)
      L'utilisateur est assez grand pour savoir ce qu'il veut voir à l'écran.


      Je vais arrêter de polémiquer dans une discussion stérile.

      J'abandonne ce post
      0
    5. Landry85 Messages postés 96 Statut Membre 2 > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      J'y arrive pas... :-(

      Ci-joint un fichier test :

      https://mon-partage.fr/f/i2s2V93B/
      0
  7. Landry85 Messages postés 96 Statut Membre 2
     
    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
    0
    1. willy
       
       
      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.
       
      0