Conflit Procédure VBA

Bonjour,

Je vous explique mon problème.

J'ai utiliser le code :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("G3:G1000")) Is Nothing Then
            Target.Font.Name = "Marlett"
                If Target = vbNullString Then
                    Target = "a"
                Else
                    Target = vbNullString
                End If
        End If
Application.ScreenUpdating = True
End Sub


J'obtiens donc la possibilité de double cliqué dans la colonne G pour afficher un symbole.
Je désire appliquer le même code à la colonne H pour afficher un nouveau symbole.

J'ai donc copier coller le code pour changer le nom de la colonne. Lorsque je compile j'obtiens l'erreur suivante :

Nom ambigue détécté : Worksheet_BeforeDouble Click

Merci d'avance

3 réponses

  1. Contributeur
    Bonjour,
    Une autre approche ?
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Select Case Target.Column
        Case 7: Target.Font.Name = "Marlett": Target = IIf(Target = "", "a", "")
            Target.Offset(1, 0).Select
        Case 8: Target.Font.Name = "Marlett": Target = IIf(Target = "", "r", "")
            Target.Offset(1, 0).Select
        End Select
    End Sub

    A+
    1. Modérateur
      Salut,
      Bien vu!!!
      J'avoue ne pas m'être posé la question du code, mais juste trouver la réponse du problème.
      Merci à toi d'être passé par là.
  2. Merci beaucoup, en effet je comprends mieux les choses maintenant :)
    1. Modérateur
      Salut,
      Tu as fait ceci :
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Cancel = True
      Bla Bla Bla
      End Sub
      
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Cancel = True
      Bli Bli Bli
      End Sub


      Et donc VBA ne tolère pas deux évènements identiques en même temps.

      Tu dois faire comme ceci :
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Cancel = True
      Bla bla bla
      Bli Bli Bli
      End Sub


      Soit quelque chose comme :
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Cancel = True
      Application.ScreenUpdating = False
      If Target.Cells.Count > 1 Then Exit Sub
              If Not Intersect(Target, Range("G3:G1000")) Is Nothing Then
                  Target.Font.Name = "Marlett"
                      If Target = vbNullString Then
                          Target = "a"
                      Else
                          Target = vbNullString
                      End If
              End If
      
              If Not Intersect(Target, Range("H3:H1000")) Is Nothing Then
                  Target.Font.Name = "Marlett"
                      If Target = vbNullString Then
                          Target = "a"
                      Else
                          Target = vbNullString
                      End If
              End If
      Application.ScreenUpdating = True
      End Sub