OVH Cloud OVH Cloud

Rechercher une ligne avec VBA

2 réponses
Avatar
Jean Pierre Belfort
Bonjour,

J'ai une base de donnée avec des Noms en colonne A et des info diverses les
colonnes suivantes.
Au dessus de ma base, j'ai un peu de place (la base commence à la ligne 10)
et j'ai créer un bouton "rechercher nom" = ouverture d'un Userform dans
lequel j'indique le nom, puis OK, et mon nom recherché arrive en case A7.

Ensuite, j'ai fait cette macro (elle permet de selectionner la ligne du nom
dans la base) dans le code de la page en question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$7" And Target.Count = 1 Then
Range("A10:A10000").Find(What:=Target.Value, LookIn:=xlValues).Select
End If
End Sub

Le problème est que si le nom n'est pas dans la base, il y a un Bug.

Comment résoudre ce problème ?
Merci
JPB

2 réponses

Avatar
JB
Bonjour,

C'est normal

Sub cherche()
nomCherche = InputBox("Nom cherché? ")
On Error Resume Next
Err = 0
Range("A2:A14").Find(What:=nomCherche, LookIn:=xlValues).Select
If Err = 0 Then
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
Else
MsgBox "Pas trouvé"
End If
On Error GoTo 0
End Sub

ou

Sub cherche2()
nomCherche = InputBox("Nom cherché? ")
Set result = Range("A2:A14").Find(What:=nomCherche,
LookIn:=xlValues)
If result Is Nothing Then
MsgBox "Non trouvé"
Else
Range(result, result.End(xlToRight)).Select
End If
End Sub

Cordialement JB


Bonjour,

J'ai une base de donnée avec des Noms en colonne A et des info diverses les
colonnes suivantes.
Au dessus de ma base, j'ai un peu de place (la base commence à la ligne 10)
et j'ai créer un bouton "rechercher nom" = ouverture d'un Userform da ns
lequel j'indique le nom, puis OK, et mon nom recherché arrive en case A 7.

Ensuite, j'ai fait cette macro (elle permet de selectionner la ligne du n om
dans la base) dans le code de la page en question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$7" And Target.Count = 1 Then
Range("A10:A10000").Find(What:=Target.Value, LookIn:=xlValues).Se lect
End If
End Sub

Le problème est que si le nom n'est pas dans la base, il y a un Bug.

Comment résoudre ce problème ?
Merci
JPB


Avatar
Jean Pierre Belfort
Merci JB, ca marche très bien,

Et, si je veux écrire toujours en majuscules dans ma input box ?

Dois je placer ceci ?

Private Sub inputbox_Change()
Dim T As String
T = UCase(Me.inputbox)
Me.inputbox = T
End Sub

Merci
Cordialement
JPB