Formulaire combobox multiple et somme de listview

woodfoot

XLDnaute Nouveau
Bonjour a tous

Je viens vers vous pour un double probleme.

Je me suis servi du fichier ci-dessous trouvé sur le forum pour l'adpater a mes propres besoins.
Je me suis servi du fichier de "vaucluse immo" ici :https://www.excel-downloads.com/threads/filtre-suite-a-choix-dans-une-combobox.109375/

Mon probleme est :
Je voudrais pouvoir faire plusieurs tri grace aux combobox.
Faire un tri dans la combox 1, puis dans la 2 ou la 4 ou autres etc...ou commencer sur un choix de la 2, ou de la 3 etc..
Que tout ceci soit interactif, que je n'ai pas a appuyer sur un bouton pour valider le choix 1 puis 2 puis 3 etc...
Je voudrais qu'apres un choix de la combobox 1, il me propose les choix qui resultent dans la listview en combobox 2, ou en 3, ou en 4... que les choix proposés soient "intelligents", qu'ils resultent montrent ce qu'il reste comme choix possible.

Autre probleme, je souhaiterai que mon Label 17 fasse la somme la colonne G
et que le label 18 compte le nombre de ligne restant.

Pour ca, j'ai consulté ce post ( https://www.excel-downloads.com/threads/calculer-la-somme-de-la-6-0-colonne-dune-listview.107414/ )
Mais je n'arrive pas a adapter le code a mon cas !!!

Merci a tous d'avance.

Et bonnes fetes a vous
 

Pièces jointes

  • 122208 Fichier To post.zip
    34.3 KB · Affichages: 229

bqtr

XLDnaute Accro
Re : Formulaire combobox multiple et somme de listview

Bonjour woodfoot,

En gros tu veux des combobox en cascade ? Mais dans ce cas tu devras faire ton choix en commençant par le 1er combbo qui déterminera le 2ème. Puis le choix dans le 2ème combo déterminera le 3ème ect... ect...

Par contre c'est pas terrible ta façon de remplir les en-têtes de colonne de la listview avec le même nom, de même pour les labels, pas facile de voir à quelle colonne de la feuille cela correspond. De plus il n'y a quasiment que des 1 et des 2 sur la feuille ça non plus c'est pas simple pour s'y retrouver.

Tu peux remettre une fichier en exemple plus proche de la réalité. Toutes les données de la feuille sont avec des chiffres ? tu auras des dates ? du texte ? tu auras des formats particuliers type monétaire ? ..../... cela peux avoir son importance.

J'ai fait un fichier il y a quelque temps ou il y a le choix pour filtrer les données par combo en cascade ou par combo indépendant voici le lien : ICI
Jette s'y un oeil.

A+
 

woodfoot

XLDnaute Nouveau
Re : Formulaire combobox multiple et somme de listview

Merci beaucoup pour ta reponse

oui, mon fichier n'est qu'un fichier d'exemple (c'est dur de mettre un fichier d'exemple quand on travaille avec des données dites "confidentielles").
en tout cas, les colonnes de la listview prendront le nom des colonnes de la feuille.
Je remets un ficher en exemple "amélioré"

Mais oui, l'idée est d'avoir des combo box en cascades, mais que l'ordre puisse etre aléatoire, que je puisse faire un tri sur la combobox 5 et sur la 7
Ou sur la 2 et sur la 4 etc....

Je vais regarder ton code et voir ce que je peux faire.

Sinon, tout le fichier comprendra du texte, sauf la colonne G, qui aura du chiffre, c'est pour ca que je veux la sommer avec le resultat dans un label

Merci pour ton aide
 

Pièces jointes

  • 122208 Fichier To post V2.zip
    35.4 KB · Affichages: 222
  • 122208 Fichier To post V2.zip
    35.4 KB · Affichages: 209
  • 122208 Fichier To post V2.zip
    35.4 KB · Affichages: 213

Gael

XLDnaute Barbatruc
Re : Formulaire combobox multiple et somme de listview

Bonsoir Woodfoot, bonsoir bqtr,

Je ne suis pas sûr d'avoir tout compris mais je t'envoie un essai dans le fichier joint.

J'ai modifié les procédures "Alim_Listv" et "Alim_combo" plus quelques ajustements par ci par là, notamment pour utiliser le filtre automatique qui est très pratique dans ton cas puisque tu souhaites cumuler des conditions. Dans ce cas, on utilise la fonction ".SpecialCells(xlCellTypeVisible)" pour créer le listview.

Pour la colonne 3, le format date est géré dans la sélection.

@+

Gael
 

Pièces jointes

  • Woodfoot_V1.zip
    39.4 KB · Affichages: 310

bqtr

XLDnaute Accro
Re : Formulaire combobox multiple et somme de listview

Re, Bonsoir Gael,

Voici un exemple.

A l'ouverture du USF la listview est chargée comme avant, les combobox aussi.
Tu peux commencer à filtrer avec n'importe quel combobox, la listview affiche les éléments filtrés.
Les combobox sont alors chargés avec les éléments (sans doublon) présent dans la listview. C'est à dire que l'on n'utilise plus les données de la feuille mais que l'on filtre à partir de la listview.

