VBA

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 ?

11macro-essais.xlsm (57.18 Ko)

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

Bonjour ric,

J'ai modifié un peu et ça marche très bien.

Merci beaucoup!

3macro-essais.xlsm (57.85 Ko)
Rechercher des sujets similaires à "vba"