UltrAzimut
XLDnaute Nouveau
Bonjour,
Dans mon projet actuel, je développe une fonction recherche. Apres de nombreux bug deux fonctions semblent fonctionner mais je souhaite conserver la "meilleure". La fonction en question recherche si un client existe dans ma base.
Premiere solution :
Deixieme solution :
Question subsidiaire : Si je veux rechercher dans une colonne precise, je met :
mais ça ne fonctionne pas ! Ai-je oublier quelque chose ?
Merci pour vos avis et conseils
Dans mon projet actuel, je développe une fonction recherche. Apres de nombreux bug deux fonctions semblent fonctionner mais je souhaite conserver la "meilleure". La fonction en question recherche si un client existe dans ma base.
Premiere solution :
Code:
Private Sub rechercher_Click()
Dim var As String
Dim ligne As Integer
var = UCase(UserForm2.recherche.Value)
If var = "" Then
msgbox "Veuillez indiquer Le nom du client !", vbInformation, "Attention"
End If
If var <> "" Then
Sheets("societes").Select
On Error Resume Next 'si erreur a la ligne suivante on continu quand meme
Cells.Find(What:=var, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
If Err = 0 then 'si pas d'erreur
'Activer la cellule la plus à gauche
ligne = ActiveCell.Row
Cells(ligne, 1).Select
'Inscrire les résultats de la recherche dans les champs correspondants
UserForm2.modification.Value = ActiveCell.Offset(0, 1).Text
UserForm2.cloture.Value = ActiveCell.Offset(0, 2).Text
UserForm2.naturejuridique.Value = ActiveCell.Offset(0, 3).Text
UserForm2.raisonsociale.Value = ActiveCell.Offset(0, 4).Text
UserForm2.anciennement.Value = ActiveCell.Offset(0, 5).Text
UserForm2.numero.Value = ActiveCell.Offset(0, 6).Text
UserForm2.voie.Value = ActiveCell.Offset(0, 7).Text
UserForm2.adresse.Value = ActiveCell.Offset(0, 8).Text
UserForm2.BP.Value = ActiveCell.Offset(0, 10).Text
UserForm2.CP.Value = ActiveCell.Offset(0, 11).Text
UserForm2.ville.Value = ActiveCell.Offset(0, 12).Text
UserForm2.telephone.Value = ActiveCell.Offset(0, 13).Text
UserForm2.siret.Value = ActiveCell.Offset(0, 14).Text
UserForm2.representants.Value = ActiveCell.Offset(0, 17).Text
UserForm2.qualite.Value = ActiveCell.Offset(0, 18).Text
UserForm2.pouvoirs.Value = ActiveCell.Offset(0, 19).Text
UserForm2.infos.Value = ActiveCell.Offset(0, 20).Text
Else 'si erreur il y a
Msgbox "Le client n'existe pas!", VbEclamation, "Erreur Client..."
Err.Clear
End If
End If
End Sub
Deixieme solution :
Code:
Private Sub rechercher_Click()
Dim var As String
Dim ligne As Integer
var = UCase(UserForm2.recherche.Value)
If var = "" Then
msgbox "Veuillez indiquer Le nom du client !", vbInformation, "Attention"
End If
If var <> "" Then
With Worksheets("societes")
.Activate
Dim search As Range
Set search = Cells.Find(What:=var, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= False)
If Not search Is Nothing Then
search.Activate
Sheets("societes").Select
'Activer la cellule la plus à gauche
ligne = ActiveCell.Row
Cells(ligne, 1).Select
'Inscrire les résultats de la recherche dans les champs correspondants
UserForm2.modification.Value = ActiveCell.Offset(0, 1).Text
UserForm2.cloture.Value = ActiveCell.Offset(0, 2).Text
UserForm2.naturejuridique.Value = ActiveCell.Offset(0, 3).Text
UserForm2.raisonsociale.Value = ActiveCell.Offset(0, 4).Text
UserForm2.anciennement.Value = ActiveCell.Offset(0, 5).Text
UserForm2.numero.Value = ActiveCell.Offset(0, 6).Text
UserForm2.voie.Value = ActiveCell.Offset(0, 7).Text
UserForm2.adresse.Value = ActiveCell.Offset(0, 8).Text
UserForm2.BP.Value = ActiveCell.Offset(0, 10).Text
UserForm2.CP.Value = ActiveCell.Offset(0, 11).Text
UserForm2.ville.Value = ActiveCell.Offset(0, 12).Text
UserForm2.telephone.Value = ActiveCell.Offset(0, 13).Text
UserForm2.siret.Value = ActiveCell.Offset(0, 14).Text
UserForm2.representants.Value = ActiveCell.Offset(0, 17).Text
UserForm2.qualite.Value = ActiveCell.Offset(0, 18).Text
UserForm2.pouvoirs.Value = ActiveCell.Offset(0, 19).Text
UserForm2.infos.Value = ActiveCell.Offset(0, 20).Text
Else
msgbox "Le client n'existe pas !", vbExclamation, "Erreur Client..."
End If
End With
End If
End Sub
Question subsidiaire : Si je veux rechercher dans une colonne precise, je met :
Code:
Columns(4).cells.fin(...)
Merci pour vos avis et conseils