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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| Option Explicit
Option Compare Text
Option Base 1
Dim Tbl_Prêteur As Variant, Tbl_Société As Variant, Tbl_Fonction As Variant, Tbl_SD As Variant, Tbl_Localisation As Variant, Tbl_Type As Variant 'Annuaires
Dim Tbl_BDDclés As Variant, Tbl_SuiviLots As Variant 'Autres
Dim La As Object, Ll As Object 'ListBox
Dim Etat_import As Byte
Public Cible As Variant
Sub Import_Données()
Tbl_Prêteur = Sheets("Annuaires").Range("T_Prêteur[#All]")
Tbl_Société = Sheets("Annuaires").Range("T_Société[#All]")
Tbl_Fonction = Sheets("Annuaires").Range("T_Fonction[#All]")
Tbl_SD = Sheets("Annuaires").Range("T_SD[#All]")
Tbl_Localisation = Sheets("Annuaires").Range("T_Localisation[#All]")
Tbl_Type = Sheets("Annuaires").Range("T_Type[#All]")
Tbl_BDDclés = Sheets("BDD clés").Range("T_BDDclés[#All]")
Tbl_SuiviLots = Sheets("Suivi des lots").Range("T_SuiviLots[#All]")
Etat_import = 1
End Sub
Sub Test_ListBox()
Dim A As Long, B As Long 'Variables pour les boucles
Dim Tbl_Tampon As Variant, Val_Tampon As Variant, x As Long, trv As Byte 'Variables pour filtre ListBox
'Set = Sert à attribuer une référence d'objet à une variable
'La ou Ll = Emplacement de la ListBox Annuaire et Lot
Set La = ThisWorkbook.Worksheets("Formulaires").LBox_Annuaire
Set Ll = ThisWorkbook.Worksheets("Formulaires").LBox_Lots
'Nettoyage de la ListBox à chaque nouvelle sélection
La.Clear
Ll.Clear
If Etat_import = 0 Then Exit Sub 'On sort de la procédure si les données ne sont pas chargées
'Importation du Prêteur dans Annuaire
If Cible = Range("C_Prêteur").Address Then
La.ColumnCount = 2
La.ColumnWidths = "" 'Réinitialisation largeur de colonne
La.List = Tbl_Prêteur
'Importation de la Société dans Annuaire
ElseIf Cible = Range("C_Société").Address Then
La.ColumnCount = UBound(Tbl_Société, 2) 'Nombre de colonne selon l'indice le plus haut du tableau
La.ColumnWidths = "125; 175; 100; 75; 50" 'Ajustement manuel de la taille des colonnes
La.List = Tbl_Société
'Importation du Type dans Annuaire
ElseIf Cible = Range("C_Type").Address Then
La.ColumnCount = 2
La.ColumnWidths = "" 'Réinitialisation largeur de colonne
La.List = Tbl_Type
'Importation N°clé selon la cellule "Type" ET le stock disponible
ElseIf Cible = Range("C_Nclé").Address Then
x = 1
Val_Tampon = Range("C_Type") 'Variable de mémoire pour la cellule type clé
For A = 2 To UBound(Tbl_Type) '1er Boucle pour Contrôle que le type de clé existe dans l'annuaire
If Val_Tampon = Tbl_Type(A, 1) Then 'On autorise la boucle B si la valeur est trouvé
trv = 1
ElseIf A = UBound(Tbl_Type) And trv = 0 Then 'Si la boucle se termine sans rien trouvé
La.AddItem "Le type de clé n'est pas présent dans l'Annuaire. Impossible d'effectuer une recherche de disponibilité"
End If
Next A
If trv = 1 Then 'Autorisation boucle
La.ColumnCount = 2
La.ColumnWidths = "75; 50" 'Réinitialisation largeur de colonne
For B = 2 To UBound(Tbl_BDDclés) '2e Boucle pour Contrôle la base de donnée des clés
If Tbl_BDDclés(B, 4) = Val_Tampon And Tbl_BDDclés(B, 5) = "Stock" And Tbl_BDDclés(B, 8) = "" Then
If x = 1 Then 'Ajout des en-têtes dès la première clé trouvée
La.AddItem Tbl_BDDclés(1, 2) 'Ajout Date Création. La première ligne vaut 0.
'****C'est ici ou ça bloque si précédemment la ListBox a été alimenté pour une colonne par .List
La.List(La.ListCount - 1, 1) = Tbl_BDDclés(1, 3) 'Ajout N° clé
'*****************************************************************************
End If
La.AddItem Tbl_BDDclés(B, 2)
La.List(La.ListCount - 1, 1) = Tbl_BDDclés(B, 3)
x = x + 1 'On incrémente le tableau si besoin
ElseIf B = UBound(Tbl_BDDclés) And x = 1 Then 'Condition dès que la boucle est fini et aucun item trouvé
La.AddItem "Ce type de clé n'est pas présent en stock"
End If
Next B
End If
End If
End Sub |
Partager