VBA : test si valeur existante

Bonjour

Dans un USF, je n'arrive pas à tester si la valeur du combo33 existe en colonne A de la feuille "correspondance"

Le but du jeu : s'il ne trouve pas la valeur, il peut créer la nouvelle valeur, sinon, message d'impossibilité d'exécuter la suite de la macro.

Ça pêche où svp ?

Merci d'avance

Dim Trouve As Range
    With Sheets("Correspondance")
        With .Columns("A:A")
        Set Trouve = .Find(ComboBox33, LookIn:=xlValues)
        End With
            If Not Trouve Is Nothing Then
            ligne = Sheets("Correspondance").[A65000].End(xlUp).Row + 1
            Sheets("Correspondance").Cells(ligne, 1) = Me.ComboBox33
            Sheets("Correspondance").Cells(ligne, 2) = Me.TextBox1
            MsgBox "Nouvellecorrespondance enregistrée avec succès"
            Else
            MsgBox "Nouvelle correspondance impossible a créer car déjà existante"
            End If
    End With

J'ai oublié de signaler que c'est lorsque la valeur existe déjà que le code ci-dessus ne fonctionne pas (fait comme si la valeur n'existait pas)

merci

Bonjour.

Je n'utilise jamais find donc j'vais ptet dire une grosse bêtise

If Not Trouve Is Nothing Then

Si la valeur existe on récupère son endroit.

Si elle n'existe pas on a nothing vu ton code.

Tu testes si trouvé n'est pas rien.

Donc si trouvé est quelque chose.

Donc tu entres dans ton then si la valeur existe déjà, c'est pas l'inverse de ce que tu voulais ?

Ou alors j'ai pas assez dormi et je comprends de travers

Bonjour Elhevan

Oui c'est bien ça, j'ai inversé et ça marche nickel.

Merci beaucoup et bonne journée

Bonjour,

.find se sert des derniers paramètres utilisés par Ctrl+F.

Tu ne définis pas son paramètre lookAt:=xlWhole (tout) ou xlPart (contient)

Tu risques donc d'avoir des mauvaises détections selon les cas et ce que tu veux vraiment.

Défini lookAt:=

eric

Rechercher des sujets similaires à "vba test valeur existante"