stefaandeblock
Gebruiker
- Lid geworden
- 24 aug 2010
- Berichten
- 14
Ik heb in excel met een lijst artikels, omschrijving,....
In excel zelf heb ik hier een form voor gemaakt zodat ik op een categorie kan zoeken.
Nu zou ik in vba een zelfde form willen maken zodat ik in die excel kan zoeken zonder dat ik actief in die excel moet zijn..
Heb echter geen idee hoe ik eraan moet beginnen...
In bijgevoegde excel staat de form die ik gemaakt heb..
Zou er iemand mij op weg kunnen helpen??
Private Const Sheetnaam As String = "Blad1"
Private Const Startrij As Long = 4
Private Const categoriekolom As String = "c"
Private Const ArtikelNummerKolom As String = "B"
Private Sub artikelnr_Click()
End Sub
Private Sub ComboBox1_Change()
Dim ListEndRow As Integer, regel As Integer
Dim FoundCell As Object, firstaddress As String
ListEndRow = 0
With ListBox1
.Clear
.ColumnCount = 10
.ColumnWidths = "50;50;50;150;75;75;75;50;50;50"
End With
Me.ComboBox1.Value = CStr(Me.ComboBox1.Value)
With Sheets("Blad1").Range("c2:c" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row)
Set FoundCell = .Find(Me.ComboBox1.Value, , xlValues, xlPart)
If FoundCell Is Nothing Then
ListBox1.AddItem
ListBox1.List(ListEndRow, 0) = ""
Else
firstaddress = FoundCell.Address
Do
ListBox1.AddItem
ListBox1.List(ListEndRow, 0) = Sheets("Blad1").Cells(FoundCell.Row, 2).Value
ListBox1.List(ListEndRow, 1) = Sheets("Blad1").Cells(FoundCell.Row, 3).Value
ListBox1.List(ListEndRow, 2) = Sheets("Blad1").Cells(FoundCell.Row, 4).Value
ListBox1.List(ListEndRow, 3) = Sheets("Blad1").Cells(FoundCell.Row, 5).Value
ListBox1.List(ListEndRow, 4) = Sheets("Blad1").Cells(FoundCell.Row, 6).Value
ListBox1.List(ListEndRow, 5) = Sheets("Blad1").Cells(FoundCell.Row, 7).Value
ListBox1.List(ListEndRow, 6) = Sheets("Blad1").Cells(FoundCell.Row, 8).Value
ListBox1.List(ListEndRow, 7) = Sheets("Blad1").Cells(FoundCell.Row, 9).Value
ListBox1.List(ListEndRow, 8) = Sheets("Blad1").Cells(FoundCell.Row, 10).Value
ListBox1.List(ListEndRow, 9) = Sheets("Blad1").Cells(FoundCell.Row, 11).Value
ListEndRow = ListEndRow + 1
Set FoundCell = .FindNext(FoundCell)
Loop While Not FoundCell Is Nothing And FoundCell.Address <> firstaddress
End If
End With
End Sub
Private Sub Label1_Click()
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Activate()
Dim Rij As Long, LaatsteRij As Long
LaatsteRij = Sheets(Sheetnaam).Cells.SpecialCells(xlCellTypeLastCell).Row
ComboBox1.Clear
For Rij = Startrij To LaatsteRij
ComboBox1.AddItem Sheets(Sheetnaam).Cells(Rij, categoriekolom).Value
Next
ComboBox1.ListIndex = 0
End Sub
In excel zelf heb ik hier een form voor gemaakt zodat ik op een categorie kan zoeken.
Nu zou ik in vba een zelfde form willen maken zodat ik in die excel kan zoeken zonder dat ik actief in die excel moet zijn..
Heb echter geen idee hoe ik eraan moet beginnen...
In bijgevoegde excel staat de form die ik gemaakt heb..
Zou er iemand mij op weg kunnen helpen??
Private Const Sheetnaam As String = "Blad1"
Private Const Startrij As Long = 4
Private Const categoriekolom As String = "c"
Private Const ArtikelNummerKolom As String = "B"
Private Sub artikelnr_Click()
End Sub
Private Sub ComboBox1_Change()
Dim ListEndRow As Integer, regel As Integer
Dim FoundCell As Object, firstaddress As String
ListEndRow = 0
With ListBox1
.Clear
.ColumnCount = 10
.ColumnWidths = "50;50;50;150;75;75;75;50;50;50"
End With
Me.ComboBox1.Value = CStr(Me.ComboBox1.Value)
With Sheets("Blad1").Range("c2:c" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row)
Set FoundCell = .Find(Me.ComboBox1.Value, , xlValues, xlPart)
If FoundCell Is Nothing Then
ListBox1.AddItem
ListBox1.List(ListEndRow, 0) = ""
Else
firstaddress = FoundCell.Address
Do
ListBox1.AddItem
ListBox1.List(ListEndRow, 0) = Sheets("Blad1").Cells(FoundCell.Row, 2).Value
ListBox1.List(ListEndRow, 1) = Sheets("Blad1").Cells(FoundCell.Row, 3).Value
ListBox1.List(ListEndRow, 2) = Sheets("Blad1").Cells(FoundCell.Row, 4).Value
ListBox1.List(ListEndRow, 3) = Sheets("Blad1").Cells(FoundCell.Row, 5).Value
ListBox1.List(ListEndRow, 4) = Sheets("Blad1").Cells(FoundCell.Row, 6).Value
ListBox1.List(ListEndRow, 5) = Sheets("Blad1").Cells(FoundCell.Row, 7).Value
ListBox1.List(ListEndRow, 6) = Sheets("Blad1").Cells(FoundCell.Row, 8).Value
ListBox1.List(ListEndRow, 7) = Sheets("Blad1").Cells(FoundCell.Row, 9).Value
ListBox1.List(ListEndRow, 8) = Sheets("Blad1").Cells(FoundCell.Row, 10).Value
ListBox1.List(ListEndRow, 9) = Sheets("Blad1").Cells(FoundCell.Row, 11).Value
ListEndRow = ListEndRow + 1
Set FoundCell = .FindNext(FoundCell)
Loop While Not FoundCell Is Nothing And FoundCell.Address <> firstaddress
End If
End With
End Sub
Private Sub Label1_Click()
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Activate()
Dim Rij As Long, LaatsteRij As Long
LaatsteRij = Sheets(Sheetnaam).Cells.SpecialCells(xlCellTypeLastCell).Row
ComboBox1.Clear
For Rij = Startrij To LaatsteRij
ComboBox1.AddItem Sheets(Sheetnaam).Cells(Rij, categoriekolom).Value
Next
ComboBox1.ListIndex = 0
End Sub