Masquer la première ligne du Listview

Re bonjour Dan,

Je réponds à : "Votre fichier n'est pas représentatif. Si je comprends vous avez des doublons en colonne A ?"

Je pense que non mais tout dépend dans quel onglet on se place. Dans l'onglet "LISTE" il n'y a pas de DOUBLON. J'ai bien fait des listes sans doublon normalement. En revanche dans l'onglet "TEST" qui est la BDD (base de données) la oui j'ai des doublons dans toutes les colonnes.

Le fichier en PJ est plus représentatif de la réalité du vrai fichier.

Est ce qu'à partir de ça on peut arriver à faire quelque chose ?

Si je récapitule, quand j'arrive dans mon formulaire, la listview prend toute la base de données.

Si je sélectionne dans mon combobox ENTITE, la numéro 1 ou 2 par exemple, la listview s'actualise (se filtre) sur le choix de l'entité, et ainsi de suite pour les combobox en cascade. Et si je reviens sur une combobox antérieur pour changer de manager par exemple, la listview s'actualise.

Après j'avais aussi l'histoire des boutons pour filtrer par colonne de mon listview c'est à dire, par ACTIVITE, SECTEUR, MANAGER, AGENCE, et COLLABORATEUR.

Par contre je vois pas du tout comment l'ensemble peut s'articuler...ça me semble bien compliqué

Bonjour,

Je pense que non mais tout dépend dans quel onglet on se place. Dans l'onglet "LISTE" il n'y a pas de DOUBLON. J'ai bien fait des listes sans doublon normalement. En revanche dans l'onglet "TEST" qui est la BDD (base de données) la oui j'ai des doublons dans toutes les colonnes.

je ne parlais pas de l'onglet Test mais de l'onglet Liste. Mais avec votre dernier fichier, si je comprends bien le choix des valeurs dans combobox servent à vous afficher les infos dans la listview.

Ce qu'il faut savoir c'est si les combobox doivent être remplies toutes depuis la feuille Liste ou pas

Exemple : à la vue du fichier on pourrait imaginer remplir la combo entite depuis la feuille Liste et les autres combox en fonction de la feuille Test selon le choix effectué dans la combo entite
Là c'est important de savoir aussi comment vous complétez la feuille Test
Au départ, je pensais que toutes les combo devaient être chargées à l'ouverture de l'usf mais avec ce que vous avez posté ici --> https://forum.excel-pratique.com/s/goto/1076487, j'en doute

Désolé de mes questions mais vu que vous voulez une progression dans le remplissage des combo, j'ai besoin de cette info

Rem importante :

Après j'avais aussi l'histoire des boutons pour filtrer par colonne de mon listview c'est à dire, par ACTIVITE, SECTEUR, MANAGER, AGENCE, et COLLABORATEUR.

N'oubliez pas qu'avec la listview vous avec le choix d'effectuer des tri en cliquant sur l'entete de la colonne de votre choix. Du coup cela pourrait simplifier aussi. Du coup vous n'auriez plus besoin de vos boutons à droite

Bonjour Dan,

Désolé pour le retard, j’ai eu un contre temps.

Alors j’ai changé le formulaire pour que ce soit plus simple. J’ai enlevé les filtres (qui était sur la droite) après avoir vu ton conseil et

N'oubliez pas qu'avec la listview vous avec le choix d'effectuer des tri en cliquant sur l'entete de la colonne de votre choix. Du coup cela pourrait simplifier aussi. Du coup vous n'auriez plus besoin de vos boutons à droite

j’ai enlevé le bouton « ajouter » en bas à gauche et j’ai ajouté à la place des boutons qui permettent d’ajouter :

1 Manager

2 Agence

3 Collaborateur

Je vais essayer d’expliquer le plus clairement ce que j’imagine.

1 Pour le bouton qui permet d’ajouter un manager, je le vois ainsi :

