Comparaison d'un nom saisi dans un userform / liste

jf27

XLDnaute Occasionnel
bonjour tout le monde,

J'ai un pb sur un test d'égalité entre 2 string.

je saisie 2 noms dans un Userform.
Si c'est 2 noms existent dans une liste de données je veux afficher un message d'erreur et retourner dans l'userform à l'endroit où je saisie

Si ces 2 noms n'existent pas, je rajoute une ligne dans ma liste.

Les variables prennent bien les bonnes valeurs, le for fonctionne mais le test d'égalité ne fonctionne pas
J'ai bien les infos saisies qui sont déjà dans la liste, donc A=B sauf que la condition A=B n'est pas reconnue.

Je vous mats le code ce sera plus clair.


Merci par avance. Comme d'hab ce doit être tout bête quand on a la réponse !:eek:

Set Plage_OEM = Range("A2", Range("A2").End(xlDown))
Set Plage_VEH = Range("b2", Range("b2").End(xlDown))
'Convert to BOLD
cOEM = UCase(Me.OEM_Name.Value)
cVEH = UCase(Me.VehicleName.Value)

For I = Plage_OEM.Cells.Count To 2 Step -1
MsgBox (" test nom")
'Convert to BOLD
Plage_OEM.Cells(I).Value = UCase(Plage_OEM.Cells(I).Value)
Plage_VEH.Cells(I).Value = UCase(Plage_VEH.Cells(I).Value)

'Compare current file name with existing ones in database
OEM = Plage_OEM.Cells(I).Value
VEH = Plage_VEH.Cells(I).Value
cOEM = Me.OEM_Name.Value
cVEH = Me.VehicleName.Value
Msg = " "
Msg = "i:" & I
Msg = Msg & Chr(10) & "cellule:" & OEM
Msg = Msg & Chr(10) & "cellule:" & VEH

Msg = Msg & Chr(10) & "ce:" & cOEM
Msg = Msg & Chr(10) & "ce:" & cVEH

MsgBox Msg

If OEM = cOEM And VEH = cVEH Then
MsgBox ("This file already exist")
Me.OEM_Name.SetFocus
Exit Sub
End If
Next
 

porcinet82

XLDnaute Barbatruc
Re : Comparaison d'un nom saisi dans un userform / liste

Salut,

Ce aurait tout de meme ete plus simple avec le fichier, m'enfin voila ton bout de code un peu épuré. :p

Code:
Set plage_oem = Range("A2", Range("A2").End(xlDown))
Set plage_veh = Range("B2", Range("B2").End(xlDown))
[COLOR=seagreen]'au cas ou tes plages ne seraient pas de taille identique, tu boucles sur la plus grande
[/COLOR]If plage_oem.Cells.Count > plage_veh.Cells.Count Then
    For I = plage_oem.Cells.Count To 2 Step -1
        If plage_oem.Cells(I).Value = Me.OEM_Name.Value And plage_veh.Cells(I).Value = Me.VehicleName.Value Then
            MsgBox ("This file already exist")
            Me.OEM_Name.SetFocus
            Exit Sub
        End If
    Next
Else
    For I = plage_veh.Cells.Count To 2 Step -1
        If plage_oem.Cells(I).Value = Me.OEM_Name.Value And plage_veh.Cells(I).Value = Me.VehicleName.Value Then
            MsgBox ("This file already exist")
            Me.OEM_Name.SetFocus
            Exit Sub
        End If
    Next
End If

Il ne faut pas oublier Option Compare Text en début de module (avant tout autre code) qui permet de ne pas tenir compte de la casse, ce qui évite du code inutile...

@+
 

jf27

XLDnaute Occasionnel
Re : Comparaison d'un nom saisi dans un userform / liste

Hello

Merci pour ta réponse.
Je suis d'accord avec tes corrections. Je ne connaissais pas Compare Text.

Mais malheureusement le pb reste le même.
Mon affichage de variables montre bien 2 variables égales, sauf que le test d'égalité ne fonctionne pas et ne renvoie pas le message This file already existe...
:confused::mad: If plage_oem.Cells(I).Value = Me.OEM_Name.Value And plage_veh.Cells(I).Value = Me.VehicleName.Value Then:mad::confused:

Je ne peux pas filer le fichier sur le net, c du boulot..

Je sèche....
 

Lii

XLDnaute Impliqué
Re : Comparaison d'un nom saisi dans un userform / liste

Bonjour jf, Porcinet,

veux-tu trouver les 2 données sur la même ligne ou pas ?
Voir le fichier joint avec les 2 cas (et une simplification du code de Porcinet* pour le premier).
* pour ma part, je ne pense pas assez à Compare ...
 

Pièces jointes

  • USF Si 2 cas.zip
    9.6 KB · Affichages: 49

jf27

XLDnaute Occasionnel
Re : Comparaison d'un nom saisi dans un userform / liste

re salut

j'ai bien eu le code.
En fait ton code, celui de lii et le mien marchent tous les 3 . C'est vrai que les votres sont plus propres !
Sauf que lorsque je le mets dans mon appli excel complète, le test de comparaison échoue.
Pas de plantage mais même si A=B le test A=B renvoie faux...

Je fouille je simplifie mon code pour trouver ce qui pollue mais pour l'instant que dalle...
des idées ???
 

jf27

XLDnaute Occasionnel
Re : Comparaison d'un nom saisi dans un userform / liste

dans le fichier joints, les 2 colonnes auxquelles je compare

si OEM du userform= cellule OEM ET si VEH userforme = VEH alors la fiche existe déjà....


j'ai beau vérifier les formats, afficher les états des variables... que dalle

merci de ton aide
 

Pièces jointes

  • formatdonnées.xls
    16 KB · Affichages: 72

jeanpierre

Nous a quitté
Repose en paix
Re : Comparaison d'un nom saisi dans un userform / liste

Bonjour jf27, Romain, Lii,

Sauf erreur, ton fichier n'a pas de USF.

Le reste s'ensuit. De plus, les deux colonnes n'ont pas trop de logique par rapport à ta question... ou à ta dernière explication...

Que fait-on ?

A te lire plus explicite.

Jean-Pierre
 

Lii

XLDnaute Impliqué
Re : Comparaison d'un nom saisi dans un userform / liste

Re,

avec ton style (que j'ai gardé) les variables de dernières lignes sont mal initialisées à cause des vides.
Voir un autre exemple de style d'écriture dans le fichier joint.
 

Pièces jointes

  • UsfSi 2 cas Fin .zip
    7.4 KB · Affichages: 43

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso