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.
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 SubJ'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.