resultat d'une recherche par userform

post prod

XLDnaute Occasionnel
Bonjour a tous voila mon problème j'ai bidouiller une macro a partir de plusieurs autre macro
pour faire une recherche de donnée sur trois feuille par rapport a un numéro d'armoire qui est identique sur les trois feuille
je voudrai que le résultat des trois feuille apparaisse dans trois listbox différente
j'ai a peu prés réussie mais les trois feuilles apparaisse toute dans la listbox 1
alors que je devrai avoir
résultat de la recherche feuille 1 dans listbox 1
résultat de la recherche feuille 2 dans listbox 2
et résultat de la recherche feuille 3 dans listebox 3
voir fichier recherche

merci d'avance
 

Pièces jointes

  • recherche.xls
    61.5 KB · Affichages: 41
  • recherche.xls
    61.5 KB · Affichages: 45

Robert

XLDnaute Barbatruc
Repose en paix
Re : resultat d'une recherche par userform

Bonjour Post Prod

En pièce jointe ton fichier modifié et commenté. J'ai fait à ma manière...
 

Pièces jointes

  • Postprod_v01.zip
    26.9 KB · Affichages: 56
Dernière édition:

jp14

XLDnaute Barbatruc
Re : resultat d'une recherche par userform

Bonjour Robert, post prod
Ci dessous un code a tester, sans les tableaux.
Code:
'ICI C'est la mise en place initialisation
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 10
ListBox2.ColumnCount = 10
ListBox3.ColumnCount = 10
End Sub


'ICI C'est le Moteur de Recherche
Private Sub CommandButton1_Click()
Dim C As Range, Ok As Boolean, j As Byte, Box1 As MSForms.ListBox
Dim Tablo() As String
Dim Text As String
Dim S As Byte
Dim Firstaddress As String
Dim i As Integer, X As Integer, L As Integer
Text = Me.TextBox1
If Text = "" Then Exit Sub

For S = 1 To Worksheets.Count
If Worksheets(S).Name <> "HOME" Then
        Ok = False
        If UCase(Worksheets(S).Name) = "ARMOIRES" Then
            Set Box1 = ListBox1
            Ok = True
        ElseIf UCase(Worksheets(S).Name) = "LUMINAIRES" Then i = 2
             Set Box1 = ListBox2
            Ok = True
        ElseIf UCase(Worksheets(S).Name) = "AMPOULES" Then i = 3
            Set Box1 = ListBox3
            Ok = True
        End If
        If Ok = True Then
            With Sheets(S).UsedRange
            Set C = .Find(Text, LookIn:=xlValues, LookAt:=xlPart)
            If Not C Is Nothing Then
                Firstaddress = C.Address
                Do
                      Box1.AddItem C.Offset(0, 1 - C.Column).Text
                            For X = 2 To 8
                                Box1.List(Box1.ListCount - 1, X - 1) = C.Offset(0, X - C.Column).Text
                            Next X
                   Box1.List(Box1.ListCount - 1, Box1.ColumnCount - 2) = Sheets(S).Name
                    Box1.List(Box1.ListCount - 1, Box1.ColumnCount - 1) = C.Address(0, 0)
                    i = i + 2
                Set C = .FindNext(C)
                Loop While Not C Is Nothing And C.Address <> Firstaddress
            End If
            End With
        End If
        
End If
Next S
If i = 0 Then
MsgBox "Le Texte " & Text & " n'a pas été trouvé" & vbCrLf & "Faites un essai sur une partie du nom", vbCritical, Sign
Exit Sub
End If


End Sub

Bonne journée

JP
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
194
Réponses
14
Affichages
291

Statistiques des forums

Discussions
312 299
Messages
2 086 996
Membres
103 423
dernier inscrit
Guyom GIL