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 :
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 |
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
Partager