Reprendre le cadre en haut avec les combobox mais cette fois en cascade de Entité à Secteur (prend sa source dans l’onglet TEST (avec suppression des doublons). Particularité, il faudrait que devant la prochaine combobox, le label juste devant s’intitule Directeur (avec la Liste LDsa dans l’onglet Liste) et non Manager. Le Manager, se retrouve dans la combobox Collaborateurs qui la n’en sera pas une. Ce sera un textbox pour rentrer le nouveau nom MANAGER (ajout dans la liste LMana dans l’onglet Liste). Ce qui serait bien c’est que le Label pour le titre, soit MANAGER et non Collaborateur. Pour le reste des autres combobox pas besoin de les faire apparaitre.

On cliquera sur le bouton valider en bas pour valider l’ajout d’une ligne dans l’onglet TEST pour le nouveau manager

2 Pour le bouton qui permet d’ajouter une Agence, j’avais imaginé :

Reprendre le cadre en haut avec les combobox mais cette fois en cascade de Entité à Manager (prend sa source dans l’onglet TEST (avec suppression des doublons). Particularité, il faudrait que la prochaine combobox n’en soit pas une mais une textbox pour saisir la nouvelle AGENCE. Cette nouvelle agence s’ajoutera à la liste LAgence donc l’onglet Liste. Il faut également laisser dans le cadre en haut la possibilité de dire si cette agence est une bank immo et de pouvoir sélectionner le type d’encartage. SI bank immo NON alors pour type d’encartage = « X ».

On cliquera sur le bouton valider en bas pour valider l’ajout d’une ligne dans l’onglet TEST pour la nouvelle agence

3 Pour le bouton qui permet d’ajouter un Collaborateur, je pensais à :

Reprendre toujours le cadre en haut avec les combobox mais cette fois en cascade de Entité à Type d’encartage (prend sa source dans l’onglet TEST (avec suppression des doublons). Particularité, il faudrait que la prochaine combobox n’en soit pas une mais une textbox pour saisir le nouveau nom du collaborateur. Si on ne connait pas nom du nouveau collaborateur alors inscrire X majuscule. Ce nouveau collaborateur s’ajoutera à la liste LCollaborateur donc l’onglet Liste. Dans le cadre on peut enlever tout le reste.

On cliquera sur le bouton valider en bas pour valider l’ajout d’une ligne dans l’onglet TEST pour le nouveau collaborateur.

4 Si possible avoir la possibilité de trier la listview avec les entêtes de colonne.

J’ai l’impression que c’est plus parlant quand même. Moi ça me semble très difficile voire infaisable à mon niveau.

Je remets en PJ le nouveau fichier.

Encore merci Dan si jamais tu encore du temps et l'envie de m'aider. Je vais vraiment pour m'exercer derrière grâce à tout ça.

Bon week end

Bonjour

Reprendre le cadre en haut avec les combobox mais cette fois en cascade de Entité à Secteur (prend sa source dans l’onglet TEST (avec suppression des doublons).

Donc la combo entité est remplie selon les valeurs reprises en feuille Test ? Parce que dans votre fichier les données vient de la feuille Liste et pas de la feuille Test
Si c'est le cas, cela change pas mal au niveau code

Bonjour Dan,

Effectivement, actuellement les données sont remplies à partir de la feuille liste.

J'aurai apprécié quand on clique sur un des boutons dans la section "ajout" avoir lors de l'ajout de Manager, Agence, Collaborateur, des combobox en cascade lié à l'onglet test.

Merci Dan

Effectivement, actuellement les données sont remplies à partir de la feuille liste.

J'aurai apprécié quand on clique sur un des boutons dans la section "ajout" avoir lors de l'ajout de Manager, Agence, Collaborateur, des combobox en cascade lié à l'onglet test.

Ok mais si votre onglet test ne comporte pas l'entité 2 et 3 en colonne 1 de la feuille Test par exemple, vous n'aurez pas la donnée dans votre combo Entité. Regardez votre fichier vous n'avez que l'entité 1 dans la feuille Test. Donc la combo entité dans ce cas n'aura que l'entité 1

Vous êtes conscient de cela ?

Re bonjour Dan,

Oui j'en suis conscient, ça ne devrait pas poser de soucis,

Merci Dan

Oui j'en suis conscient, ça ne devrait pas poser de soucis,

1. Ok. La 1iere combo Entité remplie depuis la feuille Liste ou test ?
Les autres depuis la feuille test

Ok pour vous ?

2. Autres questions :
- pourquoi la propriété locked de votre combo entité est-elle à valeur True ?
- quel nom voulez vous donner au tableau de la feuille Test. Là c'est Tableau23...
- Quelle est l'ordre des combobox Entité, Activité, secteur, Manager, Agence... ou un autre ordre

1. Ok. La 1iere combo Entité remplie depuis la feuille Liste ou test ?

Depuis la feuille TEST,

Ok pour vous ?

Oui

2. Autres questions :

- pourquoi la propriété locked de votre combo entité est-elle à valeur True ?

Parce que je ne voulais que cette entité là

- quel nom voulez vous donner au tableau de la feuille Test. Là c'est Tableau23...

TBDD

- Quelle est l'ordre des combobox Entité, Activité, secteur, Manager, Agence... ou un autre ordre

Dans la même ordre que les combobox du formulaire, c'est à dire :

Entité, Activité, secteur, Manager, Agence; Bank Immo (Alias choix); Type d'encartage; Collaborateur

Merci Dan

- pourquoi la propriété locked de votre combo entité est-elle à valeur True ?

Parce que je ne voulais que cette entité là

Alors la combo Entité ne sert à rien dans votre USF non ?

Elle va servir quand je vais ajouter l’entité 2

Alors il ne faut pas mettre la propriété à True mais la laisser à False

voici les 3 premiers codes :

1. code Initialize : remplacez le code existant par celui ci-dessous

Private Sub UserForm_Initialize()
Dim c As Range
Dim tablo As Collection
Dim item

On Error Resume Next
Set tablo = New Collection
With Sheets("Test")
    For Each c In .ListObjects("TBDD").ListColumns(1).DataBodyRange
        tablo.Add c.Value, CStr(c.Value)
    Next c
End With
On Error GoTo 0
For Each item In tablo
    CboEntite.AddItem item
Next item

Call AlimenterListView
Me.Height = 545
Me.Width = 682.5
End Sub

2. code pour la combo Entité : à ajouter

Private Sub CboEntite_Change()
Dim c As Range
Dim tablo As Collection
Dim item

If CboEntite = vbNullString Then CboAct.Clear

On Error Resume Next
Set tablo = New Collection
With Sheets("Test")
    For Each c In .ListObjects("TBDD").ListColumns(2).DataBodyRange
        If CStr(c.Offset(0, -1).Value) = CboEntite.Value Then
            tablo.Add c.Value, CStr(c.Value)
        End If
    Next c
End With
On Error GoTo 0
For Each item In tablo
    CboAct.AddItem item
Next item
End Sub

3. Code pour combo Activité : à ajouter

Private Sub CboAct_Change()
Dim c As Range
Dim tablo As Collection
Dim item

If CboAct = vbNullString Then CboSecteur.Clear

On Error Resume Next
Set tablo = New Collection
With Sheets("Test")
    For Each c In .ListObjects("TBDD").ListColumns(3).DataBodyRange
        If CStr(c.Offset(0, -2).Value) = CboEntite.Value And CStr(c.Offset(0, -1).Value) = CboAct.Value Then
            tablo.Add c.Value, CStr(c.Value)
        End If
    Next c
End With
On Error GoTo 0
For Each item In tablo
    CboSecteur.AddItem item
Next item
End Sub

Attention vous devez enlever tous les rowsource

Faites un test pour voir si cela donne ce que vous voulez

Edit : correctif code points 2 et 3

Re bonjour Dan,

Merci pour ton code il fonctionne très bien. Je me suis permis de continuer ton codage sur les autres privatesub.

Je me permets de remettre le fichier actualisé

Bonjour Dan,

Vous croyez que vous pouvez m'aider pour le bouton d'ajout de collaborateur ? l'ajout de Manager et Agence, je devrais pouvoir m'en sortir avec la trame de l'ajout de collab.

Le bouton ajout de collab :

Reprendre toujours le cadre en haut avec les combobox en cascade (Merci Dan) de Entité à Type d’encartage. Particularité, il faudrait que la prochaine combobox Collab soit un textbox pour saisir le nouveau nom du collaborateur. J'ai ajouté le TextBox sur le coté du formulaire, mais je vois pas trop comment caché la combobox au moment du clik et faire apparaitre le textbox collab à la place. Je vois pas non plus comment cela peut s'articuler après avec l'ajout de la nouvelle ligne du collab dans la listview. Désolé Dan, faut vraiment que je fasse une formation, je suis vraiment pas bon du tout.

Si on ne connait pas nom du nouveau collaborateur alors inscrire X majuscule. Ce nouveau collaborateur s’ajoutera à la liste LCollaborateur donc l’onglet Liste. Dans le cadre on peut enlever tout le reste.

On cliquera sur le bouton "valider" en bas pour valider l’ajout d’une ligne dans l’onglet TEST pour le nouveau collaborateur.

Bonjour

Ok pour votre dernier fichier. Je n'ai pas tout analysé mais le fonctionnement semble correct.
Il reste à ajouter le code pour le tri (ci-dessous) selon click sur entete des colonnes de la listview

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With ListView1
    .Sorted = False
    .SortKey = ColumnHeader.Index - 1

    If .SortOrder = lvwAscending Then
        .SortOrder = lvwDescending
    Else
        .SortOrder = lvwAscending
    End If

    .Sorted = True
End With
End Sub

Le bouton ajout de collab :

Au départ lorsque vous devez ajouter un collaborateur, vous procédez comment? Via click sur le bouton Collaborateur en violet ?

Bonjour Dan,

J'ai un petit soucis lorsque que je lance la privatesub il me met :

dan 1 1

Au départ lorsque vous devez ajouter un collaborateur, vous procédez comment? Via click sur le bouton Collaborateur en violet ?

Oui premier click sur le bouton ajout collab en violet, pour changer le formulaire et permettre d'afficher le textbox collab à la place du cbo collab.

J'ai un petit soucis lorsque que je lance la privatesub il me met :

Oui j'ai eu le même souci. Voici ce que vous devez faire (c'est bizarre de faire cela mais cela fonctionne)
- Supprimez le code s'il est toujours dans l'USF
- Dans un espace de l'USF, rajoutez une listview (c'est juste une bidouille)
- Remettez le code en question
- enregistrez votre fichier
- Supprimez la listview que vous avez rajoutée

Dites moi si ok.

edit :

Oui premier click sur le bouton ajout collab en violet, pour changer le formulaire et permettre d'afficher le textbox collab à la place du cbo collab.

1. Le bouton est lié à la macro Ajout qui sert pour ajouter des données dans la feuille test. Mais il y a aussi deux autres boutons, à quoi seront-ils reliés
2. Comment vous ajoutez dans la feuille Liste

Expliquez comment vous fonctionnez sans quoi je ne peux pas vous proposer quelque chose

Re bonjour Dan,

Je n'ai pas réussi...

Vous n'avez peut être pas suivi exactement ce que je vous disais

Votre fichier 1-7 posté hier dans lequel j'ai juste rajouté le code en faisant ce que je vous ai expliqué

Rechercher des sujets similaires à "masquer premiere ligne listview"