Générer un classeur depuis listview

Byfranck

XLDnaute Occasionnel
Bonjour à tous,

Durdur ce matin c'est la reprise...
Pour bien commencer, je me retrouve déjà obligé de faire appel à vos lumières pour un Pb que je n'ai pas su résoudre pendant les vacances:
J'ai une base de données de >6000 lignes avec 1 contact par ligne.
Au travers de différent Usf, je sais filtrer les contacts en fonction de différents critères et les afficher dans une listview (merci à tous pour ça).
J'ai trouvé dans les posts du forum comment imprimer ce qui aparait dans la listview, mais je voudrais surtout pouvoir générer un nouveau classeur Excel à partir de cette liste filtrée qui s'affiche dans la listview.
Dans ce nouveau classeur j'ai besoin d'avoir certaines colonnes seulement de ma base complète (ex: Nom-Client, Adresse1, Code-Postal, Ville).
Le fin du fin serait de pouvoir faire une sélection dans la listview (selection multiple) et de générer le classeur Excel avec seulement les lignes sélectionnées.

J'espère qu'un courrageux va pouvoir me donner un coup de main parceque moi je sèche la dessus depuis quelques jours!

En pièce jointe une version light qui me permettra de comprendre si quelqu'un à la gentillesse de me donner ce coup de main

Cordialement
Franck
 

Pièces jointes

  • Jules - ListView3.zip
    18.9 KB · Affichages: 44
  • Jules - ListView3.zip
    18.9 KB · Affichages: 44
  • Jules - ListView3.zip
    18.9 KB · Affichages: 48

Bebere

XLDnaute Barbatruc
Re : Générer un classeur depuis listview

bonjour Franck
pour te mettre sur le bon chemin
pour le multiselect de listview,appuye la touche Ctrl et clic souris
à bientôt
 

Pièces jointes

  • JulesListView3.zip
    24.9 KB · Affichages: 62

Byfranck

XLDnaute Occasionnel
Re : Générer un classeur depuis listview

Bonjour Bebere,

Merci pour le coup de pouce!
Pour la sélection multiple j'y était parvenu en activant Multiselect à True dans les propriétés de la listview.
Pour l'extraction en fonction des lignes activées par contre là tu m'avance bien :) j'arrivais pas à créer le classeur! Super!
Il me reste à trouver comment à partir des lignes sélectionnées dans le listview exporter les colonnes qui m'interessent dans mon tableau (En général l'adresse et le nom du contact)
Un deuxième coup de pouce .. sera toujours le bienvenue :rolleyes:

Cordialement
Franck
 
Dernière édition:

Byfranck

XLDnaute Occasionnel
Re : Générer un classeur depuis listview

Bonjour Bebere,
Désolé, j'ai vu ton boulot , mais j'ai eu la tête dans le guidon toute la journée de mon côté.

Super mes cases à cocher, mais je vais devoir rester sur la sélection multiple avec les clics sinon vu la taille de mon fichier ça va être trop long pour faire les sélections => j'ai donc mis en place le bouton 2 dans l'exemple pour utiliser le code qui fonctionne avec la sélection à la souris
je te joints ta version à laquelle j'ai fait une modif pour faire afficher la contenu de la colonne 1 (chez moi le nom client est ans la colonne 1 :D).
Entre 2 coups de fil j'ai bien essayé d'adapter tes codes à mon cas concrêt, mais je bute sur un problème:
lors de l'extraction vers un Excel, pas moyen d'avoir le contenu de la colonne 1 en face du 1er header tel que dans la listview .
Mieux encore le contenu de la colonne 1 semble impossible à transférer: j'ai essayer de créer une 1ere colonne 'bidon" de largeur 0, ou de coller un -1 après le count ... rien à faire: tu sais ce qui cloche?

Cordialement
Franck
 

Pièces jointes

  • JulesListView4 last2.zip
    23.6 KB · Affichages: 59

Bebere

XLDnaute Barbatruc
Re : Générer un classeur depuis listview

Franck
n'oublie pas que pour la 1ère colonne de la listview
c'est comme suit
.Cells(Ligne, 1) = ListView1.ListItems(I).Text
la suivante
.Cells(Ligne, 1) = ListView1.ListItems(i).ListSubItems(1).Text
etc
à bientôt
 

pierrejean

XLDnaute Barbatruc
Re : Générer un classeur depuis listview

bonjour Byfranck

Salut bebere

J'avais fait ceci puis perdu le post
Vois si je suis sur la bonne voie
 

Pièces jointes

  • Jules - ListView3.zip
    23 KB · Affichages: 99
  • Jules - ListView3.zip
    23 KB · Affichages: 108
  • Jules - ListView3.zip
    23 KB · Affichages: 112

Byfranck

XLDnaute Occasionnel
Re : Générer un classeur depuis listview

Bonsoir Bebere,


Franck
n'oublie pas que pour la 1ère colonne de la listview
c'est comme suit
.Cells(Ligne, 1) = ListView1.ListItems(I).Text
la suivante
.Cells(Ligne, 1) = ListView1.ListItems(i).ListSubItems(1).Text
etc
à bientôt

Je crois que c'est ça le problème, dans la 1ere mouture qui ne permettait pas de choisir les colonnes à importer on avait:
Code:
                For J = 1 To ListView1.ColumnHeaders.Count - 1
                    .Cells(Ligne, J + 1) = ListView1.ListItems(I).ListSubItems(J).Text
                Next J

Dans ta dernière version il doit falloir coller ce "- 1" quelque part mais j'ai beau essayer toutes mes combines j'ai plus le contenu de la colonne 1 (à la place sous le 1er header j'ai les valeurs de la colonne2 et la suite est décalée de même)
Je viens maintenant d'essayer

Code:
        For i = 1 To ListView1.ListItems.Count
            If ListView1.ListItems(i).Selected = True Then
            Ligne = Ligne + 1
 = ListView1.ListItems(i).Text
                .Cells(Ligne, 1) = ListView1.ListItems(i).ListSubItems(1).Text
                .Cells(Ligne, 2) = ListView1.ListItems(i).ListSubItems(2).Text
                .Cells(Ligne, 3) = ListView1.ListItems(i).ListSubItems(3).Text
                .Cells(Ligne, 4) = ListView1.ListItems(i).ListSubItems(4).Text
...... etc

QUEL C** ... en faisant le copier collé je viens de voir ma bourde:
2 fois .Cells(Ligne, 1)


Je viens de ré-essayer et ça marche au poil !

Super merci Bebere :p

Et merci quand même à Monsieur Pierrejean que je n'oublie pas bien sûr et qui aura reconu le filtre qu'il m'avait fait pour les départements ;)

Bonne soirée à vous deux
Franck
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 613
Messages
2 090 233
Membres
104 459
dernier inscrit
Adeline43