IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Remplir ListView avec une autre ListView


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut Remplir ListView avec une autre ListView
    Bonjour a tous,

    Je suis entrain de coder un petit truc sur Excel
    Et dans mon exécution j’alimente une listview.

    Un peu plus tard j'ai besoin de modifier ma listview du coup j'ai pensé à me faire une listview tampon pour stocker ma première liste

    Mais le problème c'est que je voudrais alimenter ma premier listview en faisant un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    userform1.listview1 = userform1.listview2
    Mais cela ne fonctionne pas^^

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut Dans une variable tableau ?
    Bonjour,

    Et pourquoi ne pas stocker le contenu du ListView dans une variable tableau?

    En utilisant ce tutoriel, tu peux modifier le code comme ceci :
    Dans un Module standard, la première ligne étant en entête du module (variable public) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Liste() As Variant
     
    Sub Stockage_ListView()
    Dim i As Integer, j As Integer
       ReDim Preserve Liste(1 To ListView1.ListItems.Count, 1 To ListView1.ColumnHeaders.Count)
       'Boucle sur toutes les lignes
       For i = 1 To ListView1.ListItems.Count
          Liste(i, 1) = ListView1.ListItems(i).Text
          'Boucle sur les colonnes
          For j = 1 To ListView1.ColumnHeaders.Count - 1
             Liste(i, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text
          Next j
       Next i
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut
    Bonjour pijaku,
    Merci de ta réponse.

    Effectivement j'y ai pensé, mais le problème c'est que je ne sais pas comment garder une variable entre deux exécutions de code
    si ça existe je veux connaitre comment on fait, ça m'éviterais pleins de code ^^

    car je crée ma listview sur l'appuie d'un bouton sur mon classeur
    a la fin de la création de la listview, j'affiche mon userform avec la listview

    mais entre ce moment la, et le moment ou l'utilisateur va cliquer sur des controls que j'ai mis,
    mes variables perdent leur porté, ducoup perde leur valeur, donc mon tableau est a refaire, il faut donc que je le stock dans un Control (même si c'est sur un userform que j'utilise pas)
    donc autant alimenter le Control au lieu de se faire chier a faire un tableau puis ensuite alimenter un Control avec le tableau.

    Enfin je ne sais pas ce que tu en penses, j'avoue que je ne sais pas quoi faire la !
    car la création de ma listview prend moins de 1sec (0.5 environ) ce qui est assez court
    je me tâte donc a recrée ma listview a chaque fois que j'en ai besoin.
    mais crée une variable tableau avec mes cellules Excel et ensuite alimenter ma listview avec ce tableau est encore plus rapide (surtout si je dois le faire plusieurs fois)
    après je me dit que c'est une appli perso donc qu'elles sot pas optimisé a fond je m'en moque un peu, mais ca fait toujours plaisir de pas attendre 15 ans l’exécution de la macro

    je suis perdu ^^

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Quel est l'intérêt de faire ça? J'imagine que tu y vois une utilité?

    Pour t'aider du mieux que nous pouvons dit nous la finalité.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    bonjour
    Citation Envoyé par sharox Voir le message
    Effectivement j'y ai pensé, mais le problème c'est que je ne sais pas comment garder une variable entre deux exécutions de code
    si ça existe je veux connaitre comment on fait, ça m'éviterais pleins de code
    Static dans l'aide de VBA

    mais entre ce moment la, et le moment ou l'utilisateur va cliquer sur des controls que j'ai mis,
    mes variables perdent leur porté, ducoup perde leur valeur, donc mon tableau est a refaire, il faut donc que je le stock dans un Control (même si c'est sur un userform que j'utilise pas)
    donc autant alimenter le Control au lieu de se faire chier a faire un tableau puis ensuite alimenter un Control avec le tableau.
    Une banale feuille de calcul que tu protèges ou que tu caches, peut faire la job.

    Ou bien:

    Un banal fichier texte
    Le registre
    un fichier .ini

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut
    Bonjour a tous,

    Donc je vous explique
    En gros sur une feuil Excel j'ai une liste (plusieurs lignes et colonnes)
    cette liste n'est pas identique a chaque ouverture de fichier (elle récupéré dans mes dossier des fichiers)
    donc j'ai crée un bouton qui ouvre un userform
    avant l'ouverture de cette userform je recrée la liste que j'ai sur la feuille dans une listview qui est présente dans l'userform
    et et ensuite j'ai des boutons qui permettent de faire un tri (genre / date / durée)
    et la je bloque pour le tri de genre, je veux afficher dans la listview juste les lignes avec le bon genre

    et je voulais ne pas recréer la listview en regardant dans ma feuille a chaque fois

    voila pour l'histoire ^^

  7. #7
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut Toi, tu n'as pas lu le tutoriel que je t'ai donné...
    Bonjour,

    Pour le tri va voir ici :
    http://silkyroad.developpez.com/VBA/ListView/#LII-F

    Si c'est tout ce qu'il te faut...

Discussions similaires

  1. [Débutant] Remplir ListView avec une requete SQL server
    Par theuma dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/05/2013, 10h32
  2. Remplir ListView avec une base de données
    Par Boris56 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/05/2012, 12h40
  3. ouvrir listview depuis une autre listview
    Par lallier dans le forum Composants graphiques
    Réponses: 8
    Dernier message: 06/05/2010, 19h03
  4. [XL-2003] Remplir une listView avec une autre ListView
    Par monichou86 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/12/2009, 10h56
  5. Remplir une ListView avec une BD
    Par manikou dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo