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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| Option Compare Text
Dim f, BD_GLOBAL(), choix(), Rng, Ncol
Private Sub CommandButton1_Click()
If MsgBox("Etes vous sûr de suppimer " & f.Cells(Enreg, 1) & "?", vbYesNo) = vbYes Then
Enreg = Me.Enreg
f.Cells(Enreg, 1).Resize(, Ncol).Delete Shift:=xlUp
raz
Me.Enreg = ""
UserForm_Initialize
End If
End Sub
Private Sub UserForm_Initialize()
Set f = Sheets("BD_GLOBAL")
Set Rng = f.Range("A2:M" & f.[A65000].End(xlUp).Row)
BD_GLOBAL = Rng.Value
Ncol = Rng.Columns.Count
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")
Set d3 = CreateObject("Scripting.Dictionary")
d1.CompareMode = vbTextCompare
d2.CompareMode = vbTextCompare
d3.CompareMode = vbTextCompare
For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
If Not d1.exists(BD_GLOBAL(i, 1)) Then d1(BD_GLOBAL(i, 1)) = ""
If Not d2.exists(BD_GLOBAL(i, 4)) Then d2(BD_GLOBAL(i, 4)) = ""
If Not d3.exists(BD_GLOBAL(i, 8)) Then d3(BD_GLOBAL(i, 8)) = ""
Next i
'--avec tri
temp = d1.keys
Call Tri(temp, LBound(temp), UBound(temp))
Me.ComboBox1.List = temp
temp = d2.keys
Call Tri(temp, LBound(temp), UBound(temp))
Me.ComboBox2.List = temp
temp = d3.keys
Call Tri(temp, LBound(temp), UBound(temp))
Me.ComboBox3.List = temp
Me.ListBox1.Clear
Me.ComboBox1.ListIndex = -1
Me.ComboBox2.ListIndex = -1
Me.Enreg = f.[A65000].End(xlUp).Row + 1
End Sub
Private Sub ComboBox1_click()
Me.ListBox1.Clear
For k = 1 To Ncol: Me("textBox" & k) = "": Next k
j = 0
n = Application.CountIf(Application.Index(Rng, , 1), Me.ComboBox1)
Dim b()
ReDim b(1 To n, 1 To Ncol + 1)
For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
If Me.ComboBox1 = BD_GLOBAL(i, 1) Then
j = j + 1
For k = 1 To Ncol
b(j, k) = BD_GLOBAL(i, k)
If k >= 3 And k <= 5 Then b(j, k) = Format(BD_GLOBAL(i, k), "00 00 00 00 00")
Next k
b(j, k) = i
End If
Next i
ListBox1.List = b
ListBox1.ListIndex = 0
End Sub
Private Sub ComboBox2_click()
Me.ListBox1.Clear
For k = 1 To Ncol: Me("textBox" & k) = "": Next k
j = 0
n = Application.CountIf(Application.Index(Rng, , 4), Me.ComboBox2)
Dim b()
ReDim b(1 To n, 1 To Ncol + 1)
For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
If Me.ComboBox2 = BD_GLOBAL(i, 4) Then
j = j + 1
For k = 1 To Ncol
b(j, k) = BD_GLOBAL(i, k)
If k >= 3 And k <= 5 Then b(j, k) = Format(BD_GLOBAL(i, k), "00 00 00 00 00")
Next k
b(j, k) = i
End If
Next i
ListBox1.List = b
ListBox1.ListIndex = 0
End Sub
Private Sub ComboBox3_click()
Me.ListBox1.Clear
For k = 1 To Ncol: Me("textBox" & k) = "": Next k
j = 0
n = Application.CountIf(Application.Index(Rng, , 8), Me.ComboBox3)
Dim b()
ReDim b(1 To n, 1 To Ncol + 1)
For i = LBound(BD_GLOBAL) To UBound(BD_GLOBAL)
If Me.ComboBox3 = BD_GLOBAL(i, 8) Then
j = j + 1
For k = 1 To Ncol
b(j, k) = BD_GLOBAL(i, k)
If k >= 3 And k <= 5 Then b(j, k) = Format(BD_GLOBAL(i, k), "00 00 00 00 00")
Next k
b(j, k) = i
End If
Next i
ListBox1.List = b
ListBox1.ListIndex = 0
End Sub
Private Sub ListBox1_Click()
For k = 1 To Ncol
Me("textBox" & k) = Me.ListBox1.Column(k - 1)
Next k
Me.Enreg = Me.ListBox1.Column(Ncol) + Rng.Row - 1
End Sub
Private Sub b_modif_Click()
If Me.Enreg <> "" And Me.TextBox1 <> "" Then
NoEnreg = Me.Enreg
For k = 1 To Ncol
x = Replace(Me("textBox" & k), " ", "")
If IsNumeric(x) Then
f.Cells(NoEnreg, k) = Val(x)
Else
f.Cells(NoEnreg, k) = Me("textBox" & k)
End If
Next k
raz
Me.Enreg = ""
UserForm_Initialize
End If
End Sub
Private Sub b_ajout_Click()
raz
Me.Enreg = f.[A65000].End(xlUp).Row + 1
End Sub
Sub raz()
For k = 1 To Ncol
Me("textBox" & k) = ""
Next k
Me.TextBox1.SetFocus
Me.CheckBox1.SetFocus
End Sub
Sub Tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi)
If gauc < d Then Call Tri(a, gauc, d)
End Sub |
Partager