VBA avec 2 conditions qui ne semblent pas fonctionner

Bonjour

J'ai ce code qui, s'il fonctionnait, démarrerait la macro 1 quand le mot "Nvl Col" (seulement quand ce mot se retrouve sur la rangée 1) serait double cliqué. J'ai essayé au lieu de c.Value, ActiveCell mais sans succès...

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
'00
Cancel = True
    If c.Row <> 1 Or c.Count > 1 And c.Value = "Nvl Col" Then
        Call Macro1
        Else
        Exit Sub
    End If
End Sub

J'ai trouvé :

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
'00
Cancel = True
    If c.Row < 1 Or c.Count > 1 Or c.Value = "Nvl Col" Then
        Range("A1") = Range("A1") + 1
        Call Macro1
        Else
        Exit Sub
    End If
End Sub

C'était le "<" et le And qu'il fallait que je change pour Or

Bonjour,

D'après tes explications, j'aurais mieux vu

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
    Cancel = True
    If c.Row = 1 And c.Value = "Nvl Col" Then
        Call Macro1
    Else
        Exit Sub
    End If
End Sub

A+

Bonjour Frangy!

Tu as bien raison, ton code est plus clair que celui que j'essayais de raboutiner . J'aurais par contre besoin que je puisse avoir plusieurs "If" imbriqués, c'est à dire que si le mot écrit dans la rangée un soit "Nvl Col2" par exemple, que ça démarre la macro 2 et ainsi de suite... Je suis toujours un peu tanné de me frappé le nez à mon ignorance à toutes les fois que j'essai quelque chose de nouveau. Dans une cellule, je pourrais le faire, mais le code du VBA est différent du =if(...

Bref, J'ai changé le code pour ne pas démarrer la macro et faire une addition dans une autre cellulle, c'est plus rapide pour voir si le code fonctionne... Le premier "If" fonctionne et m'ajoute 1 dans la valeur A1, mais la deuxième IF ne fait rien du tout ...

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
    Cancel = True
    If c.Row = 1 And c.Value = "Nvl Col" Then
    Range("A1") = Range("A1") + 1
    Else
        If c.Row = 1 And c.Value = "Nvl Col2" Then
        Range("A2") = Range("A2") + 1
        Else
        Exit Sub
    End If
    End If
End Sub

Re-bonjour,

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
    Cancel = True
    If c.Row = 1 And c.Value = "Nvl Col" Then
        Range("A1") = Range("A1") + 1
    ElseIf c.Row = 1 And c.Value = "Nvl Col2" Then
        Range("A2") = Range("A2") + 1
    Else
        Exit Sub
    End If
End Sub

A+

Super chouette! Merci Frangy!

Rechercher des sujets similaires à "vba conditions qui semblent pas fonctionner"