Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Besoin d'aide pour adapter une macro pour effectuer une recherche

JONEY76

XLDnaute Occasionnel
Bonsoir à toutes et à tous

Voici le petit soucis,

Ci dessous, c'est le code pour effectuer une recherche sur toutes les feuilles d'un classeur et pour afficher les résultats dans une listbox

La modification que je souhaiterai, c'est de faire cette même recherche mais sur 1 feuille précise uniquement nommée "base" et d'afficher les résultats

Je pense que le problème vient en partie du DIM WS et du For Each ws In Worksheets
With ws


Code:
Private Sub CommandButton1_Click()
Dim ws
On Error Resume Next

ListBox1.Clear
If TextBox1 = "" Then Exit Sub
For Each ws In Worksheets
   With ws

        Set C = .UsedRange.Find(TextBox1, LookIn:=xlValues)
        If Not C Is Nothing Then
            firstAddress = C.Address
            Do
                dcol = .Cells(C.Row, 256).End(xlToLeft).Column
                With ListBox1
                    If dcol > .ColumnCount Then .ColumnCount = dcol
                    .ColumnWidths = "100" & "20" & "20" & "120" & "120"
                    
                    .AddItem ws.Cells(C.Row, 1)
                    X = ListBox1.ListCount - 1
                    For i = 2 To dcol
                        ListBox1.List(X, i - 1) = ws.Cells(C.Row, i)
                    Next
                End With
                Set C = .UsedRange.FindNext(C)
            Loop While Not C Is Nothing And C.Address <> firstAddress
        End If
    End With
Next
End Sub



Merci d'avance pour le coup de pouce !!!
 

Pièces jointes

  • joney search.xlsm
    22.4 KB · Affichages: 75
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : VBA - Besoin d'aide pour adapter une macro pour effectuer une recherche

Bonsoir JONEY76, le forum,

Comme ça sûrement :

VB:
Private Sub CommandButton1_Click()

On Error Resume Next
'effacer la recherche précédente
ListBox1.Clear

'si le textbox est vide alors on sort
If TextBox1 = "" Then Exit Sub

   With Sheets("Base")
   

        Set C = .UsedRange.Find(TextBox1, LookIn:=xlValues)
        If Not C Is Nothing Then
            firstAddress = C.Address
            Do
                dcol = .Cells(C.Row, 256).End(xlToLeft).Column
                With ListBox1
                    If dcol > .ColumnCount Then .ColumnCount = dcol
                    .ColumnWidths = "70" & "70" & "70" & "70" & "70"
                    
                    .AddItem Sheets("Base").Cells(C.Row, 1)
                    X = ListBox1.ListCount - 1
                    For i = 2 To dcol
                       ListBox1.List(X, i - 1) = Sheets("Base").Cells(C.Row, i)
                   Next
                End With
                Set C = .UsedRange.FindNext(C)
            Loop While Not C Is Nothing And C.Address <> firstAddress
        End If
    End With
End Sub

A te relire

Yaloo
 

JONEY76

XLDnaute Occasionnel
Re : VBA - Besoin d'aide pour adapter une macro pour effectuer une recherche

Salut!!
Merci beaucoup, je suis en train de tester, à première vue aucun soucis !!!
Merci pour ton aide !!!
 

JONEY76

XLDnaute Occasionnel
Re : VBA - Besoin d'aide pour adapter une macro pour effectuer une recherche

Re,

Dans la listbox, je souhaiterai afficher 20 colonnes, il m'en affiche 10 max

Quelle est la partie du code à modifier pour lui faire dire 20 ??

Merci pour vos réponses
 

Yaloo

XLDnaute Barbatruc
Re : VBA - Besoin d'aide pour adapter une macro pour effectuer une recherche

Bonsoir Joney, le forum,

Dans l'aide de la listbox, plus particulièrement dans l'aide du ColumnCount nous avons ceci :


Utilises plutôt une listview si tu veux avoir plus de 10 colonnes.

A+
Yaloo
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
167
Réponses
7
Affichages
326
Réponses
0
Affichages
152
Réponses
2
Affichages
236
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…