Résolu [VBA] boucle sur une listview

Solutions (8)
Tags :
  • Next
  • Programmation
|
Bonjour,

Je doit exécuter un code à des fichiers listé dans un listview. J'aimerai que ce code s'exécute à tous les fichiers de ma listview automatiquement sans sélectionner dans la liste. Je ne trouve pas comment faire la boucle.

Quelqu'un saurait ? Merci d'avance.
Contenus similaires
Meilleure solution
partage
, Modérateur |
Hmm, dans ce cas tu fais une boucle for each pour rien et tu pourrais la remplacer par un For classique.

Sinon avec For each ça donne ça :
  1. Dim Item As ListItem
  2.  
  3. For Each Item In Liaisons.ListLiaisons.ListItems
  4. liaison1 = Item.ListSubItems(1)
  5. liaison2 = Item.ListSubItems(2)
  6. Next Item


Le For Each te permet de nommer en tant qu' "Item" chaque élément de Liaisons.ListLiaisons.ListItems.
C'est un peu équivalent à :
  1. For Each Pomme In PanierDePommes
  2. 'je boucle sur chaque pommes de mon panier, et à chaque fois, j'ai ma variable Pomme de disponible
  3. 'et je peux faire par exemple Manger(Pomme)
  4. Next Pomme
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par jacouille35.
  • Commenter cette réponse |
Score
0
òh
òi
|
Effectivement. Bien joué merci !!!
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai trouvé:
  1. Dim Item As ListItem
  2. Dim iList As Integer
  3.  
  4.  
  5. For Each Item In Liaisons.ListLiaisons.ListItems
  6. iList = iList + 1
  7.  
  8. 'liaison1 = Liaisons.ListLiaisons.ListItems.SubItems(2)
  9. liaison1 = Liaisons.ListLiaisons.ListItems(iList).ListSubItems(1)
  10. liaison2 = Liaisons.ListLiaisons.ListItems(iList).ListSubItems(2)
  11. Next Item
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci, mais j'ai encore un probleme, voici mon code :
  1. Dim Item As ListItem
  2.  
  3. For Each Item In Liaisons.ListLiaisons.ListItems
  4.  
  5.  
  6. liaison1 = Liaisons.ListLiaisons.SelectedItem.SubItems(1)
  7. liaison2 = Liaisons.ListLiaisons.SelectedItem.SubItems(2)
  8.  
  9. Next Item


Lorsque j'exéctue en mode pas à pas, je constate qu'il me garde toujours le meme nom dans liaison1 et liaison2.
Je dois avoir un probleme dans le code mais je ne vois pas.

Alros que j'aimerai avoir :

TypeFichier | NomFichier | EmplacementFichier
Excel | classeur.xls | C:\...
Excel | classeur2.xls | C:\...

Pour le premier Item "classeur.xls" et le deuxieme "classeur2.xls".
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Dès que tu mettras Next Item, ça va continuer de boucler et passer à l'élément suivant.
  1. Dim Item As ListItem
  2. For Each Item In Liaisons.ListLiaisons.ListItems
  3. 'tu fais ce que tu veux avec ton Item
  4. Next Item 'ça passe au prochain item, jusqu'à arriver à la fin des ListItems
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai ceci :
  1. Dim Item As ListItem
  2. For Each Item In Liaisons.ListLiaisons.ListItems


Mais mon item est le premier de ma ligne, comment choisir le deuxieme par exemple ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

Tu dois pouvoir boucler sur listView.Items ou listView.ListItems (il doit y avoir une propriété comme ça)
Avec un For Each si ça existe en VBA, sinon un For avec listView.Items.Count ou listView.ListItems.Count (suivant ce que t'as trouvé au dessus)
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS