Fonction Else qui fonctionne comme AND

Bonjour,

Je souhaite ajouter des informations dans un tableau à partir d'un userform.

Pour cela je souhaite que le formulaire intègre les données dans la ligne correspondante au nom/prénom/ddn ou créer une nouvelle ligne si les critères ne sont pas vérifiés.

J'utilise le code suivant qui fonctionne quand les critères ne sont pas vérifiés (création d'une nouvelle ligne) mais qui si les critères sont vérifiés me corrige les informations dans la ligne correspondante ET crée une nouvelle ligne. Je ne comprends pas pourquoi, je ne souhaite pas qu'une nouvelle ligne soit crée si les critères sont vérifiés.

Merci de votre aide

Dim i As Integer
i = .Range("a65536").End(xlUp).Row + 1

Dim tableau As Variant
N = nom.Value
M = prenom.Value
p = ddn.Value
tableau = Range("a1").CurrentRegion
For j = LBound(tableau, 1) + 1 To UBound(tableau, 1)
    If tableau(j, 1) = N And tableau(j, 2) = M And tableau(j, 3) = p Then
        .Range("D" & j).Value = TextBox2
    Else: .Range("D" & i).Value = TextBox2
End if
Next l

Bonjour,

For j... Next l ???

Ceci dit ton Else est exécuté de multiples fois, quand tes tests sont négatifs.
Enlève-le et essaie comme ça :

Dim ok As Boolean
'....
For j = LBound(tableau, 1) + 1 To UBound(tableau, 1)
    If tableau(j, 1) = N And tableau(j, 2) = M And tableau(j, 3) = p Then
        .Range("D" & j).Value = TextBox2
        ok = True: Exit For
    End If
Next j
If Not ok Then .Range("D" & j).Value = TextBox2

si tu peux avoir lignes à faire, enlève le exit for
eric

Merci beaucoup ! Effectivement c'est parfait comme ça.

Rechercher des sujets similaires à "fonction else qui fonctionne comme"