VBA Userform - Obtenir le nombre de données d'une listview

Bonjour à tous

Je travaille actuellement sur un projet qui me demande de rechercher et stocker des données par l'intermédiaire d'un userform. Mon userform comporte une listview dans laquelle j'ai inséré mes données. Mon souci survient au niveau de ma Textbox entouré en rouge dans laquelle j'aimerais insérer le nombre total de données par ligne à chaque mise à jour de ma listview. Il est à noter que ma listview actualise la recherche à chaque élément (chiffre ou lettre) inséré dans ma textbox de recherche.

J'ai eu l'idée de commencer par compter les données de ma listview et inserer la valeur de la dernière ligne dans ma textbox mais sans succès. Du coup j'aurai besoin de l'aide pour rédiger un programme me permettant de résoudre ce souci. Merci de cotre compréhension.

1 2 3

Bonjour , on peut avoir le code qui permet à listview de s'actualiser aprés une recherche ou une nouvelle sélection.

Désolé du retard, le voici :

'********************************************************************************
'Procedure permettant de rechercher des joueurs selon leurs caractéristiques et
'leurs compétences
'********************************************************************************

Sub rechercher_joueur()

Dim numcolonne As Integer
Dim compteur As Integer
Dim critere As String
Dim Table As Range
Dim Forme As ListItem
Dim var As Integer

var = 0
On Error GoTo 1 'Gestion d'erreur (Si tu rencontres une erreur dans la procédure sort et part à la ligne 1

With recherchejoueur 'Selectionne notre formulaire

critere = .TextBoxtext_critere 'Affecte la variable
numcolonne = .ComboBox_caracteristiques_competences.ListIndex 'Affecte la variable

.ListViewresultat.ListItems.Clear 'Vide le contenu de la listeView

Set Table = Feuil1.[A6] 'Affecte la variable

While (Table) <> ""

If critere Like UCase(Left(Table.Offset(, numcolonne), Len(critere))) Then
'Compare des données

var = var + 1

Set Forme = .ListViewresultat.ListItems.Add(, , Format(Table.Cells(1, 1), "0##"))
'Ajoute et donne un format precis aux données de la première colonne de notre listeView

For compteur = 2 To 20 'Boucle sur les differentes caractériques et competences

Forme.ListSubItems.Add , , Table.Cells(, compteur) 'Ajoute les données suivantes de notre Base

Next compteur 'Incrémente le compteur

End If

Set Table = Table.Offset(1, 0) 'Décale la table d'une ligne en dessous

Wend

End With

TextBoxvaleur_nbre.Caption = Val(var)

1

End Sub

A adapter avec le nom de votre textbox nombre de joueur

a la fin de votre code :

Textboxjoueurs=ListViewresultat.ListIndex
ou
Textboxjoueurs=ListViewresultat.ListIndex +1  ' si la liste commence par zéro.

Bonjour Xmenpl

Je te remercie d'abord pour ton aide, je viens de tester les nouvelles lignes que tu m'as envoyé et en testant elles ne donnent le résultat souhaité ( avoir le nombre d'items de ma ListView dans ma Textbox). De plus une erreur est apparue me demandant de déclarer ma TextBox et ma ListView, du coup je les ai déclaré comme étant des objets mais cela ne fonctionne toujours pas. Voici le programme en détail :

Sub rechercher_joueur()

Dim numcolonne As Integer
Dim compteur As Integer
Dim critere As String
Dim Table As Range
Dim Forme As ListItem
Dim valeur As Integer
Dim TextBoxvaleur_nbre As Object
Dim ListViewresultat As Object

valeur = 0

On Error GoTo 1 'Gestion d'erreur (Si tu rencontres une erreur dans la procédure sort et part à la ligne 1

  With recherchejoueur 'Selectionne notre formulaire

      critere = .TextBoxtext_critere 'Affecte la variable
      numcolonne = .ComboBox_caracteristiques_competences.ListIndex 'Affecte la variable

    .ListViewresultat.ListItems.Clear 'Vide le contenu de la listeView

    Set Table = Feuil1.[A6] 'Affecte la variable

        While (Table) <> ""

            If critere Like UCase(Left(Table.Offset(, numcolonne), Len(critere))) Then
                'Compare des données

                valeur = valeur + 1

                Set Forme = .ListViewresultat.ListItems.Add(, , Format(Table.Cells(1, 1), "0##"))
                 'Ajoute et donne un format precis aux données de la première colonne de notre listeView

                      For compteur = 2 To 20 'Boucle sur les differentes caractériques et competences

                        Forme.ListSubItems.Add , , Table.Cells(, compteur) 'Ajoute les données suivantes de notre Base

                      Next compteur 'Incrémente le compteur

                End If

                Set Table = Table.Offset(1, 0) 'Décale la table d'une ligne en dessous

        Wend

    End With

    TextBoxvaleur_nbre.Caption = Val(valeur)

    TextBoxvaleur_nbre = ListViewresultat.ListIndex

1

End Sub

J'aimerais également savoir s''il y'a un problème dans mon code…

Merci

C'est possible d'avoir une copie du fichier sans infos confidentielle ?

Bien sûr le voici.

Rechercher des sujets similaires à "vba userform obtenir nombre donnees listview"