A chaque sélection dans un combobox les données de ces derniers sont réactualisées.

Pour la somme dans le label je ne l'ai pas encore traitée j'attends de savoir si le principe de filtre te convient.

Souhaites tu conserver la partie du USF concernant la modification des données ?

Je ferai le ménage dans les codes à la fin pour ne conserver que ce qui y est utile.

A+
 

Pièces jointes

  • 122208 Fichier To post V2.zip
    39.6 KB · Affichages: 220
  • 122208 Fichier To post V2.zip
    39.6 KB · Affichages: 204
  • 122208 Fichier To post V2.zip
    39.6 KB · Affichages: 208
Dernière édition:

Gael

XLDnaute Barbatruc
Re : Formulaire combobox multiple et somme de listview

Bonsoir Bqtr,

Génial le coup des listitems.remove, comme on ne travaille dans ce cas que par suppressions de données, c'est mieux que de tout refaire comme dans mon exemple.

Bonne soirée.

Amicalement,

Gael
 

bqtr

XLDnaute Accro
Re : Formulaire combobox multiple et somme de listview

Re,

Effectivement j'ai trouvé ça plus pratique de travailler directement sur la listview plustôt que sur la feuille, ça évite pas mal de boucles.

Le fichier avec les calculs (somme des éléments de la colonne 7 et nombre d'items dans la listview)

A+
 

Pièces jointes

  • 122208 Fichier To post V2.zip
    37.2 KB · Affichages: 195
  • 122208 Fichier To post V2.zip
    37.2 KB · Affichages: 195
  • 122208 Fichier To post V2.zip
    37.2 KB · Affichages: 194

woodfoot

XLDnaute Nouveau
Re : Formulaire combobox multiple et somme de listview

Bonjour a tous !

Merci Bqtr, ce code est de toute beauté, en effet, ta methode est en effet tres tres bien.

Par contre, quelques petits problemes :

- Je n'arrive plus a faire les modifications apres les tris !! Apres avoir fait un tri dans les combobox, je clique sur une ligne de la listview, et les infos sont dans les textbox de la zone modification. Et la, quand je veux changer les infos, ca bug sur "mise en forme" ... bizarre...

- Serait il possible sinon, que les combobox gardent le choix réalisé ? Si je choisi "A" dans la combobox 1, La combo peut elle affichier ce choix ? parce qu'apres 3 ou 4 tri, on sait plus trop quels sont les criteres selectionnés...

- Enfin... j'arrive pas a mettre mes données dans le fichier !! ca marche plus ! Quand je mets mes infos, le choix en cascade n'est plus possible !! ni le decompte...tu as rentrés des infos de la feuille dans le code ? il y a une macro a lancer ?

Merci en tout cas a tous !
 

woodfoot

XLDnaute Nouveau
Re : Formulaire combobox multiple et somme de listview

oui j'ai resolu mon dernier point, j'avais copier coller mes donnes sans charger le formuclaire, du coup, il y avait de tout dedans, les combo etaient pas a jour etc...et les elements de ma colonne a sommer n'etaient pas tous des chiffres.
Dernier point résolu !
maintenant c'est bon, ca marche....

Reste cette histoire de choix qui reste a afficher (point2) et le bug de mise en forme (point1)

Je suis dessus, mais c'est dur !! c'est la qu'on voit le travail
 

Gael

XLDnaute Barbatruc
Re : Formulaire combobox multiple et somme de listview

Bonjour Woodfoot, bonjour à tous,

Pour résoudre les derniers points (et à partir du code de Bqtr):

Dans la procédure "Combo_cascade" tu supprimes Vide_combo
Dans la procédure "CommandButton3_Click()" tu ajoutes Vide_combo

Tu remets dans le code la procédure "MiseEnForme()" telle qu'elle était dans ton fichier exemple.

et cela devrait déjà améliorer les choses, il retsera quelques détails à régler.

@+

Gael
 

bqtr

XLDnaute Accro
Re : Formulaire combobox multiple et somme de listview

Re,

C'est normal les bugs, le fichier était adapté au projet de Christian. C'est pour ça que je te demandais si tu souhaitais conserver la partie modification de l'USF.

Gael a bien avancé les chose pendant que je dormais :D, mais la procédure du bouton de "Modification" n'est pas bonne. elle exclue la modif de la colonne 3 sur la feuille et la listview. Il faut la modifier comme ceci:

Code:
Private Sub CommandButton2_Click()

Dim k As Byte, ItemSelect As Long, x As Byte, Numlign As Long

With ListView1
  ItemSelect = .SelectedItem.Index 'N° de l'index sélectionné dans la lisview
  Numlign = Right(.ListItems(.SelectedItem.Index).Key, Len(.ListItems(.SelectedItem.Index).Key) - 1) 'N° ligne de la feuille
    If MsgBox("Confirmation de la modification.", vbYesNo, "Confirmation") = vbYes Then
    'mise à jour des colonnes de la listview
       .ListItems(ItemSelect).Text = UCase(TextBox1)
         For k = 1 To 8
           .ListItems(ItemSelect).ListSubItems(k).Text = Controls("TextBox" & k + 1)
         Next
    'mise à jour de la feuille
       Sheets("Data").Cells(Numlign, 1) = UCase(.ListItems(ItemSelect).Text)
         For k = 1 To 8
            Sheets("Data").Cells(Numlign, k + 1) = UCase(.ListItems(ItemSelect).ListSubItems(k).Text)
         Next
       MiseEnForme
       .ListItems(ItemSelect).Selected = False
.../...
La macro "MiseEnForme" ne te sert à rien tel quelle est, sauf si tu l'as modifiée. Si c'est pas le cas tu la supprimes, sans oublier de la supprimer dans les macros y faisant mention.

Pour le bouton de "Réinitialisation" tu peux lui mettre le code suivant:

Code:
Private Sub CommandButton3_Click()
ListView1.ListItems.Clear
UserForm_Initialize
Vide_Combo
End Sub

De même la macro : "Private Sub ListView1_DblClick()" apparemment ne te sert à rien, tu peux elle aussi la suprrimer.

A+
 
Dernière édition:

woodfoot

XLDnaute Nouveau
Re : Formulaire combobox multiple et somme de listview

Bonjour a tous.

J'ai donc fait toutes ces petites modifications :
- Garder le choix des combobox visibles
- Retirer la macro "mise en forme"
- Changer le code du bouton 2

Il reste 2 petites choses que j'aimerais faire, mais je m'arrache les cheveux dessus; j'ai bien regardé des posts du forum, mais je trouve pas mon bonheur.

- Je souhaiterais rajouter 3 checkbox, dans mon frame de modification avec les actions suivantes : Une ligne est alors selectionnée dans la listview, je voudrais que : Si la checkbox est cochée, alors, pour la ligne selectionnée, le fait de cocher la checkbox fait ecrire un "X" dans la colonne 16 de la ligne correspondante.
Je souhaiterais pouvoir faire 3 checkbox comme ca, pour ecrire "X" dans les colonnes 16,17 et 18, je dupliquerai alors le code.

- Enfin, j'aimerais, toujours dans ce frame de modification, que pour les modification à effectuer dans la textbox 1, qui ecrit dans la colonne 1 de la ligne correspondante, j'ai non pas une textbox ou le text a ecrire est libre, mais avoir une sorte de listbox qui propose 3 choix. L'utilisateur a alors la possibilité de selectionner un de ces 3 choix pour faire la modification (Test A, Test B et Test C).
Cela eviterait les differentes ecritures possibles (avec ou sans majuscules etc...) et de garder alors toujours les memes criteres de tri dans les combo, sinon, je redoute qu'au fur et a mesure que l'application soit utilisée, qu'il y ait de tout dans mon tableau pour en faite, la meme data (ex : Test A, TEST A, test a, TESTE A etc...).
Je trouve ca assez difficile, parce que a la selection de la ligne dans la listview, il faudrait que la l'info correspondante se charge dans cette listeview ( c'est l'info de la colonne 1), mais que seulement en cas ou l'utilisateur clique dedans, pour la modifier, que les 3 options de choix apparaissent...
Comment creer une listview avec des infos prechargée ? les inserer dans le code ?


Je mets mon fichier modifié en piece jointe.

Merci a tous pour votre aide et... Joyeux noel !!
 

Pièces jointes

  • 122408 Fichier To post V3.zip
    30.8 KB · Affichages: 179
  • 122408 Fichier To post V3.zip
    30.8 KB · Affichages: 181
  • 122408 Fichier To post V3.zip
    30.8 KB · Affichages: 180

bqtr

XLDnaute Accro
Re : Formulaire combobox multiple et somme de listview

Re,

Ton fichier avec les modifs:

Le Textbox1 est remplacé par une ComboBox avec les données sans doublon de la colonne 1 de la feuille. La valeur qui s'affiche est celle de la ligne sélectionnée (de la colonne1) de la listview.

Pour les CheckBoxs, si les colonnes 16,17,18 sont déjà renseignées ils s'affichent cochés. Le fait de clicker dessus inverse le résultat :
- Si déjà coché : il se décoche et la cellule de la colonne se vide.
- Si pas coché : il se coche et la cellule de la colonne est renseignée.

J'ai passé la variable "NumLign" en variable "Public" dans le module 1 vu qu'elle sert maintenant plusieurs fois. Elle prend sa valeur lorsque tu click sur une ligne dans la listview.

Bonne soirée et bonnes fêtes

A+
 

Pièces jointes

  • 122408 Fichier To post V3.zip
    36 KB · Affichages: 347
  • 122408 Fichier To post V3.zip
    36 KB · Affichages: 359
  • 122408 Fichier To post V3.zip
    36 KB · Affichages: 366
Dernière édition:

Discussions similaires

Réponses
28
Affichages
1 K
Réponses
7
Affichages
370

Statistiques des forums

Discussions
312 310
Messages
2 087 127
Membres
103 479
dernier inscrit
Compta