Reconnaitre mot dans feuille

sososo82

XLDnaute Occasionnel
Bonjour à tout le forum!!!

Voila je me suis essayé à faire un programme VBA qui me permettrait grace à un Userform de saisir des données transférées ensuite sur une feuille.

Pour éviter des saisies doubles, j'aimerais que l'utilisateur soit prévenu par un msgbox lorsqu'il rentre le même nom (d'un client par exemple) qu'un nom déja entré et présent sur la feuille.
J'ai ce programme qui fonctionne à moitié, à moitié car si je tape dans le textbox du USF trois lettre d'un mot déja présernt sur la feuille il le reconnait et me signale qu'il a déja été entré alors que ce n'est pas le même nom...

Exemple:
Dans la feuille:
Jeannot
Michel
Louis

Je tape dans mon USF un nouveau client: Jean
et avec mon prog il reconnait le début de jeannot et me signale que jean est déja entré....


Voici le code du bouton Valider du USF:

Private Sub Valider_click()
Dim LigH As String

With Sheets("Dossiers")
On Error Resume Next
LigH = .Range("A:A").Find(What:=Me.ES_nomCli).Row
On Error GoTo 0
If LigH <> "" Then
MsgBox ("Client déjà entré!" & ES_nomCli.Value)
Else

End If
End With


Merci pour toute aide
 

tototiti2008

XLDnaute Barbatruc
Re : Reconnaitre mot dans feuille

Bonjour sososo82,

la méthode Find a d'autres arguments que What, notamment un argument qui permet de spécifier s'il suffit de trouver le texte dans la cellule (xlPart) ou si la cellule doit être intégralement égale au texte (xlWhole)... de mémoire
l'aide VBA devrait t'en dire plus ;)
 

sososo82

XLDnaute Occasionnel
Re : Reconnaitre mot dans feuille

Oui tu as raison je mérite d'être grondé... :(

Merci j'avais tout essayé avec "lookin" et tout mais je pensais pas qu'il fallait garder le "What:="


Merci beaucoup tototiti ça marche bien!

J'ai toutefois une autre question dans le genre
Mon programme arpès avoir tester si la valeur est ou non dans la feuille renvoi un msgbox l'indiquant à l'utilisateur.

Serait'il possible que si l'utilisateur veuille modifier le client (si c'est le meme client mais qui change d'age par exemple) le nom de l'ancien et ses données soient effacées et remplacé par les nouvelles données?

j'ai mis ce code:

With Sheets("Dossiers")
On Error Resume Next
LigH = .Range("A:A").Find(What:=Me.ES_nomCli, LookAt:=xlwhole).Row
On Error GoTo 0
If LigH <> "" Then
MsgBox "Voulez vous enregistrer les modifications du dossier suivant" & ES_nomCli.value), vbyesno
If vbYes Then
.Range("A" & LigH).EntireRow.Delete
Else: Exit Sub

End If
End If

End With

Et à la suite j'ai le programme qui enregistre la saisie mais lorsque je clique sur le oui du message box il efface l'ancien (ça ça marche) mais n'enregistre pas le nouveau!

Code qui suit:

DerLig = Sht.Range("A" & Rows.Count).End(xlUp).Row + 1
Sht.Range("A" & DerLig).Value = ES_nomCli.Value

(J'ai simplifié mon programme)
Pourquoi n'enregistre t'il pas le nouveau dossier?


Merci
 

sososo82

XLDnaute Occasionnel
Re : Reconnaitre mot dans feuille

Zut pardon c'est une erreur...

C'est parce que dans mon programme je joue avec plusieurs feuilles et j'ai deux USF en fait c'est la même feuille en question dans mon exemple (on garde dossier par ex)
puisque de toutes façons il suffit de faire d'autres with pour basculer sur une autre feuille...

J'espère m'être fait comprendre...


En fait il ya dim Sht as worksheet au début
 

sososo82

XLDnaute Occasionnel
Re : Reconnaitre mot dans feuille

Ah ok

Autre question alors:

Comment faire pour que l'age du client apparaisse dans le msgbox de mon premier post???

Exemple: msgbox qui dit:

"Client déja entré: jean, 17 ans"

Sachant que l'age es rentré dans un textbox nommé "ES_age"

Merci d'avance
 
Dernière édition:

sososo82

XLDnaute Occasionnel
Re : Reconnaitre mot dans feuille

Bonjour tout le monde!

Merci bien tototiti ça résoud mon problème de msgbox!


En revanche je vois toujours pas pourquoi le programme ne fonctionne pas lorsque je veux simplement qu'il modifie les donnée d'un client après une seconde saisie...(cf ma deuxième question du sujet)
 

tototiti2008

XLDnaute Barbatruc
Re : Reconnaitre mot dans feuille

Bonjour sososo82,

as-tu essayé d'éxécuter en pas à pas pour voir la valeur des variables et comprendre où ça plante ? Mets un point d'arrêt sur ton code au moment où il est censé remplacer les données et regarde les valeurs des variables.
 

sososo82

XLDnaute Occasionnel
Re : Reconnaitre mot dans feuille

Ca y est j'ai trouvé la solutionnnn!!!!!!!!!

Wouhou!

En fait j'ai utilisé xlwhole pour m'en sortir je comprend ce qui s'est passé

Merci beaucoup pour ton aide tototiti

A bientot Xldownload


PS: ça faisait tout de meme plusieurs semaines que ce problème me titillait
 

sososo82

XLDnaute Occasionnel
Re : Reconnaitre mot dans feuille

Toutefois n'y a t'il pas moyen de faire au lieu de
par exemple:

.Range("A"& LigG).entirerow.delete

de faire

.Range("A"&LigG).entirerow."il l'envoie dans une autre feuille en supprimant la ligne de sa feuille d'origine?"

Merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 497
Membres
103 236
dernier inscrit
Menni