Bonjour,

Débutant sur le logiciel Excel, j'aimerais qu'on m'aide sur la programmation VBA.

Pour vous expliquez,

J'ai une base de donnée (ci dessous)

RUBRIQUES	PHASES	TACHES
LOT ELEC	APS	- Repérages sur site
LOT ELEC	APS	- Analyse des documents d'entrée
LOT ELEC	APS	- Liste équipements prédimensionnés
LOT ELEC	APS	- Liste instruments / BDD
LOT ELEC	APS	- PID
LOT ELEC	APS	- Notes de calcul
LOT ELEC	APS	- Bilan de puissance
LOT ELEC	APS	- Principes généraux de conduite de l’installation
LOT ELEC	APS	- Note technique
LOT ELEC	APS	- Revues, Gestion documentaire & TQC / DOE
LOT ELEC	APD	- Repérages sur site
LOT ELEC	APD	- Analyse modifications et récupération des plans existants
LOT ELEC	APD	- Schéma de principe distribution électrique
LOT ELEC	APD	- Liste des consommateurs
LOT ELEC	APD	- Liste instruments / BDD
LOT ELEC	APD	- PID
LOT ELEC	APD	- Notes de calcul
LOT ELEC	APD	- Bilan de puissance
LOT ELEC	APD	- Carnet de câbles
LOT ELEC	APD	- Définition préliminaire des boucles
LOT ELEC	APD	- Plan de situation des équipements
LOT ELEC	APD	- Schéma des interliaisons
LOT ELEC	APD	- Spécifications générales élec/instrum
LOT ELEC	APD	- Revues, Gestion documentaire & TQC / DOE
LOT ELEC	Etude de détail	- Schémas de détail armoires et coffrets
LOT ELEC	Etude de détail	- Modification des plans existants
LOT ELEC	Etude de détail	- Liste des consommateurs
LOT ELEC	Etude de détail	- Liste instruments / BDD
LOT ELEC	Etude de détail	- PID
LOT ELEC	Etude de détail	- Notes de calcul
LOT ELEC	Etude de détail	- Bilan de puissance
LOT ELEC	Etude de détail	- Carnet de câbles
LOT ELEC	Etude de détail	- Plan de situation des équipements
LOT ELEC	Etude de détail	- Etude et plan des éclairages
LOT ELEC	Etude de détail	- Plan des MALT
LOT ELEC	Etude de détail	- Schéma des interliaisons
LOT ELEC	Etude de détail	- Schémas de boucles
LOT ELEC	Etude de détail	- Etude foudre
LOT ELEC	Etude de détail	- Revues, Gestion documentaire & TQC / DOE
LOT AUTOM	Généralité	- Participation analyse de risque API
LOT AUTOM	Généralité	- Réunion d'étude
LOT AUTOM	Généralité	- Revue de conception (interne)
LOT AUTOM	Généralité	- Matrice traçabilité - RTM
LOT AUTOM	APS	- Relevés / Repérage sur site
LOT AUTOM	APS	- Analyse fonctionnelle de base
LOT AUTOM	APS	- Architecture réseau
LOT AUTOM	APS	- Revues, Gestion documentaire & TQC / DOE
LOT AUTOM	APD	- Relevés / Repérage sur site
LOT AUTOM	APD	- Matrice de sécurité
LOT AUTOM	APD	- Architecture réseau
LOT AUTOM	APD	- Analyse fonctionnelle détaillée
LOT AUTOM	APD	- Spécifications fonctionnelles - FDS
LOT AUTOM	APD	- Spécifications de travaux (info. Indus.)
LOT AUTOM	APD	- Spécifications logicielles - SDS
LOT AUTOM	APD	- Spécifications matérielles - HDS
LOT AUTOM	APD	- Spécifications particulières
LOT AUTOM	APD	- Certif. Compatibilité / Interface Agreement - IFA
LOT AUTOM	APD	- Liste E/S
LOT AUTOM	APD	- Table de communication
LOT AUTOM	APD	- Tables d'échange supervision
LOT AUTOM	APD	- Objets standards
LOT AUTOM	APD	- Définition des variables système
LOT AUTOM	APD	- Alarmes (hors objets standards)
LOT AUTOM	APD	- Graphe de fonctionnement
LOT AUTOM	APD	- Revues, Gestion documentaire & TQC / DOE
LOT AUTOM	Développement	- Configuration matérielle
LOT AUTOM	Développement	- Développement des objets standards
LOT AUTOM	Développement	- Tables d'échange supervision
LOT AUTOM	Développement	- Objets standards
LOT AUTOM	Développement	- Variables système
LOT AUTOM	Développement	- Alarmes (hors objets standards)
LOT AUTOM	Développement	- Instanciation des objets standards
LOT AUTOM	Développement	- Vannes
LOT AUTOM	Développement	- Moteurs
LOT AUTOM	Développement	- Alarmes
LOT AUTOM	Développement	- Process
LOT AUTOM	Développement	- Programme & graphe de sécurité
LOT AUTOM	Développement	- Programme & graphes de fonctionnement
LOT AUTOM	Développement	- Programmation de la logique des équipements (nb x 0.25)
LOT AUTOM	Développement	- Programmation des alarmes
LOT AUTOM	Développement	- Revues, Gestion documentaire & TQC / DOE
LOT AUTOM	Manuel	- Manuel utilisateur
LOT AUTOM	Manuel	- Manuel maintenance API
LOT AUTOM	Manuel	- Procédures diverses
LOT SUPERVISION	Généralité	- Participation analyse de risque API
LOT SUPERVISION	Généralité	- Réunion d'étude
LOT SUPERVISION	Généralité	- Revue de conception (interne)
LOT SUPERVISION	Généralité	- Matrice traçabilité - RTM
LOT SUPERVISION	Généralité	- Design review
LOT SUPERVISION	Généralité	- Revues, Gestion documentaire & TQC / DOE
LOT SUPERVISION	Pré-étude	- Spécifications fonctionnelles
LOT SUPERVISION	Pré-étude	- Esquisse IHM
LOT SUPERVISION	Pré-étude	- Revues, Gestion documentaire & TQC / DOE
LOT SUPERVISION	Codage et développement IHM	- Préparation technique (VM, softs, licences, … )
LOT SUPERVISION	Codage et développement IHM	- Développement des objets standards
LOT SUPERVISION	Codage et développement IHM	- Instanciation des objets standards
LOT SUPERVISION	Codage et développement IHM	- Vannes
LOT SUPERVISION	Codage et développement IHM	- Moteurs
LOT SUPERVISION	Codage et développement IHM	- Alarmes
LOT SUPERVISION	Codage et développement IHM	- Mise en place table d'échange automate
LOT SUPERVISION	Codage et développement IHM	- Développement synoptiques
LOT SUPERVISION	Codage et développement IHM	- Revues, Gestion documentaire & TQC / DOE
LOT SUPERVISION	Traçabilité	- Développement SCC (21CFR, Historian, SQL)
LOT SUPERVISION	Traçabilité	- Développement interface web / Rapports
LOT SUPERVISION	Traçabilité	- Revues, Gestion documentaire & TQC / DOE
LOT SUPERVISION	Manuel	- Manuel utilisateur
LOT SUPERVISION	Manuel	- Manuel maintenance avec procédure d'installation
LOT SUPERVISION	Manuel	- Procédures diverses
Le but c'est que je dois créer 3 Listbox Dynamique.
Je m'explique :
Quand je clique sur la Rubrique Lot Elec ( qui dans la première ListeBox), la listeBox2 doit m'afficher les Phases correspondantes qui appartienne a LOT ELEC.
Ensuite quand je clique sur Etude détaillée ( qui est dans la 2ème listbox), la listebox3 doit m'afficher les Taches correspondantes qui appartienne a Etude détaillée.

