IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Problème d'autorisation à certaines lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Par défaut [VBA-E] Problème d'autorisation à certaines lignes
    bonjour,

    je dispose d'un fichier comportant sur une même feuille plusieur décisions(description, entité émettrice et date échéance).
    Chaque décision se déroule sur une même ligne.

    Mon problème est que certaines entités n'ont pas l'autorisation de voir, ni de modifier toute les décision (cause: hiérarchie).

    Je voudrais à l'aide d'une macro (demande de mot de passe) permettre à l'entité désignée par le mot de passe de pouvoir voir et modifier uniquement les lignes pour lesquelles elle dispose de l'autorisation.

    (Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub autorisation()
        Dim i As Integer, j As Integer
        i = CInt(InputBox("Veuillez entrer votre mot de passe :"))
    ''''''''''''' Blocage Agence (entité inférieur , il y a des lignes qu'elle ne peut pas voir ''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If i = 12 Then
            Sheets("AGO").Visible = True
            Sheets("Listes").Visible = True
            Sheets("Liste_Mots_Clés").Visible = True
            Sheets("Statistiques").Visible = True
            Workbooks(1).Worksheets("AGO").Activate
            For j = 6 To 100
                If Workbooks(1).Worksheets("AGO").Cells(j, 4).Value _  = "ligne_a_cacher" Then
                    Rows(j).EntireRow.Hidden = True
                End If
            Next j
        Else
    '''''''''''' Blocage Entité supérieure (elle peut tout voir) '''''''''''''''''''''''''''''''''''''''''''''''''''''''
            If i = 18 Then
                Sheets("AGO").Visible = True
                Sheets("Listes").Visible = True
                Sheets("Liste_Mots_Clés").Visible = True
                Sheets("Statistiques").Visible = True
                Workbooks(1).Worksheets("AGO").Activate
                Cells.EntireRow.Hidden = False
            Else
                MsgBox "Vous n'avez pas accès à l'outil.", vbExclamation
            End If
        End If
    End Sub
    Cela cache bien les lignes mais après, il suffit de tout sélectionner dans Excel et de mettre afficher. Hors je veux vérrouiller cet affichage.

    Merci.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu peu utiliser les mécanismes de protections feuilles.. d'Excel...
    pour protéger une feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(1).Worksheets("AGO").protect "bbil"
    et déprotége avant masquage/démasquage ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(1).Worksheets("AGO").Unprotect "bbil"
    PS : bbil c'est orignal comme mot de passe

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Par défaut
    Je vois, mais cela m'empèche de rentrer de nouvelles décision.
    Il faudrait en fait que une fois les lignes masquées, l'utilisateur ne puisse pas les afficher. Mais qu'ils puissent tout de même rentrer de nouvelles décisions.

    Merci.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Avant de verrouiller la feuille sélectionne toutes les cellules, puis format protection et décoche "vérouillée"...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Par défaut
    Merci,

    mais cela m'empêche d'ajouter de nouvelles décisions. Je n'ai peut être pas compris quelles cellules je dois dévérouiller (toutes les cellules de la feuille?), ou comment vérrouiller la feuille.

    Mais ce n'est peut être pas possible.
    Car même si j'y arrive il suffit que l'utilisateur, à l'ouverture du fichier décide de ne pas activer les macros pour que toutes les décisions soient visibles.

    Merci.

    Sinon g mis ton Protect comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Workbook_Open()
    Dim j As Integer
        Workbooks(1).Worksheets("AGO").Unprotect "bbil"
        Sheets("AGO").Visible = True
        Sheets("Listes").Visible = True
        Sheets("Liste_Mots_Clés").Visible = True
        Sheets("Statistiques").Visible = True
        Workbooks(1).Worksheets("AGO").Activate
            For j = 6 To 100
                If Workbooks(1).Worksheets("AGO").Cells(j, 4).Value = "CODIR" Then
                    Rows(j).EntireRow.Hidden = True
                End If
            Next j
        Workbooks(1).Worksheets("AGO").Protect "bbil"
    End Sub

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Lorsqu'une feuille est protégé (menu outils protection, protéger la feuille) l'on ne peu écrire que dans les cellules qui ne sont pas verrouillés (par défaut elle le sont toutes), pour déverrouillé les cellules, sélectionne les toutes, puis format cellule protection....

    Je suppose que ta macro est dans le classeur de donnée remplace les :
    Workbooks(1).. par thisWorkBook..


    ensuite avant la fermeture masque les lignes à protéger.. ainsi elles seront masquées même si l'utilisateur n'accepte pas les macros à l'ouverture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
         ThisWorkbook.Worksheets("AGO").Unprotect "bbil"
         For j = 6 To 100
                If ThisWorkbook.Worksheets("AGO").Cells(j, 4).Value = "CODIR" Then
                    Rows(j).EntireRow.Hidden = True
                End If
            Next j
        ThisWorkbook.Worksheets("AGO").Protect "bbil"
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  2. [VBA-E] Problème de numérotation de lignes
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/08/2006, 11h06
  3. [VBA-E] Problème d'autorisation à certaines pages
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/08/2006, 17h44
  4. [VBA-E] Problème de remplissage de lignes
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/08/2006, 11h37
  5. [VBA-E] Problème de suppression de lignes
    Par coxi77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2006, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo