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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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 confirmé
    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
    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 éclairé 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
    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 confirmé
    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
    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 éclairé 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
    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 confirmé
    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
    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 ?

+ Répondre à la discussion
Cette discussion est résolue.

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