L'orsque j'active les macros les filtres automatique se désactiv

Fermé
Gopalkri1 - 24 févr. 2015 à 16:18
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 - 25 févr. 2015 à 18:08
Bonjour,
Pouvez vous m'aider s'il vous plait, j'ai un fichier excel avec du code et lorsque j'active les macros les filtres automatiques se désactives?
Dans mon onglet je fais protéger la feuille et je coche "utiliser le filtre automatique" ... j'enregistre et lorsque j'ouvre à nouveau mon fichier et que j'active les macro je n'ai pas accès au filtre automatique...
Merci de votre aide


A voir également:

3 réponses

m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
25 févr. 2015 à 13:51
Bonjour Gopalkri1

Je suis un peu étonnée par ta macro, car le fait de verrouiller une plage de cellule
(Range("...").Locked = True
n'empêche pas la saisie.
Pour empêcher la saisie, il faut protéger la feuille.

Il faut mettre le code suivant protéger la feuille :
Range("...").Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, AllowFiltering:=True


AllowFiltering autorise l'utilisation des filtres

Pour déprotéger :
ActiveSheet.Unprotect
Range("...").Locked = False


Tu peux bien entendu ajouter un mot de passe

m@rina

3
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
25 févr. 2015 à 02:37
Bonjour,

Et ta macro, elle fait quoi ?
C'est toi qui l'as créée ?

m@rina
1
Bonjour M@rina mon programme bloque en écriture une ligne lorsque deux cellule de cette ligne est remplie.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("C4:C60020")) Is Nothing Then Range("A1").Select
If Not Intersect(Target, Range("E4:M60020")) Is Nothing Then Range("A1").Select
'If Not Intersect(Target, Range("AX4:BD60020")) Is Nothing Then Range("A1").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
'deverrouiller et modifier les cellules
If Not Application.Intersect(Target, Range("BM4:BM6000,BN4:BN6000")) Is Nothing Then
lig = Target.Row
If Range("BM" & lig) <> "" And Range("BN" & lig) <> "" Then
'repondre au message
retval = MsgBox("Archiver la ligne", vbYesNo, "VALIDATION SAISIE")
' si oui verrouiller cellules
If retval = vbYes Then
Range("BQ" & lig & ":CW" & lig).Interior.Color = vbRed
Range("BQ" & lig & ":CW" & lig).Locked = True
Else
End If
End If
End If
End Sub
0
Le Pingou Messages postés 12200 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 novembre 2024 1 450
25 févr. 2015 à 15:21
Bonjour,
Juste au passage, un verrouillage des cellules n'a aucun effet si la feuille n'est pas verrouillée.
Salutations
Le Pingou
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
25 févr. 2015 à 16:31
Hello Le Pingou !
C'est juste ce que j'ai dit !! :)
0
Le Pingou Messages postés 12200 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 novembre 2024 1 450
25 févr. 2015 à 16:58
Bonjour m@rina,
Aye, merci de me le faire remarquer, je n'avais pas vu votre réponse, j'ai surement la tête ailleurs...!
Amicales salutations
Le Pingou
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
25 févr. 2015 à 18:08
po grave! ça permet de faire un coucou ! ;)
0
Merci bcp m@rina
0