[vba excel-03] problème pour affichage dans listview

Résolu
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009 - 21 janv. 2009 à 02:03
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009 - 22 janv. 2009 à 13:12
VBA excel 2003

Bonjour le forum et touts mes voeux pour 2009.
Merci d'avance à celui qui m'a lu mais aussi à celui qui pourrais m'éviter de nouvelle chute de cheveux.
Etant débutant  niveaux 0 , voici le probleme:
Sur une Form et à partir d'un ComboBox  d'où on sélectionne une valeur pour ensuite aller recherche cette valeur dans la "BDD" colonne "A" pour ré-afficher dans une ListView les colonnes de "B" à "J" de la base "BDD".
Je ramme vraiment sur ce code que voici:

Private Sub ComboChoix_Change()
Dim i, j, x As Integer
    ' remplissage ListView
                With ListCarburant
    'Supprime les lignes
                Me.ListCarburant.ListItems.Clear
               On Error Resume Next
    'Récupère la derniere ligne non vide dans la colonne A
                 i = Range("A65536").End(xlUp).Row
    'boucle sur les cellules de la colonne A
                 For j = 2 To i
     'affiche les données
                 If Range("A" & j) = ComboChoix.Text Then
     'Ajoute une ligne
            .ListItems.Add , , Range("B" & j) 'Key
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("C" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("D" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("E" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("F" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("J" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("H" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("I" & j)
            ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("J" & j)
            x = x + 1
        End If
        Next j
   End With
    On Error GoTo 0

Merci d'avance à l'âme charitable qui peux m'aidez.
fadan.

4 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
21 janv. 2009 à 07:49
Bonjour,

Quelle est la question?
Quel est le problème?
Quel est le message d'erreur?
Nous n'avons pas ton projet sous les yeux mais que ce que tu nous en dis...
Merci

S.L.B.
<hr />
3
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009
21 janv. 2009 à 13:07
Bonjour lillith212 et merci de m'avoir lu.

Je vais essayer d'être plus clair car je rame vraiment sur ce probleme de boucles.
Sous excel-2003.
J'ai une feuille nommée "BDD" avec en colonne "A" les données que je récupère sans doublons dans un ComboBox nommé "ComboChoix" et des colonnes de "B" à "J" destinées à être affichée dans une ListView nommée "ListCarburant".
Dans la colonne "A" , j'ai plusieurs fois le même( mois année)
Dans la colonne "B" , j'ai aussi plusieurs fois la même date
dans les colonnes"C à J" , d'autres données

Dans un UserForm, depuis le comboChoix, d'où je sélectionne le (mois année), je voudrais ré-afficher toutes les lignes (dates de la colonne B) ainsi que toutes les lignes des (colonnes C à  J ) correspondantes au (mois année de la colonne A ).
En d'autre terme, tant que tu trouves la valeur de Combobox dans la "BDD" en colonne "A" affiche dans Listview les données correspondantes des colonnes "B à J" .
Voilà et encore merci de la réponse.
fadan
 
3
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009
21 janv. 2009 à 02:10
Et encore merci.
Pour que se sois plus lisible, revoici le code:

Private Sub ComboChoix_Change()
Dim i, j, x As Integer
  'remplissage ListView
         With ListCarburant
   'Supprime les lignes
         Me.ListCarburant.ListItems.Clear
On Error Resume Next
    'Récupère la derniere ligne non vide dans la colonne A
          i = Range("A65536").End(xlUp).Row
 'boucle sur les cellules de la colonne A
          For j = 2 To i
 'affiche les données
        If Range("A" & j) = ComboChoix.Text Then
 'Ajoute une ligne
 .ListItems.Add , , Range("B" & j) 'Key
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("C" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("D" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("E" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("F" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("J" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("H" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("I" & j)
 ListCarburant.ListItems(j - 1).ListSubItems.Add , , Range("J" & j)
     x = x + 1
        End If
        Next j
   End With
    On Error GoTo 0
fadan
0
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009
22 janv. 2009 à 13:12
Bonjour lillith mais aussi à tout le forum.

Encore merci lillith d'avoir pris le temps de me lire, mais en fait j'ai trouvé la réponse à ma question concernant l'affichage des données dans la ListView.

Mais bon, je suis loin d'avoir fini mon petit programme et donc je reviendrais surement vous embêter .
Encore merci et à bientôt.
fadan
0
Rejoignez-nous