Conflit Procédure VBA

Fermé
Dalona - 14 déc. 2010 à 10:39
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 14 déc. 2010 à 14:46
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
14 déc. 2010 à 11:47
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

0
Merci beaucoup, en effet je comprends mieux les choses maintenant :)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 déc. 2010 à 14:42
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+
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
14 déc. 2010 à 14:46
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à.
0