Comparaison d'un nom saisi dans un userform / liste

  • Initiateur de la discussion Initiateur de la discussion jf27
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !😱

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
 
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é. 😛

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...

@+
 
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...
😕😡 If plage_oem.Cells(I).Value = Me.OEM_Name.Value And plage_veh.Cells(I).Value = Me.VehicleName.Value Then😡😕

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

Je sèche....
 
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

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 ???
 
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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
2 K
Retour