VBA
S
Bonjour,
J’utilise une feuille de notation au travail et je voudrais utiliser le macro pour faciliter la notation.
Le chiffre 10 signifie que la note est optimale, le 7 marque un léger défaut en excès ou en insuffisance, le 4 est un défaut marqué, le 1 est un défaut très pénalisant.
Avec vos aides, j’ai réussi à déplacer « X » dans ces 7 cases et mettre « I » à côté pour noter entre deux chiffres.
Mais ça ne marche que pour la colonne « ESSAI 1 » et je n’arrive pas mettre sur les autres colonnes.
Pourriez-vous m’aider SVP ?
Bonjour,
Voir si ça convient :
Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 2 Then .Value = Date: Cancel = True
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' "X"
If Target.Count > 1 Then Exit Sub
Dim Lg%
Lg = Target.Row
If Lg = 1 Or Lg = 2 Or Lg = 3 Or Lg = 4 _
Or Lg = 5 Or Lg = 6 Or Lg = 7 Or Lg = 8 _
Or Lg = 9 Or Lg = 26 Or Lg = 27 Or Lg = 28 _
Or Lg = 36 Or Lg = 37 Or Lg = 38 Or Lg = 39 _
Or Lg = 40 Or Lg = 41 Or Lg = 49 Or Lg = 50 _
Or Lg = 51 Or Lg = 52 Or Lg = 53 Then Exit Sub
If Intersect(Target, [C:I, W:AC, AT:AZ, BR:BW, CN:CT]) Is Nothing Or Target.Row = 1 Then Exit Sub
If Target = "X" Then Exit Sub
Select Case Target.Column
Case 3 To 7
Cells(Target.Row, 3).Resize(, 7).ClearContents
Case 23 To 27
Cells(Target.Row, 23).Resize(, 7).ClearContents
Case 46 To 50
Cells(Target.Row, 46).Resize(, 7).ClearContents
Case 69 To 73
Cells(Target.Row, 69).Resize(, 7).ClearContents
Case 92 To 96
Cells(Target.Row, 92).Resize(, 7).ClearContents
End Select
Target = "X"
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' "I"
If Intersect(Target, [C:I,W:AC, AT:AZ, BR:BW, CN:CT]) Is Nothing Or Target.Row = 1 Then Exit Sub
Cancel = True
If Target = "X" Then
Select Case Target.Column
Case 4, 5, 24, 25, 47, 48, 70, 71, 93, 94
Target.Offset(, -1) = IIf(Target.Offset(, -1) = "", "I", "")
Case 6, 26, 49, 72, 95
If Target.Offset(, -1) = "I" Then
Target.Offset(, -1).ClearContents
Target.Offset(, 1) = "I"
ElseIf Target.Offset(, 1) = "I" Then
Target.Offset(, 1).ClearContents
'target.Offset(, -1) = "I"
Else
Target.Offset(, -1) = "I"
End If
Case 7, 8, 27, 27, 50, 51, 73, 74, 96, 97
Target.Offset(, 1) = IIf(Target.Offset(, 1) = "", "I", "")
End Select
End If
End Sub
ric
Bonjour,
Remarque que je viens de faire une modification dans le code fournis précédemment.
ric
S
Bonjour ric,
J'ai modifié un peu et ça marche très bien.
Merci beaucoup!