Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 07h11   #1
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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 :
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 :
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2011, 09h25   #2
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
Bonjour Grisan29 ,

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

Code :
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 :
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
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 06/12/2011, 21h20   #3
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonsoir cocotte278
merci mais le code code joint est dans un module lancé a partir de ce code
Code :
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 09h19   #4
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
Bonjour Pascal,

Citation:
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 :
travaux.ListView1.ListItems(travaux.ListView1.ListItems.Count - 1, 1) = .Cells(C.Row, 3)
Par :
Code :
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...
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 21h03   #5
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 12h14   #6
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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 ?
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 17h09   #7
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 11h19   #8
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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
Type de fichier : xls Classeur2(1tehvluygzkhggv).xls (172,0 Ko, 2 affichages)
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 12h31   #9
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 13h37   #10
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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".
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 14h25   #11
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 14h33   #12
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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
Type de fichier : xls Classeur2(1tehvluygzkhggv).xls (173,5 Ko, 2 affichages)
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/12/2011, 16h04   #13
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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???
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h22   #14
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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 ?
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h44   #15
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 17h11   #16
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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
Type de fichier : xls Classeur2(1tehvluygzkhggv).xls (228,5 Ko, 7 affichages)
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 17h31   #17
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 10h00   #18
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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


Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 15h33   #19
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

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

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
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
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 16h17   #20
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
Pascal !!!!

Oui, pour mon erreur
Citation:
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 :
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...

Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h42.


 
 
 
 
Partenaires

Hébergement Web