Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marleauc

XLDnaute Occasionnel
Bonjour ,

j'ai récupéré un code sur le forum, et j'aimerais bien le comprendre complètement.

le voici;
Private Sub CommandButton1_Click()

ListView3.ListItems.Clear
If TextBox1 = "" Then Exit Sub
With Sheets("Base")
i = 1
Do
Set c = .Range(.Cells(i, 1), .Cells(i, 10)).Find(TextBox1, LookIn:=xlValues)
If Not c Is Nothing Then
flag = True
IniListview c.Row
End If
i = i + 1
Loop While .Cells(i, 1) <> ""
End With
If Not flag Then MsgBox "Rien trouvé !"
txtTotal = ListView3.ListItems.Count
flag = False

End Sub

bon avec ce code j'aimerais pouvoir effectuer une recherche par mot dans la listeview3. mais la variable (i) représente quoi? car j'éprouve un problème avec ce i.

excusez-moi pour la question qui peut sembler bizarre mais je veux enfin comprendre.

merci encore de votre dévouement
 
Re : explication vba SVP

Bonjour Marleauc, bonjour le forum,

Code:
Private Sub CommandButton1_Click() 'au clic sur le bouton "CommandButton1"
ListView3.ListItems.Clear 'vide la ListView3
If TextBox1 = "" Then Exit Sub 'si la TextBox1 est vide alors sort de la procédure
With Sheets("Base") 'prend en compte l'onglet "Base"
    i = 1 'initialise la variable i à 1
    Do 'exécute
    'définit la cellule c (recherche dans la plage A1:Ji la valeur inscrite dans la Textbox1)
    Set c = .Range(.Cells(i, 1), .Cells(i, 10)).Find(TextBox1, LookIn:=xlValues)
    If Not c Is Nothing Then 'condition : s'il existe au moins une occurrence de la valeur cherchée
        flag = True 'définit la variable booléenne flag comme "vrai"
        IniListview c.Row 'je suis pas sûr mais je pense que ça ajoute la ligne de la cellule c dans la Listview
    End If 'fin de la condition
    i = i + 1 'incrément i de 1
    Loop While .Cells(i, 1) <> "" 'boucle l'exécution tat que la cellule Ai est différente du vide
End With 'fin de la prise en compte de l'onglet "Base"
If Not flag Then MsgBox "Rien trouvé !" 'si la variable flg est "faux" alors message "Rien trouvé !"
txtTotal = ListView3.ListItems.Count 'définit la variable txtTotal (nombre d'éléments dans la ListView3)
flag = False 'reinitialise la variable à "faux"
End Sub

J'aurais juste déclaré mes variables en début de code avec:
Code:
Dim c As Range
Dim flag As Boolean
Dim txtTotal As Integer
Dim i As Integer

[Édition]

Bonjour Namzip on s'est croisé
 
Dernière édition:
Re : explication vba SVP

Soirbon, sieur Robert 🙂,
S'rait pas un peu bizarre ce code ?!

Edit : je vois que j'étais un peu dans le vrai vu ton dernier message
Re-Edit : le fichier est corrompu !
A+
kjin
 
Dernière édition:
Re : explication vba SVP

Bonsoir,
Code:
Private Sub CommandButton1_Click()
Dim rngR As Range, c As Range, Adresse As String
Dim txtTotal As Integer
If TextBox1 = "" Then Exit Sub
ListView3.ListItems.Clear

Set rngR = Sheets("Base").Range("A2:L" & Range("A65000").End(xlUp).Row)
Set c = rngR.Find(TextBox1, lookat:=xlPart)
If Not c Is Nothing Then
    Adresse = c.Address
    Do
        With ListView3
            .ListItems.Add , , Sheets("Base").Cells(c.Row, 1).Value
            .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Base").Cells(c.Row, 2)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Base").Cells(c.Row, 3)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Base").Cells(c.Row, 7)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Base").Cells(c.Row, 8)
        End With
        Set c = rngR.FindNext(c)
    Loop While Not c Is Nothing And c.Address <> Adresse
End If
txtTotal = ListView3.ListItems.Count
If txtTotal = 0 Then MsgBox "Rien trouvé !"

End Sub
Ici la plage de recherche rngR englobe les colonnes A à L d'où des doublons éventuels, donc à toi de voir...
La recherche s'effectue sur une partie du texte, sinon remplacer xlPart par xlWhole
A+
kjin
 
Re : explication vba SVP

ok merci, cela fonctionne en parti... J'ai effectivement la sélection via le texbox1 , qui s'inscrit dans le listview3. mais lorsque je click dans le listview3 sur le choix, ben le résultat inscrit dans les autres textbox, ne correspondent pas au click.

Bizarre, c'est comme si le listview3 initiale (affichage) des l'ouverture de USF demeurait actif.

assez difficile a expliquer

voir le fichier. inscrivez un chois de mot dans la textbox et ensuite click dans le listview et regarder... merci de m'orienter

bonne fin se soirée

Cijoint.fr - Service gratuit de dépôt de fichiers
 
Re : explication vba SVP

Bonjour Marleauc, bonjour le forum,

Code:
Private Sub CommandButton1_Click() 'au clic sur le bouton "CommandButton1"
ListView3.ListItems.Clear 'vide la ListView3
If TextBox1 = "" Then Exit Sub 'si la TextBox1 est vide alors sort de la procédure
With Sheets("Base") 'prend en compte l'onglet "Base"
    i = 1 'initialise la variable i à 1
    Do 'exécute
    'définit la cellule c (recherche dans la plage A1:Ji la valeur inscrite dans la Textbox1)
    Set c = .Range(.Cells(i, 1), .Cells(i, 10)).Find(TextBox1, LookIn:=xlValues)
    If Not c Is Nothing Then 'condition : s'il existe au moins une occurrence de la valeur cherchée
        flag = True 'définit la variable booléenne flag comme "vrai"
        IniListview c.Row 'je suis pas sûr mais je pense que ça ajoute la ligne de la cellule c dans la Listview
    End If 'fin de la condition
    i = i + 1 'incrément i de 1
    Loop While .Cells(i, 1) <> "" 'boucle l'exécution tat que la cellule Ai est différente du vide
End With 'fin de la prise en compte de l'onglet "Base"
If Not flag Then MsgBox "Rien trouvé !" 'si la variable flg est "faux" alors message "Rien trouvé !"
txtTotal = ListView3.ListItems.Count 'définit la variable txtTotal (nombre d'éléments dans la ListView3)
flag = False 'reinitialise la variable à "faux"
End Sub

J'aurais juste déclaré mes variables en début de code avec:
Code:
Dim c As Range
Dim flag As Boolean
Dim txtTotal As Integer
Dim i As Integer

[Édition]

Bonjour Namzip on s'est croisé

J'apprécie bien l'explication de Robert. Tu feras un bon prof si tu ne l'es pas déjà 😉

Amicalement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
779
Réponses
5
Affichages
909
Réponses
2
Affichages
527
Réponses
10
Affichages
661
Réponses
4
Affichages
280
Retour