Bonjour à tous,
J'ai créé une base de donnée avec un formulaire de recherche. J'ai donc créé une macro qui va chercher les informations sur ma feuille 'Base de données' et les copie sur ma feuille 'Recherche de Ressource'.
Tout fonctionne bien mais je ne peux pas protéger ma feuille, sinon la macro ne marche plus. Pourtant j'aimerais bloquer les premières cellules pour éviter les changements maladroit de la part des futurs utilisateurs.
J'ai farfouillé un peu sur les forums et j'ai trouvé ceci :
J'ai bien compris le principe mais je ne sais pas ou place ce petit code dans ma macro.. Pour que ce soit plus clair je vous joins mon fichier.Il est possible d'écrire en VBA dans des cellules verrouillées à condition d'utiliser l'argument UserInterfaceOnly en lui donnant comme valeur True
Exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub T() Dim sht As Worksheet Set sht = ActiveSheet sht.Protect UserInterfaceOnly:=True Range("A1").Value = "Hello" Set sht = Nothing End Sub
Voici aussi la dite macro :
Base de données ressources et outils.xlsm
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 Sub FiltrerUneRessource2() ' ' FiltrerUneRessource2 Macro ' Range("B4:E5").Select Sheets("Base de données").Range("Ressources[#All]").AdvancedFilter Action:= _ xlFilterCopy, CriteriaRange:=Range("B8:E9"), CopyToRange:=Range("A12:I12") _ , Unique:=False Range("A13:H13").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 Range("I13").Select Selection.NumberFormat = "m/d/yyyy" ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("B5").Select End Sub
Merci d'avance pour votre aide !
Maureen
PS : je suis nouvelle sur le forum, si le sujet n'est pas à la bonne place je le changerais =)
Partager