Transfert listview feuille horizontalement

Kim75

XLDnaute Occasionnel
Transfert listview vers feuille horizontalement

Bonjour le forum,

Je vous présente à tous mes meilleurs vœux pour 2014 et bonne année à tous.

Est-ce possible que des valeurs de chaque ligne de la Listview s’ajoutent horizontalement par bloc les unes après les autres, au lieu de verticalement ?

Et bien sûr quand on clique une deuxième fois sur le bouton de transfert, c’est la ligne libre verticale suivante qui récupère les données de la listview toujours horizontalement .

Je connais le transfert classique qui se fait verticalement, mais horizontalement je ne connais pas le principe de la chose, je joins un fichier pour illustrer la question.

Merci pour votre aide, Kim.
 

Pièces jointes

  • Test.xlsm
    27.7 KB · Affichages: 61
  • Test.xlsm
    27.7 KB · Affichages: 73
  • Test.xlsm
    27.7 KB · Affichages: 73
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Transfert listview feuille horizontalement

bonjour Kim
merçi,mes meilleurs voeux pour 2014

Code:
Private Sub CommandButton1_Click()
    Dim y As Integer, Li As Integer, c As Byte, x As Byte
   
    With Sheets("Cible")
        Li = .Range("K65536").End(xlUp).Row + 1

        For y = 1 To Me.ListView1.ListItems.Count
            If .Cells(Li, 11) = "" Then
                c = 11
            Else
                c = c + 7
            End If
            .Cells(Li, c) = Me.ListView1.ListItems(y)
            For x = 1 To Me.ListView1.ColumnHeaders.Count
                .Cells(Li, c + x) = Me.ListView1.ListItems(y).ListSubItems(x)
            Next x
        Next y
    End With
End Sub
 

Kim75

XLDnaute Occasionnel
Re : Transfert listview feuille horizontalement

Bonjour Bebere, le forum,

J’ai petit problème avec ce code, tu as a eu la gentillesse de me donner un code qui marchait bien dans la mesure où c'était à partir de la colonne K que je devais récupérer les données de la Listview, ce serait vraiment sympa si tu pouvais jeter un œil pour voir ce qui ne va pas.

Mais par nécessité, j'ai dû modifier mon fichier et je dois maintenant récupérer les données à partir de la colonne O, j'ai alors pensé qu'il suffisait de substituer, dans le code de Bebere, 11 par15 et K par le O, puisque je n'ai fait que décaler les choses, mais il y a un petit souci, ça marche mais ça ajoute une valeur à la fin de la série horizontale .

Et ce qui est incroyable, en tout cas pour moi et sans doute pas pour les spécialistes qui comprennent Excel dans ses profondeurs, le même code (avec les mêmes valeurs) après modification marche normalement dans un fichier, et marche mal dans un autre fichier, la seule différence entre les deux fichiers et la manière avec laquelle j’ai décalé les colonnes.

Dans le fichier Test1 j’ai décalé les colonnes 4 fois sans test intermédiaire, alors que dans le fichier Test2, à chaque je décalais d’une colonne je testais le code, c'est-à-dire que j’ai substitué 11 par 12, et testé, ensuite 12 par 13 et testé une seconde fois, ensuite 13 par 14 et testé encore une fois, et à la fin 14 par 15 et testé une dernière fois, et là ça marchait sans problème.

Cordialement, Kim.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Transfert listview feuille horizontalement

Bonjour Kim75
Bonjour mon Ami Bebere Oups pas vu ta réponse !!!! Lol)
Bonjour e Forum

je crois que dans ton fichier Test1 il manque la Colonne "Nom"
ensuite les colonnes d'une ListView sont numerotées de 0 a X
donc Le ListItem et mis en colonne 0 et ensuite les ListSubItems sont mis de la colonne 1 à x
si tu ajoutes une Ligne , Colonne (0) ou tu places le ListItem et qu'ensuite tu boucles de 1 à 7 cela fait 8 colonnes
j'ai donc supprime la ligne
'Me.ListView1.ListItems(l).ListSubItems.Add , , cel.Offset(, 7).Text
puis j'ai modifié ainsi cette ligne :
For x = 1 To Me.ListView1.ColumnHeaders.Count - 1
j'ai mis un "-1"
je n'ai pas compris le pourquoi de cette procédure car tu copies toujours les même données en Ligne, le choix fait dans la ListView n'a pas d'importance!
En espérant avoir pu t'aider
Bonne Journée
Amicalement
Jean Marie
 

Kim75

XLDnaute Occasionnel
Re : Transfert listview feuille horizontalement

Bonjour René, Jean Marie, le forum,

Merci beaucoup, j’ai effectivement dû me mêler les pinceaux tellement le problème m’a embrouillé :)

En fait l’alimentation de la listview, je la fais au coup par coup via des textbox, désolé de ne pas l’avoir précisé, comme quoi on croit toujours s’en sortir tout seul, mais on est vite rattrapé par la réalité :)

Le problème est que ce code ajoute une valeur à la fin des lignes transférées, valeur qui s'avère être la somme des lignes de la Listview. Est-il possible de corriger le code pour qu'aucune valeur ne vienne s'ajouter à la fin des lignes transférées.

Cordialement, Kim.
 

Pièces jointes

  • Test2.xlsm
    45.2 KB · Affichages: 77
  • Test2.xlsm
    45.2 KB · Affichages: 80
  • Test2.xlsm
    45.2 KB · Affichages: 85
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Transfert listview feuille horizontalement

kim
si bien compris ce devrait être bon
changer code listbox1,listbox2 à faire
ajout d'une colonne à listview
changer code bouton ajouter à la liste
 

Pièces jointes

  • Test2 (1).xlsm
    39.2 KB · Affichages: 84

Kim75

XLDnaute Occasionnel
Re : Transfert listview feuille horizontalement

Salut Jean-Marie, René,

Désolé Jean-Marie de ne pas avoir été assez clair, je voulais juste que cette valeur qui s'ajoute à la fin des lignes transférées (sans que je ne sache pourquoi) disparaisse du paysage :)

Merci René, sans rien modifié au fichier que tu m'as envoyé, j'ai une erreur "index hors limite" dans le code du bouton de transfert, ligne :

.Cells(Li, c + x) = Me.ListView1.ListItems(y).ListSubItems(x)

Cordialement, Kim.
 
Dernière édition:

Kim75

XLDnaute Occasionnel
Re : Transfert listview feuille horizontalement

René,

Je ne sais pas de quelle valeur tu parles :
Si tu parles de la valeur de la 7em colonne de la lisview, j'en ai besoin pour la stocker comme information
Si tu parles de la valeur qui vient s'ajouter d'elle même à la fin de la ligne qui reçoit le transfert (la série des 7 valeurs-colonnes de la listview), je ne sais même pas ce qu'elle fait là.

Je vais essayer ton code, mais je crois que j'ai essayé plein de possibilités à partir de ce que tu m'as donné, je te tiens au courant.

Cordialement, Kim.
 

Kim75

XLDnaute Occasionnel
Re : Transfert listview feuille horizontalement

Merci Beaucoup René !

J'ai essayé la modification que tu viens de m'indiquer, je l'ai essayée sur le fichier Test2.xlsm‎ sans ajouter une 8eme colonne à la listview, et ça marche bien, aucune valeur inopinée n'est ajoutée à la fin.

Merci aussi à Jean-Marie, et bon dimanche à tous les deux, je vais pouvoir continuer le labeur :)

Cordialement, Kim.
 

Discussions similaires

Réponses
7
Affichages
896

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 988
dernier inscrit
Feonix