N'afficher que les lignes de leur demande (ticketing)

bidounet84 Messages postés 476 Statut Membre -  
 bidounet84 -
Bonjour,

Bonjour,
J'utilise actuellement un fichier Excel où j'enregistre toutes les demandes des utilisateurs, via déjà des macros sur d'autres onglets cela met en forme et ordonne les tâches. Cette partie fonctionne et répond à ce que je souhaite.

Je souhaiterais pour que mes utilisateurs aient une meilleure vision du délai de leur tâche leur mettre le fichier à disposition.
En revanche sur cette onglet "PLANNING" je souhaite qu'ils ne puissent voir que les lignes qui les concernent.

Par exemple en colonne A se trouve le nom du demandeur.
Je voudrais que quand il ouvre le fichier cela lui masque les lignes qui ne le concernent pas et qu'ils ne puissent pas les voir du tout.

Une idée, une piste de comment gérer cela ? Je pense qu'il faudra sûrement un pré-fichier où l'utilisateur saisie un identifiant et un mot de passe.

Configuration: Windows / Chrome 70.0.3538.102

4 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    2 solutions:

    un onglet par utilisateur, on ouvre l'onglet de l’intéressé par mdp (l'admin reste libre d'ouvrir tout)

    ou on cache les lignes sauf celle de l’intéressé par mdp

    pour le 1ère proposition, j'ai un modèle et pour la seconde se servir de l'enregistreur de macro, car c'est en fonction de la configuration de la feuille et de son évolution!
    0
  2. bidounet84 Messages postés 476 Statut Membre 88
     
    Mon planning est global sur un seul onglet, plus facile à lire pour moi.
    Donc je partirais sur ta 2ème solution.

    On est bien d'accord qu'on partirait sur un formulaire de connexion avec un premier fichier Excel qui en ouvrirait un 2ème ?
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      pas nécessairement, il suffit de mettre ce code à adapter dans ThisWorkbook:

      faire Alt F11 pour accèder à l'éditeur ensuite sélectionner ThisWorkbook en haut à gauche

      Option Explicit
      Dim mdp As Variant
      Private Sub Workbook_Open()
       Rows("1:20").EntireRow.Hidden = True ' nombre de lignes cachées
      'on récupere le mot de passe
      mdp = InputBox("Veuillez entrer votre mot de passe", "Mot de passe")
      Select Case mdp
      Case "1234" ' Alain
       Rows("1:6").EntireRow.Hidden = False
      Case "2341" ' Jean
      Rows("7:13").EntireRow.Hidden = False
      Case "3412" ' Claude
      Rows("14:20").EntireRow.Hidden = False
      Case "moi" ' admin
      Rows("1:20").EntireRow.Hidden = False 'on affiche toutes les lignes pour l'admin
      End Select
      End Sub
      
      


      @+ Le Pivert
      0
    2. bidounet84 Messages postés 476 Statut Membre 88
       
      Merci beaucoup je vais essayer d'adapter.
      La seule contrainte que je vois pour l'instant c'est qu'à l'ouverture juste avant la demande de mot de passe, pendant une micro seconde on voit l'ensemble du planning et une capture est possible.
      0
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Pour pallier ce problème ajouter une feuille Sommaire avec ce code:

      Option Explicit
      Dim mdp As Variant
      Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Sheets("Feuil1").Rows("1:20").EntireRow.Hidden = True  ' nombre de lignes cachées adapter nom de la feuille
      End Sub
      Private Sub Workbook_Open()
      Sheets("Sommaire").Select 'adapter nom de la feuille
      'on récupere le mot de passe
      mdp = InputBox("Veuillez entrer votre mot de passe", "Mot de passe")
      Select Case mdp
      Case "1234" ' Alain
       Sheets("Feuil1").Rows("1:6").EntireRow.Hidden = False 'adapter nom de la feuille
      Case "2341" ' Jean
      Sheets("Feuil1").Rows("7:13").EntireRow.Hidden = False
      Case "3412" ' Claude
      Sheets("Feuil1").Rows("14:20").EntireRow.Hidden = False
      Case "moi" ' admin
      Sheets("Feuil1").Rows("1:20").EntireRow.Hidden = False 'on affiche toutes les ligne pour l'admin
      End Select
      End Sub
      
      
      0
    4. bidounet84 Messages postés 476 Statut Membre 88
       
      Ok merci cela fonctionne parfaitement.
      Je vais continuer maintenant pour masquer/afficher les lignes en fonction d'une donnée dans la colonne D
      0
    5. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voici un exemple de ce que l'on peut faire si les lignes évoluent:

      https://www.cjoint.com/c/HKDrRF1IaJQ

      @+ Le Pivert
      0
  3. bidounet84
     
    Ok merci je vais essayer d'adapter.
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Quand tu sélectionnes les lignes avec un clic droit tu peux tout afficher.
      Pour empêcher cela il faut mettre ceci:

      Application.CommandBars("row").Controls("&Afficher").Enabled = False


      et pour rétablir ceci:

      Application.CommandBars("row").Controls("&Afficher").Enabled = True


      ce qui donne:

      Private Sub Workbook_Open()
      derligne = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne
      Sheets("Feuil1").Rows("1:" & derligne).EntireRow.Hidden = True  ' nombre de lignes cachées adapter nom de la feuille
      Sheets("Sommaire").Select 'adapter nom de la feuille
      'on récupere le mot de passe
      mdp = InputBox("Veuillez entrer votre mot de passe", "Mot de passe")
      Select Case mdp
      Case "1234" ' Alain
      Cherche ("Alain")
      lignedebut = ligne
      Cherche ("Jean")
      lignefin = ligne
       Sheets("Feuil1").Rows(lignedebut & ":" & lignefin - 1).EntireRow.Hidden = False 'adapter nom de la feuille
      Application.CommandBars("row").Controls("&Afficher").Enabled = False
      Case "2341" ' Jean
      Cherche ("Jean")
      lignedebut = ligne
      Cherche ("Claude")
      lignefin = ligne
       Sheets("Feuil1").Rows(lignedebut & ":" & lignefin - 1).EntireRow.Hidden = False 'adapter nom de la feuille
      Application.CommandBars("row").Controls("&Afficher").Enabled = False
      Case "3412" ' Claude
      Cherche ("claude")
      lignedebut = ligne
       Sheets("Feuil1").Rows(lignedebut & ":" & derligne).EntireRow.Hidden = False 'adapter nom de la feuille
      Application.CommandBars("row").Controls("&Afficher").Enabled = False
      Case "moi" ' admin
      Sheets("Feuil1").Rows("1:" & derligne).EntireRow.Hidden = False 'on affiche toutes les lignes pour l'admin
      Application.CommandBars("row").Controls("&Afficher").Enabled = True
      End Select
      End Sub


      voilà

      @+ Le Pivert
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      2 petites choses à ajouter:

      remettre la commande Afficher à la fermeture comme ceci:

      Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Application.CommandBars("row").Controls("&Afficher").Enabled = True
      End Sub


      et ensuite si l'on clique sur annuler ou sur le croix de l'input Box, fermer le classeur sans l'enregistrer:

      Case "moi" ' admin
      Sheets("Feuil1").Rows("1:" & derligne).EntireRow.Hidden = False 'on affiche toutes les lignes pour l'admin
      Application.CommandBars("row").Controls("&Afficher").Enabled = True
      Case Else
      ActiveWorkbook.Close False 'ferme sans sauvegarde
      End Select


      a mettre après la case moi comme ceci

      @+ Le Pivert
      0
  4. bidounet84
     
    Bonjour,
    Merci pour tous ces conseils cs_Le Pivert.
    J'ai essayé d'adapter à mon fichier. Ca fonctionne plutôt bien. J'ai mis un peu de temps à répondre pour essayer de bien me débrouiller tout seul.

    2, 3 choses si c'est encore possible.
    A quoi sert exactement les 2 derniers codes que tu m'as donné ?

    Et j'ai constaté aussi qu'à l'ouverture, si je met un mot de passe bidon qui n'existe pas dans la macro, le fichier s'ouvre sur l'onglet "ACCUEIL", puis la personne peut passer dans l'autre onglet puis Afficher l'ensemble des tâches qu'il n'aurait pas dû voir.
    La fonction de ne pas pouvoir démasquer les lignes fonctionne bien quand la personne a mis un bon mot de passe.
    Mais lorsqu'elle met un mot de passe bidon le fichier est accessible sans protection.
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voilà le classeur corrigé. J'ai ajouté une feuille "Ouverture" là où tous les mouvements sont consignés. On peut même l'enregistrer en PDF

      https://www.cjoint.com/c/HLdsYiwVOxQ

      Bonne programmation

      @+ Le Pivert
      0
    2. bidounet84
       
      Merci pour tous les conseils et ligne de code.
      0