Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro sur feuille protégée par un mot de passe

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rodge5895

XLDnaute Occasionnel
Bonjour,
Dans le fichier joint, en filtrant en C6, le prénom apparait en F2.😉
Mais la macro ne fonctionne plus si la feuille est protégée.🙁
Comment modifier le code pour intégrer un mot de passe ?😕😕
Cdt
Rodge5895
 

Pièces jointes

Re : macro sur feuille protégée par un mot de passe

Bonjour à tous


Que n'as-tu pas compris dans le lien que j'ai mis dans ton premier fil?

Qu'est qui est trop confus?

Ci-dessous extrait de l'aide en ligne de VBA (accessible par la touche F1)
UserInterfaceOnly Argument de type Variant facultatif. Cet argument a la valeur True pour protéger l'interface utilisateur, mais pas les macros. Si cet argument n'est pas spécifié, la protection s'applique à la fois aux macros et à l'interface utilisateur.

Ps: fais une recherche sur le forum (la loupe en haut à droite) ou sur le net avec ce mot clé:
UserInterfaceOnly Tu trouveras des exemples d'emploi de celui-ci

EDITION I: salut kjin 😉

EDITION II : Bonsoir JCGL 😉
 
Dernière édition:
Re : macro sur feuille protégée par un mot de passe

Salut,
Code:
Private Sub Worksheet_Calculate()
With ActiveSheet
.Unprotect "rodge5895"
[f2] = ""
If .AutoFilterMode Then
     With .AutoFilter.Filters(2)
         If .On Then
             x = Mid(.Criteria1, 2, Len(.Criteria1))
             [f2] = Application.VLookup(x, [C2:D4], 2, 0)
         End If
     End With
End If
.EnableAutoFilter = True
.Protect "rodge5895"
End With
End Sub
rodge5895 étant le MDP
A+
kjin
 
Re : macro sur feuille protégée par un mot de passe

Bonjour à tous,

Peux-tu essayer ceci :

VB:
Private Sub Worksheet_Calculate()    With ActiveSheet
        .Protect UserInterfaceOnly
        [F2] = ""
        If .AutoFilterMode Then
            With .AutoFilter.Filters(2)
                If .On Then
                    x = Mid(.Criteria1, 2, Len(.Criteria1))
                    [F2] = Application.VLookup(x, [C2:D4], 2, 0)
                End If
            End With
        End If
        .Protect Password:="xld", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    End With
End Sub

Le mot de passe est xld

A+ à tous
 
Re : macro sur feuille protégée par un mot de passe

bonsoir à tous,
Ca ne marche pas en copié collé des formules proposées..
Ou j'ai du certainement louper quelque chose..

Par exemple, pour faire simple dans le fichier joint ci après, janvier février sont protégés par un mdp (qui est 1)
et bien sûr le filtre en B8 de la page BASE entraîne une erreur..

Quelqu'un sait-il modifier le code du fichier pour qu'il marche enfin ? 🙄
merci !
Rodge
 

Pièces jointes

Re : macro sur feuille protégée par un mot de passe

bonjour à tous
bonjour JCGL

oups en effet.. désolé de perturber un peu la discussion avec l'envoi de 2 fichiers
non, je n'ai que 2 fichiers en tout mais on parle bien d'un même sujet : macro sur feuilles protégées.

Si tu as (ou quelqu'un d'autre) a la solution sur le fichier de mon dernier fil d'hier soir 21h06, ça serait génial..

@+
rodge
 
Re : macro sur feuille protégée par un mot de passe

