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 :

code d'une d'une listbox pour une listview [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut code d'une d'une listbox pour une listview
    bonjour a vous tous
    j'ai ce code qui fonctionne tres bien avec une listbox mais comment faire pour qu'il fonctionne dans une listview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub Cherche(x As String)
        Dim C As Range, firstAddress As String
     
        Application.ScreenUpdating = False
        With Ws
            Set C = .Columns(3).Find(x, LookIn:=xlValues, lookat:=xlPart)
            If Not C Is Nothing Then
                firstAddress = C.Address
                Do
                    If Left(C, Len(x)) = x Then
                        travaux.ListBox1.Item C.Offset(, -1)
                        travaux.ListBox1.List(travaux.ListBox1.ListCount - 1, 1) = C
                        travaux.ListBox1.List(travaux.ListBox1.ListCount - 1, 2) = C.Offset(, 1)
                        travaux.ListBox1.List(travaux.ListBox1.ListCount - 1, 3) = C.Offset(, 2)
                    End If
                    Set C = .Columns(3).FindNext(C)
                Loop While Not C Is Nothing And C.Address <> firstAddress
            End If
        End With
        Application.ScreenUpdating = True
     
    End Sub
    j'ai déja fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    travaux.ListView1.listItems.Cells(C.Row, 2)
                    travaux.ListView1.ListItems(travaux.ListView1.ListItems.Count - 1, 1) = .Cells(C.Row, 3)
                    travaux.ListView1.ListItems(travaux.ListView1.ListItems.Count - 1, 2) = .Cells(C.Row, 4)
                    travaux.ListView1.ListItems(travaux.ListView1.ListItems.Count - 1, 3) = .Cells(C.Row, 5)
    mais ca coince des la première ligne

    cordialement


    Pascal

  2. #2
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Bonjour Grisan29 ,

    Selon moi, il faut d'abord mettre toutes les données que tu veux rentrer dans ta ListView dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With Worksheets(1)
        Set Tbl = .Range("B2:AF21") 'mets ta plage de données à toi
        For Each D In Tbl
            LN(D.Row - 1, D.Column - 1) = D.Value 'remplit ton tableau nommé LN
        Next D
    End With
    Ensuite, tu complètes ta ListView à l'aide de ce tableau LN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With ListView1
        .ListItems.Clear
        For L = 0 To UBound(LN, 1)
            .ListItems.Add , , LN(L, 0)
            For c = 1 To UBound(LN, 2)
                .ListItems(.ListItems.Count).ListSubItems.Add , , LN(L, c)
            Next
        Next
    End With
    J'espère que je ne me suis pas trop mal exprimée...

    Bonne chance

  3. #3
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonsoir cocotte278
    merci mais le code code joint est dans un module lancé a partir de ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub TextBox1_Change()
     
        If Me.ComboBox1 <> "" Then
            If TextBox1 <> "" Then
            With Me.ListBox1
                .ColumnCount = 4
                .ColumnWidths = "60;110;60;60"
                .Clear
            End With
                Cherche TextBox1.Text
            End If
        Else
            MsgBox "Sélection d'une feuille,svp"
            Me.ComboBox1.SetFocus
        End If
     
    End Sub
    et toutes les données sont déja dans la listview
    cordialement

    Pascal

  4. #4
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Bonjour Pascal,

    toutes les données sont déja dans la listview
    ???

    En fait, tu récupères des données rentrées dans la TextBox1 par l'utilisateur. C'est ça ? Et du coup, tu remplis la ListView au fur et à mesure ?

    Essaie peut-être de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    travaux.ListView1.ListItems(travaux.ListView1.ListItems.Count - 1, 1) = .Cells(C.Row, 3)
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    travaux.ListView1.ListItems(travaux.ListView1.ListItems.Count).ListSubItems.Add , , .Cells(C.Row, 3).Value
    Mais je ne comprends pas l'écriture : ...
    Pour moi, il faut que tu récupères directement la valeur de la TextBox...

  5. #5
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonsoir cocotte

    il y a eu maldonne dans le code fourni dans mon post précédent,dans lequel il y a une listbox1 or le fichier que j'aurais du mettre contient listview en remplacement de listbox
    je voulais éclaircir ce point avant d'essayer ce que tu propose
    je démarre avec les listview et j'ai du mal a comprendre leur fonctionnement
    cordialement

    Pascal

  6. #6
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Pascal,

    Peux-tu me dire où se situent les données que tu veux mettre dans ta ListView ?
    Elles sont dans ta feuille Excel ?

    Pourquoi, selon toi, les premiers bouts de code que je t'ai envoyés ne sont pas compatibles avec ce que tu recherches ?

  7. #7
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour cocotte278

    ci joint un fichier exemple que je n'ai pas réussi a mettre comme il faut, donc au clic du bouton il y a un bug que je ne maitrise pas car c'est l'usf qui n'est pas reconnu
    c'est un fichier qui fonctionnai avec des listbox mais avec une listview(plus facile d'utilisation) ne fonctionne pas

    cordialement

    Pascal

  8. #8
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Bonjour Pascal,

    Merci pour ton doc, ça me permet de voir un peu mieux ton objectif !!!

    Tu fais comment pour remplir les ComboBox ? Pour définir les choix possibles à l'utilisateur ?
    Il faudrait que tu me dises ce que tu veux mettre dans tes ComboBox et dans ton TextBox stp.

    PAscal,

    j'ai réussi à remplir ta ListView.
    Regarde un peu ce que j'ai fait...

    Mais, je crois que ta recherche n'est pas au point...
    Je vais regarder ça plus tard.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour cocotte278
    merci pour ta réponse mais il n'y a pas d'affichage dans la listview;mais je vais voir si je peux

    cordialement

    Pascal

  10. #10
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    j'ai changé le mode d'execution. Une fois renseignés la page et le ou les caractères à chercher, il faut faire "entrée".

  11. #11
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour cocotte278
    merci de ta réponse
    mais de cette facon pour l'instant ca me plait pasje préfèrerais une facon plus rapide

    cordialement

    Pascal

  12. #12
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Pascal,



    J'ai pas regardé la recherche article.
    J'ai juste modifié la recherche par mot...

    Je te joins ma dernière version. Regarde et dis moi ce que tu en penses. Mais j'ai peut-être pas cerné ce que tu souhaites, tout simplement... Désolée...
    Soit tu trouves le courage de m'expliquer, soit je m'incline

    Pour la recherche, il faut cliquez sur le bouton "recherche" pour la lancer !

    Cdt
    Fichiers attachés Fichiers attachés

  13. #13
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    re: bien la dernière version ,
    je te la rejoint car je viens d'y mettre l'usf qui commande l'usf que tu viens de modifier, et dont les données qui arrivent dans la listeview par l'appui sur le bouton valider permet d'envoyer les données dans les textbox de l'usf1 et sur usf1 il y a un bouton qui permet d'ajouter les valeurs des textbox dans une listview mais tous cela ne fonctionne plus cause listviewet mes lacunes

    dans ce fichier les listbox ont purement été remplacer par des listview et peut etre que si cette partie est bien revu par toi ,me permettra de me dépatouiller avec le reste???

  14. #14
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Si je comprends bien, tu veux pouvoir sélectionner un ou plusieurs articles avec le premier Userform qu'on a vu et ainsi les ajouter dans le second Userform (le nouveau) pour faire ton devis...

    Est-ce exacte ?

    les TextBox : txtarticle, textBox9 et textBox4 sont remplies par le ListView de l'Userform 2 ?

  15. #15
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    re cocotte278
    tu a tres bien compris je crois et par la meme mon fichier contient 8 feuilles d'articles format identique (est-ce raisonnable)+des feuilles de fonctionnement, client;fournisseurs; commune et j'en passe

    en fait oui c'est pour ma facturation (faire devis/facture)

    par la suite il faudra que je trouve le moyen de vider la listview dans une feuille qui sera dédier a l'établissement du devis ou facture

    cordialement

    Pascal

  16. #16
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Bon, je te joins la dernière version.
    J'ai commencé à transférer les données de la recherche vers le devis : il suffit de cliquer dans la ListView sur l'article de ton choix.
    Puis, tu ajoutes les caractéristiques avec le bouton "ajouter à la liste".



    Dis-moi ce que tu en penses : si ça te convient ou pas...

    Bonne soirée

    Cdt
    Fichiers attachés Fichiers attachés

  17. #17
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour cocotte 278
    je n'ai pas fait de gros essai car il me reste peut de temps aujourdhui pour le faire
    mais il me semble etre parfait un grand MERCI

    a plus tard
    cordialement

    Pascal

  18. #18
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Bonjour Pascal ,

    Ravie que ça te convienne !
    Je te laisse fignoler et si tu as besoin d'aide, ce sera avec plaisir que j'essaierai de te donner un coup de main

    Bonne journée

    Cdt



  19. #19
    Membre confirmé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Points : 520
    Points
    520
    Par défaut
    bonjour cocotte278
    Merci pour tout, j'ai adapter ta solution a mon fichier et c'est la que je me suis apercu que peut importe la feuille sélectionnée dans la combo de l'usf2 le clic sur l'article désiré est bien mais c'est toujours la première ligne qui est envoyer dans les textbox de l'usf1
    en fait il faudrai pouvoir faire le choix de l'article

    ah oui j'oubliais sur mes feuilles les lignes commencent par un n° comment faire pour que ce N° s'affiche en 1er dans la listview1 du usf2 et puisse etre transféré dans une textbox qui l'enverrai en 1ere colonne de la listview1 de l'usf2
    en fait cela n'est pas trop important si je trouve comment vider la listview1de usf2 dans une feuille par un bouton 'transfert" a partir de la ligne C1919

    autrement j'ai réussi la greffe Merci beaucoup

    cordialement

    Pascal

  20. #20
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Pascal !!!!

    Oui, pour mon erreur
    dans la combo de l'usf2 le clic sur l'article désiré est bien mais c'est toujours la première ligne qui est envoyer dans les textbox de l'usf1
    j'ai pas fait attention mais j'ai trouvé la solution !

    Voici la correction (à recopier sur l'ancienne version de Private Sub ListView1_Click() ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub ListView1_Click()
             UserForm1.TextBox4.Value = UserForm2.ListView1.SelectedItem.Text
             UserForm1.TextBox9.Value = UserForm2.ListView1.SelectedItem.ListSubItems(2).Text
             UserForm1.txtArticle.Value = UserForm2.ListView1.SelectedItem.ListSubItems(1).Text
     
        Unload Me
    End Sub
    Pour ton autre problème, je n'arrive pas bien à visualiser ce que tu souhaites...


+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] conversion code listbox pour une listview
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/02/2012, 22h47
  2. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  3. Une conception ou un code sale est il un danger pour une entreprise ?
    Par SlashEne dans le forum Débats sur le développement - Le Best Of
    Réponses: 130
    Dernier message: 09/11/2009, 02h29
  4. [Delphi for PHP] Récupérer les données d'un Datagrid pour une combobox ou listbox
    Par Truebison dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/08/2007, 09h27
  5. Faire passer une table en paramètre pour une procedure
    Par samplaid dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/02/2006, 11h26

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