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.
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.
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
PS: la fonction de recherche :
Merci de m'aider,
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
Cordialement.
Partager