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
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
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
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
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
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
voila ou j'en suis et je bloque.
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