Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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
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
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
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
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
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..
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
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 ?
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 ?
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
JC Filtre Automatique sur Feuilles Mois Protégées.xls
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 ?
- 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