Bonjour à tous,
J'ai un formulaire d'évaluation qui doit être disponible pour des gérants, mais bien évidemment verrouillé.
Différentes macro et formules dans ce document, qui comporte 2 onglets de travail visibles, et 1 onglet de données (pour les menu déroulant) masqué.
Mon problème porte sur une copie de cellules d'un onglet vers une autre cellule d'un autre onglet.
Fait étrange, quand le fichier est s'ouvre en étant verrouillé, la formule de copie du genrene fonctionne pas. Il faut pour cela déverrouiller l'onglet et reverrouiller pour que ce soit actif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ='FORMULAIRE D''ÉVALUATION GGC'!C2
Mais si le fichier est ouvert en étant déverrouillé (ce qu'on ne veut pas évidemment), ça fonctionne.
Pouvez-vous m'aider?
Voici le fichier :
Pièce jointe 509135
(mot de passe : ren123)
Voici le code de l'onglet où se trouve la cellule à copier (les gérants peuvent saisir de l'information)
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 Private Sub ComboBox3_Change() Range("C7").Value = ComboBox3.Value End Sub Private Sub ComboBox1_Change() Range("C2").Value = ComboBox1.Value End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i, ii If Target.Columns.Count = 1 Then i = Target.Row ii = Target.Value Set Notes = Range("E15:I38") ' plage où les notes existent CouleurVerte = RGB(198, 224, 180) CouleurBlanche = vbWhite If Not Application.Intersect(Notes, Target) Is Nothing Then Cancel = True ActiveSheet.Protect Password:="ren123", UserInterfaceOnly:=True With Target If .Interior.Color = CouleurBlanche Then Range("E" & i & ":I" & i).Interior.Color = CouleurBlanche .Interior.Color = CouleurVerte Range("J" & i).Formula = "= " & ii & "*" & " D" & i & " /5" Else .Interior.Color = CouleurBlanche Range("J" & i).Value = "" End If End With End If End If End Sub
Voici le code de l'onglet où l'information est copiée depuis le premier onglet
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
44
45
46
47
48
49
50
51
52
53
54
55
56 Sub nom_magasin_identique() ' nom_magasin_identique Macro Range("C6:D6").Select ActiveCell.FormulaR1C1 = "='FORMULAIRE D''ÉVALUATION'!R[1]C" Range("C7:D7").Select End Sub Sub nom_employé_identique() ' nom_employé_identique Macro Range("C5:D5").Select ActiveCell.FormulaR1C1 = "='FORMULAIRE D''ÉVALUATION'!R[1]C" Range("C6:D6").Select End Sub Sub date_poste_identique() ' date_poste_identique Macro Range("B3:C3").Select ActiveCell.FormulaR1C1 = "='FORMULAIRE D''ÉVALUATION'!RC[1]" Range("B4").Select End Sub Sub titre_poste_identique() ' titre_poste_identique Macro Range("B2:C2").Select ActiveCell.FormulaR1C1 = "='FORMULAIRE D''ÉVALUATION'!RC[1]" Range("B3:C3").Select End Sub Sub date_eval_identique() ' date_eval_identique Macro Range("C7:D7").Select ActiveCell.FormulaR1C1 = "='FORMULAIRE D''ÉVALUATION'!R[1]C" Range("A8:I8").Select End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i, ii If Target.Columns.Count = 1 Then i = Target.Row ii = Target.Value Set Notes = Range("E11:I19") ' plage où les notes existent CouleurVerte = RGB(198, 224, 180) CouleurBlanche = vbWhite If Not Application.Intersect(Notes, Target) Is Nothing Then Cancel = True ActiveSheet.Protect Password:="ren123", UserInterfaceOnly:=True With Target If .Interior.Color = CouleurBlanche Then Range("E" & i & ":I" & i).Interior.Color = CouleurBlanche .Interior.Color = CouleurVerte Range("J" & i).Formula = Target.Value Else .Interior.Color = CouleurBlanche Range("J" & i).Value = "" End If End With End If End If End Sub
Merci d'avance et bonne journée
Laurent
Partager