Bonjour et déjà merci de votre aide,

Voilà j'ai créé une fonction de recherche qui prend en paramètre une saisie, et un integer. Et qui doit rechercher si ma saisie ce trouve dans plusieurs onglets à la fois.

Pour naviguer entre mes onglets j'utilise donc un integer qui va dans la fonction changer d'onglet sélectionné.

Pour stocker le tableau de résultats j'utilise donc un multipage, et je voudrais que le résultat de ma recherche soit bien disposer comme dans le fichier excel c'est-à-dire que les résultat de la recherche sur l'onglet A de excel vont dans l'onglet A du multipage.

Pour cela j'ai fais une tripe boucle ou i et le nombre de ligne trouvé, k le nombre d'onglets et j le nombre de cellule que je veux récupérer. je stock et tri les résultat dans une listview. tablist est un tableau de listView.

Chaque listView est dans une page du multipage.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
For k = 1 To NbOnglet
            For i = 1 To 1
                tabList(k - 1).Le_LISTVIEW.ListItems.Add , , Saisierecherche
                    For j = 2 To 15
                          tabList(k - 1).Le_LISTVIEW.ListItems(i).ListSubItems.Add , , (ResultRecherche.recherche(Saisierecherche, k)(i, j - 1))
                    Next j
                Next i
         Next k
Pour la première recherche c'est-a-dire pour k=1 et pour tablist(k-1=0) dans l'onglet 0 les résultat du premier onglet s'affiche pour le reste j'ai le dernier onglet, mais 2 d'entre eux qui sont au milieu n'ont rien alors qu'il y a bien un champ identique.

PS: la fonction de recherche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Public Function recherche(resultat As Integer, k As Variant) As Variant()
    'Déclaration de la variable pour le nombre de ligne dans la colonne
    Dim cellule As String
    Dim nbLigne As Integer
    Dim compteur As Integer
    Dim nomOnglet As Object
 
    'On sélectionne la bonne page
    Sheets(k).Select
 
 
    'Tableau pour stocker les différentes lignes.
    Dim ligneTrouver(10, 15) As Variant
    'on affecte le nombre de ligne  nbLigne non vide de la colonne
    nbLigne = CInt(WorksheetFunction.CountA(Range("B6:B400")))
    'On parcours la colonne. On commence à 6 car il a 4 ligne personnalisable +1 pour le nom de la colonne
    For i = 6 To nbLigne + 6
            'On regarde si la valeur de la cellule est égale au paramètre rechercher
        If (resultat = Cells(i, 1).Value And Cells(i, 1).Value) Then
            'on augmente le compteur du tableau
            compteur = compteur + 1
            For j = 1 To 16
                'On stocke la valeur de la cellule
                ligneTrouver(compteur, j - 1) = Cells(i, j).Value
                End If
            Next j
        End If
    Next i
    recherche = ligneTrouver
End Function
Merci de m'aider,

Cordialement.