السلام عليكم
غير ارقام الاعمدة حسب ما تريد
Private Sub ComboBox1_Change()
Dim ws As Worksheet
Dim NdAry()
Dim i As Long, ii As Long
ListBox1.Clear
ListBox2.Clear
Set ws = Worksheets("bd")
For i = 2 To ws.Range("a65536").End(xlUp).Row
If ws.Cells(i, 1) = Val(ComboBox1) Then
ii = ii + 1
With ws
ReDim Preserve NdAry(1 To 13, 1 To ii)
NdAry(1, ii) = .Cells(i, 31).Value
NdAry(2, ii) = .Cells(i, 2).Value
NdAry(3, ii) = .Cells(i, 4).Value
NdAry(4, ii) = .Cells(i, 5).Value
NdAry(5, ii) = .Cells(i, 7).Value
NdAry(6, ii) = .Cells(i, 8).Value
NdAry(7, ii) = .Cells(i, 9).Value
NdAry(8, ii) = .Cells(i, 17).Value
NdAry(9, ii) = .Cells(i, 19).Value
NdAry(10, ii) = .Cells(i, 21).Value
NdAry(11, ii) = .Cells(i, 22).Value
NdAry(12, ii) = .Cells(i, 24).Value
NdAry(13, ii) = .Cells(i, 25).Value
End With
End If
Next
Me.ListBox1.Column = NdAry
'=========================================
ii = 0
Erase NdAry
Set ws = Worksheets("bd2")
'==================================
For i = 2 To ws.Range("a65536").End(xlUp).Row
If ws.Cells(i, 1) = Val(ComboBox1) Then
ii = ii + 1
With ws
ReDim Preserve NdAry(1 To 13, 1 To ii)
NdAry(1, ii) = .Cells(i, 31).Value
NdAry(2, ii) = .Cells(i, 2).Value
NdAry(3, ii) = .Cells(i, 4).Value
NdAry(4, ii) = .Cells(i, 5).Value
NdAry(5, ii) = .Cells(i, 7).Value
NdAry(6, ii) = .Cells(i, 8).Value
NdAry(7, ii) = .Cells(i, 9).Value
NdAry(8, ii) = .Cells(i, 17).Value
NdAry(9, ii) = .Cells(i, 19).Value
NdAry(10, ii) = .Cells(i, 21).Value
NdAry(11, ii) = .Cells(i, 22).Value
NdAry(12, ii) = .Cells(i, 24).Value
NdAry(13, ii) = .Cells(i, 25).Value
End With
End If
Next
Me.ListBox2.Column = NdAry
'=========================================
Erase NdAry
Set ws = Nothing
End Sub
تحياتي