Impossible de comparer 2 valeurs

mintri

XLDnaute Occasionnel
Bonjour le forum,

Je viens vous demander un peu d'assistance pour un problème sur lequel je planche depuis 1 bonne heure...

En effet, j'ai un userform avec une textbox dans laquelle l'utilisateur peut entrer une valeur. En appuyant sur le bouton OK de ce même userform, le code suivant doit comparer la valeur saisie dans la textbox avec une colonne sur Excel, afin de déterminer si cette valeur n'existe pas déjà. Voici le code que j'ai écrit :


Private Sub OK_Click()

Dim lastcc As Integer

lastcc = Sheets("CC").Range("B65535").End(xlUp).Row

For i = 2 To lastcc

If NumCC.Value = Sheets("CC").Cells(i, 2).Value Then

MsgBox "Il semblerait que ce centre de coût existe déjà. Merci de vérifier votre saisie."
Exit Sub

End If

Next

End sub
-----

NumCC étant le nom de la textbox. Seulement, même en entrant des données qui existent déjà, je ne parviens pas à valider la condition. J'ai joint le fichier au message, en espérant qu'un de vous puisse m'aider...

Merci infiniment !
 

Pièces jointes

  • test.xlsm
    31.9 KB · Affichages: 41
  • test.xlsm
    31.9 KB · Affichages: 50
  • test.xlsm
    31.9 KB · Affichages: 50
C

Compte Supprimé 979

Guest
Re : Impossible de comparer 2 valeurs

Bonjour Mintri, Dranreb

Pour éviter de perdre du temps, mieux vaut utiliser la méthode "Find"
VB:
Private Sub OK_Click()  Dim LigF As Long, sCode As String
  ' Mémoriser le code
  sCode = Me.NumCC
  ' vérifier que le code a été saisi
  If sCode = "" Then
    MsgBox "Il faut saisir un code"
    Exit Sub
  End If
  ' Si oui, rechercher si n'existe pas déjà
  With Sheets("CC")
    On Error Resume Next  ' Evite le message d'erreur
    LigF = 0  ' Mettre à zéro le numéro de ligne trouvé
    ' Chercher si la valeur existe en revoyant le numéro de ligne trouvé
    LigF = .Range("B:B").Find(What:=sCode, LookIn:=xlValues, LookAt:=xlPart, _
      SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
    On Error GoTo 0 ' Remettre les messages d'erreur
  End With
  ' Si le numéro de ligne est différend de zéro = trouvé
  If LigF <> 0 Then
    MsgBox "Il semblerait que ce centre de coût existe déjà. Merci de vérifier votre saisie."
    Exit Sub
  End If
End Sub

A+
 

Dranreb

XLDnaute Barbatruc
Re : Impossible de comparer 2 valeurs

Bonjour BrunoM45
Ou bien
VB:
If Not Sheets("CC").Range("B:B").Find(What:=sCode, LookIn:=xlValues, LookAt:=xlPart, _
      SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
J'avais pensé le signaler aussi, mais ... la flemme.
Cordialement
 

Discussions similaires

Réponses
15
Affichages
516

Statistiques des forums

Discussions
312 321
Messages
2 087 264
Membres
103 499
dernier inscrit
BODELE