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