Bien sur dans la listbox3 je fait une multi sélection.

A la fin, j'ai un bouton AJOUT, qui me permet d'ajouter se que j'ai sélectionné dans la feuille excel.
Le résultat doit me faire une fois que j'appuis sur le bouton AJOUT

Lot ELEC
Etude détaillée
Liste des taches sélectionnées

Mais par-contre Si je veux ajouter des autres Rubrique,Phases,..... je dois pouvoir les mettres en dessous ( les un en dessous des autres )

J'ai déjà mon code pour supprimer les doublons :

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
23
24
25
26
27
28
29
30
31
Private Sub UserForm_Initialize()
 
    Dim PlageTaches As Range 'Liste des Taches
    Dim PlageRubrique As Range 'Liste des Rubriques
    Dim PlagePhase As Range 'Liste des Phases
    Dim SheetBDD As Worksheet
 
 
 
    Set SheetBDD = Sheets("BDD")
    Set PlageRubrique = SheetBDD.Range(SheetBDD.Range("A2"), SheetBDD.Range("A2").End(xlDown))
    Set PlagePhase = SheetBDD.Range(SheetBDD.Range("B2"), SheetBDD.Range("B2").End(xlDown))
    Set PlageTaches = SheetBDD.Range(SheetBDD.Range("C2"), SheetBDD.Range("C2").End(xlDown))
 
 
    'Tri des données de la liste de façon unique & alphabétique
    Unique_Sorted_List ListBoxRubrique, PlageRubrique
    Unique_Sorted_List ListBoxPhase, PlagePhase
    Unique_Sorted_List ListBoxTaches, PlageTaches
 
    With ListBoxRubrique
        .ListIndex = -1
    End With
    With ListBoxPhase
        .ListIndex = -1
    End With
   With ListBoxTaches
        .ListIndex = -1
    End With
 
End Sub
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Unique_Sorted_List(CbList As MSForms.ListBox, rg As Range)
 
    Dim Dict
    Dim c As Range
    Dim i As Long, j As Long
    Dim arrList As Variant, vTemp As Variant
 
    'Créer une liste des valeurs unique avec un dictionnaire
    Set Dict = CreateObject("Scripting.Dictionary")
    Dict.CompareMode = vbTextCompare
 
    For Each c In rg
        If Not IsEmpty(c.Value) And Not Dict.exists(c.Value) Then
            Dict.Add c.Value, Nothing
            CbList.AddItem c.Value
        End If
    Next c
 
    'Trier la liste
    arrList = CbList.List
    For i = LBound(arrList, 1) To UBound(arrList, 1) - 1
        For j = i + 1 To UBound(arrList, 1)
            If arrList(i, 0) > arrList(j, 0) Then
                vTemp = arrList(i, 0)
                arrList(i, 0) = arrList(j, 0)
                arrList(j, 0) = vTemp
            End If
        Next j
    Next i
 
    'Remplir la combobox avec des valeurs unique triées
    CbList.Clear
    For i = LBound(arrList, 1) To UBound(arrList, 1)
       CbList.AddItem arrList(i, 0)
    Next i
End Sub
Voici le tableau pour l'instant

Pièce jointe 192949


Je vous remercie d'avance pour votre aide

Cordialement

Damien