OVH Cloud OVH Cloud

Match ou Find ???

2 réponses
Avatar
Denys
Bonjour à tous,

Sur un Userform, l'usager doit entrer un no de compagnie dans un textbox. Je
voudrais que dès que l'usager sort du textbox qu'Excel recherche dans la
colonne G de la feuille si ce no n'apparait pas déjà. S'il apparait, alors je
voudrais que le nom apparaissant dans la cellule de la colonne H "offset (0,
-1)" s'inscrive automatiquement dans le textbox2...

Voici ou j'en suis:

Private Sub TextBox3_AfterUpdate()
Dim NoErreur As Long
On Error Resume Next
Application.WorksheetFunction.Find (ou encore Match) TextBox3.Value,
[G:G], 0
NoErreur = Err.Number
On Error GoTo 0
If NoErreur = 0 Then
Me.TextBox2.Value = ActiveCell.Offset(0, -1).Text
Cancel = True
End If
End Sub

J'ai aussi essayé avec Textbox exit..... Sauriez-vous ou se trouve mon erreur?

Merci

Denys

2 réponses

Avatar
Hervé
Bonsoir Denys,
Regarde si cela te conviens :

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2.Text = ChercherN°(ActiveSheet, TextBox3.Text)
End Sub

Function ChercherN°(Fe As Worksheet, Valeur)
Dim Plage As Range
Dim Cel As Range
With Fe
Set Plage = .Range(.[H1], .[H65536].End(3))
End With
Set Cel = Plage.Find(Valeur, , xlValues)
If Not Cel Is Nothing Then
ChercherN° = Cel.Offset(0, 1).Value
Else
ChercherN° = ""
End If

Set Cel = Nothing
Set Plage = Nothing

End Function

Hervé.

"Denys" a écrit dans le message de news:

Bonjour à tous,

Sur un Userform, l'usager doit entrer un no de compagnie dans un textbox.
Je
voudrais que dès que l'usager sort du textbox qu'Excel recherche dans la
colonne G de la feuille si ce no n'apparait pas déjà. S'il apparait, alors
je
voudrais que le nom apparaissant dans la cellule de la colonne H "offset
(0,
-1)" s'inscrive automatiquement dans le textbox2...

Voici ou j'en suis:

Private Sub TextBox3_AfterUpdate()
Dim NoErreur As Long
On Error Resume Next
Application.WorksheetFunction.Find (ou encore Match) TextBox3.Value,
[G:G], 0
NoErreur = Err.Number
On Error GoTo 0
If NoErreur = 0 Then
Me.TextBox2.Value = ActiveCell.Offset(0, -1).Text
Cancel = True
End If
End Sub

J'ai aussi essayé avec Textbox exit..... Sauriez-vous ou se trouve mon
erreur?

Merci

Denys





Avatar
michdenis
Bonjour Denys,

Plusieurs événements peuvent être utiliser ...

'---------------------
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Trouve As Range
With Worksheets("Feuil1")
Set trouve = .Range("G:G").Find(CDbl(Me.TextBox1), , _
xlValues, xlWhole, xlByColumns)
End With
If Not trouve Is Nothing Then
trouve.Offset(0, -1) = trouve
Me.TextBox2 = Me.TextBox1
End If

End Sub
'-------------------------


Salutations!



"Denys" a écrit dans le message de news:
Bonjour à tous,

Sur un Userform, l'usager doit entrer un no de compagnie dans un textbox. Je
voudrais que dès que l'usager sort du textbox qu'Excel recherche dans la
colonne G de la feuille si ce no n'apparait pas déjà. S'il apparait, alors je
voudrais que le nom apparaissant dans la cellule de la colonne H "offset (0,
-1)" s'inscrive automatiquement dans le textbox2...

Voici ou j'en suis:

Private Sub TextBox3_AfterUpdate()
Dim NoErreur As Long
On Error Resume Next
Application.WorksheetFunction.Find (ou encore Match) TextBox3.Value,
[G:G], 0
NoErreur = Err.Number
On Error GoTo 0
If NoErreur = 0 Then
Me.TextBox2.Value = ActiveCell.Offset(0, -1).Text
Cancel = True
End If
End Sub

J'ai aussi essayé avec Textbox exit..... Sauriez-vous ou se trouve mon erreur?

Merci

Denys