Bonjour à tous,
Vous avez gentiment cherchés une solution à mon post #1 mais malheureusement aucune réponse ne convenait :
Staple1600 : post #2
Je n'ai pas un niveau en VBA suffisant pour interpréter des programmations et recherches sur le net sur ce sujet (d'où ma présence sur ce forum..)
Kjin : post #3
La formule proposée ne marche pas car une fois le code rentré et la feuille protégée avec le mdp,
Impossible de réutiliser le filtre car la feuille est protégée (et l'option "utiliser le filtre automatique" se décoche seule..)
JCGL : post #4
La formule proposée ne marche pas car une fois le code rentré et la feuille protégée avec le mdp,
Le prénom sensé aller en F2 ne s'inscrit plus..

D'où ma proposition d'adresser un nouveau fichier avec une demande similaire mais sur 2 feuilles (au cas où !) .. mais auquel personne ne sais répondre non plus..

Merci quand même à tous d'avoir planché sur ce pb (complexe),
31/12.. bon réveillon et bonne fin d'année à tous !
Rodge🙂
 
Re : macro sur feuille protégée par un mot de passe

Bonjour à tous ,

peut-être comme ceci:


Private Sub Worksheet_Calculate()
With ActiveSheet
.Unprotect "rodge5895"
[f2] = ""
If .AutoFilterMode Then
With .AutoFilter.Filters(2)
If .On Then
x = Mid(.Criteria1, 2, Len(.Criteria1))
[f2] = Application.VLookup(x, [C2😀4], 2, 0)
End If
End With
End If
.Protect "rodge5895", AllowFiltering:=True
End With
End Sub


a+
 
Re : macro sur feuille protégée par un mot de passe

Bonjour à tous
Bonjour Isab et merci pour ton message car.. la solution proposée fonctionne parfaitement 😀😀:
Merci aux autres internautes d'avoir pris du temps également sur ce sujet.

Mais on rencontre une difficulté supplémentaire lorsque le fichier comporte plusieurs feuilles (cf fichier joint) :
Le code de l'onglet BASE -non protégé par mdp- permet le filtre automatique synchronisé (colonne en rouge) sur les feuilles suivantes : pas de pb à ce niveau.

Ces feuilles (janvier, février) filtrent car elles ne sont pas protégée par un mdp.
Comment les protéger sans créer un conflit (nommé "erreur d'exécution 1004") avec la macro de la feuille BASE.

Je pense que la syntaxe d'Isab est la bonne mais comment l'intégrer dans ce contexte ?

@+ rodge5895
 

Pièces jointes

Re : macro sur feuille protégée par un mot de passe

Bonjour à tous, bonjour Isab et bonne année 2014 avec pleins de progrès dans Excel !😉

Dans le fichier joint (FILTRE AUTO) les formules proposées hier ne fonctionnent malheureusement pas..

En fait, le pb recherché est relativement simple, bien que nous n'ayons aucune réponse (pour l'instant..):
Ce fichier fonctionne parfaitement à condition que les onglets janvier février ne soient pas protégés par mdp

En fait, ma seule question : quel est le code qui autorise la macro à fonctionner sans message d'erreur dés lors que ces 2 onglets janvier février sont protégés par mdp ?

merci et @+
rodge
 

Pièces jointes

Re : macro sur feuille protégée par un mot de passe

Bonjour à tous,

Comme déjà proposé sur une autre discussion mais similaire et qui fonctionne chez moi et avec ce que j'ai compris de l"énoncé :

VB:
Option Explicit

Private Sub Worksheet_Calculate()
    Dim Feuil As Worksheet, Crit$
    For Each Feuil In Worksheets
        Feuil.Unprotect
        If Feuil.Name <> Me.Name Then Feuil.AutoFilterMode = False
    Next
    If Me.AutoFilterMode Then
        If Me.AutoFilter.Range.Column = 1 And _
           Me.AutoFilter.Range.Columns.Count > 1 Then
            If Me.AutoFilter.Filters(2).On Then
                If Me.AutoFilter.Filters(2).Operator = 0 Then
                    Crit = Me.AutoFilter.Filters(2).Criteria1
                    For Each Feuil In Worksheets
                        If Feuil.Name <> Me.Name Then
                            Feuil.Range("A6:D" & Feuil.[B65536].End(xlUp).Row).AutoFilter 2, Crit
                            Feuil.Protect
                            Else
                            Feuil.Unprotect
                        End If
                    Next
                End If
            End If
        End If
    End If
End Sub


A+ à tous
 

Pièces jointes

Re : macro sur feuille protégée par un mot de passe

Bonjour JCGL et bonne année !
bonjour à tous,

On est quasi bon sur cette dernière proposition : les feuilles janvier et février sont protégées (mais sans mdp) et la macro n'affiche aucune erreur. 😀

Toutefois :
1/ si on doit insérer un filtre sur ces 2 feuilles janvier février (par exemple si on veut filtrer les références en col D), la macro ne l'autorise pas même si on coche l'option "utiliser un filtre automatique" en voulant protéger la feuille
Comment rendre actif un filtre à cet endroit tout en maintenant (bien sûr) la feuille protégée ?

2/ la protection de la feuille ne marche que s'il n'y a pas de mdp.
Si l'on en insère un, il demande d'enlever la protection sur chaque feuille janvier février dés que l'on demande un filtrage dans la colonne rouge de l'onglet BASE (??)
Comment tout simplement autoriser un mdp sur ces onglets janvier février ?

Cordialement
rodge
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
593
Réponses
3
Affichages
152
Réponses
4
Affichages
213
  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
262
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…