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
| Private Sub Worksheet_Activate()
Dim LesUG As New Collection, MonUg As Range, MaListe$, i&, j&, a, B
[ug_sur_ot] = ""
'CREATION DE LA COLLECTION DES N° UG
With F2.Columns(22)
Set MonUg = .Cells(3)
Do While MonUg <> "": LesUG.Add MonUg, CStr(MonUg): Set MonUg = MonUg.Offset(1, 0): Loop
End With
If LesUG.Count = 0 Then MsgBox "Votre Base de Données d'OT est vide": Exit Sub
'TRI DE LA COLLECTION AVEC SUPPRESSION DES DOUBLONS (Origine J.G. Hussey)
For i = 1 To LesUG.Count - 1
For j = i + 1 To LesUG.Count
If LesUG(i) > LesUG(j) Then
a = LesUG(i): B = LesUG(j)
LesUG.Add a, before:=j: LesUG.Add B, before:=i
LesUG.Remove i + 1: LesUG.Remove j + 1
End If
Next j
Next i
'CREATION DES DONNEES DE LA LISTE DE CHOIX
For i = 1 To LesUG.Count - 1
MaListe = MaListe & LesUG.Item(i) & ","
Next i
MaListe = MaListe & LesUG(LesUG.Count)
'MISE A JOUR DE LA LISTE DE VALIDATION
With F3.Range("I7").Validation
.Delete: .Add xlValidateList, xlValidAlertStop, xlBetween, MaListe
.IgnoreBlank = True: .InCellDropdown = True: .InputTitle = "Choix d'UG": .ErrorTitle = ""
.InputMessage = "Veuillez sélectionner un N° d'UG dans la liste"
.ErrorMessage = "Ce N° d'UG n'existe pas dans la base de données"
.ShowInput = True: .ShowError = True
End With |
Partager