Bonjour le forum,
je viens vers vous car j'ai un petit soucis pour créer une macro insertion deux lignes avec mise en faorme a cause de la protection anti coller copier glisser.
j'ai créer un planning afin de suivre l'évolution des travaux de mon equipe.
Afin d'éviter des modifications de la mise en page pour les utilisateurs
dans le Private Sub Worksheet_Change(ByVal Target As Range)
j'empêche le copier coller et le copier glisser
j'ai également mis une macro qui me permet de verrouiller la feuille Bouton protéger : c'est pour moi
les utilisateurs peuvent remplir les cellules non verrouillées du classeur par texte et couleur avec petit bouton ( qui ôtent la protection et la remettent)
Cela fonctionne parfaitement.
mes problèmes sont :
uniquement pour moi :
est il possible de protéger également la structure du classeur ? avec mon bouton .....!
Pour l'ensemble :
les ligne du planning fonctionnent par deux.
je souhaiterai en sélectionnant deux lignes communes pouvoir insérer ces deux lignes en dessous mais en conservant le formatage complet des lignes sans les valeurs .
actuellement j'arrive a déprotéger et insérer mais je n'ai plus le formatage des cellules .
Je pense que cela viens de la protection anti copier glisser coller mais cette protection est nécessaire pour éviter l'anarchie dans le tableau
Je vous met ci dessous les different codes que j'ai mis
Dans le worksheet
pour protéger déproteger
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 Private Sub Worksheet_Change(ByVal Target As Range) 'COPIER GLISSER ET COPIER COLLER==================================== Dim tablo, sel As Range On Error Resume Next 'sécurité Application.EnableEvents = False 'désactive l'action des évènements tablo = Target 'mémorise les valeurs 'POUR LE GLISSER on reseclectionner la plage Set sel = Selection ' on reselectionne la plage Application.Undo 'annule le collage Target = tablo 'rétablit uniquement les valeurs sel.Select 'plage Application.EnableEvents = True ' FIN COPIER COLLER / COPIER GLISSER End Sub
Et un code des boutons pour metre couleur dans cellules non verouillées pour les utilisateurs
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43 Private Sub Cde_Protect_Click() 'Déclaration variables Dim F As Worksheet Dim Str_password As String Dim Str_Name As String Str_password = "" Str_Name = ActiveSheet.Name If Cde_protect.Caption = "Protéger" Then 'Activation protection For Each F In Worksheets F.Select ActiveSheet.Protect Password:=Str_password, DrawingObjects:=True, Contents:=True, Scenarios:=True Next F Cde_protect.Caption = "Déprotéger" Else 'Désactivation protection 'test pour savoir si autorisé If InputBox("Entrez le mot de passe !", "PASSWORD") <> Str_password Then Exit Sub For Each F In Worksheets F.Select ActiveSheet.Unprotect Password:=Str_password Next F Cde_protect.Caption = "Protéger" End If 'retour feuille bouton Sheets(Str_Name).Activate End Sub
voila ou j'en suis et je bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub CommandButton1_Click() 'PLANIF Dim motif As String ActiveSheet.Unprotect Password:="" Selection.Interior.ColorIndex = 43 ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
je suis conscient que je demande beaucoup mais , je ne suis pas tres fort en VBA je ne fait que commencer.
Je vous en remercie tous d'avance
A bientôt
Kyliann
Partager