23.02.2019, 23:54
Hallo,
habe mal eine Excel angehangen in der ich eine Userform Suchen eingebaut habe.
Momentan ist es so das die Suche anhand der vergebenen ID(Auswahl Frame) die Einträge in die TextBoxen, aus der mit der ID übereinstimmenden Zeile die füllt.
Wie bekomme ich es hin das ich nach mehreren Kriterien die TextBoxen mit den dazu gehörigen Zeile füllen kann.
Vielleicht kann mir ja jemand helfen.
Gruß Arnold
habe mal eine Excel angehangen in der ich eine Userform Suchen eingebaut habe.
Momentan ist es so das die Suche anhand der vergebenen ID(Auswahl Frame) die Einträge in die TextBoxen, aus der mit der ID übereinstimmenden Zeile die füllt.
Wie bekomme ich es hin das ich nach mehreren Kriterien die TextBoxen mit den dazu gehörigen Zeile füllen kann.
Code:
Option Explicit
Private Sub cboAuswahl_DropButtonClick()
Dim Listindex As String
On Error Resume Next
If cboAuswahl.Listindex <> 0 Then
TboID = Cells(cboAuswahl.Listindex + 1, 1)
TboDatum = Cells(cboAuswahl.Listindex + 1, 2)
TboSchicht = Cells(cboAuswahl.Listindex + 1, 3)
TboEingetragenvon = Cells(cboAuswahl.Listindex + 1, 4)
TboBereich = Cells(cboAuswahl.Listindex + 1, 5)
TboMaschine = Cells(cboAuswahl.Listindex + 1, 6)
TboProblem = Cells(cboAuswahl.Listindex + 1, 7)
TboStandby = Cells(cboAuswahl.Listindex + 1, 8)
TboLösung = Cells(cboAuswahl.Listindex + 1, 9)
TboVerantwortlich = Cells(cboAuswahl.Listindex + 1, 10)
TboErledigtam = Cells(cboAuswahl.Listindex + 1, 11)
TboNotizen = Cells(cboAuswahl.Listindex + 1, 12)
Else
TboID = ""
TboDatum = ""
TboSchicht = ""
TboEingetragenvon = ""
TboBereich = ""
TboMaschine = ""
TboProblem = ""
TboStandby = ""
TboLösung = ""
TboVerantwortlich = ""
TboErledigtam = ""
TboNotizen = ""
End If
End Sub
Private Sub Bildspeicher_Click()
Dim sPath As String
sPath = ActiveWorkbook.Path & "\" & TboID
If TboID.Text > "" Then
Shell "Explorer.exe " & sPath, vbNormalFocus
' Dir(sPath & "\" & TboID.Text, vbDirectory) > "" Then
Else
MsgBox "ID für Bildordner fehlt"
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Nicht schließen über den (x) Button, Abbrechen benutzen"
Cancel = True
End If
End Sub
Private Sub InitializeCboVerantwortlich()
Dim i As Long
Me.cboVerantwortlich.Clear
With Sheets("Stammdaten")
For i = 3 To Cells(Rows.Count, 7).End(xlUp).Row
If Not .Cells(i, 7) = Empty Then Me.cboVerantwortlich.AddItem .Cells(i, 7)
Next
End With
End Sub
Private Sub cmdÜbernehmen_Click()
Dim XZeile As Long
If TboID = "" Then Exit Sub
If TboID.Listindex = 0 Then
XZeile = [A10000].End(xlUp).Row + 1
Else
XZeile = TboID.Listindex + 1
End If
On Error Resume Next
Cells(XZeile, 1) = TboID
Cells(XZeile, 2) = TboDatum
Cells(XZeile, 3) = TboSchicht
Cells(XZeile, 4) = TboEingetragenvon
Cells(XZeile, 5) = TboBereich
Cells(XZeile, 6) = TboMaschine
Cells(XZeile, 7) = TboProblem
Cells(XZeile, 8) = cboInArbeit
Cells(XZeile, 9) = TboLösung
Cells(XZeile, 10) = TboVerantwortlich
Cells(XZeile, 11) = TboErledigtam
Cells(XZeile, 12) = TboNotizen
TboID = ""
TboDatum = ""
TboSchicht = ""
TboEingetragenvon = ""
TboBereich = ""
TboMaschine = ""
TboProblem = ""
TboStandby = ""
TboLösung = ""
TboVerantwortlich = ""
TboErledigtam = ""
TboNotizen = ""
Userform_Initialize
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Private Sub Userform_Initialize()
lblID = ActiveSheet.[A3].Value
lblDatum = ActiveSheet.[B3].Value
LblSchicht = ActiveSheet.[C3].Value
LblEingetragenvon = ActiveSheet.[D3].Value
Lblbereich = ActiveSheet.[E3].Value
lblMaschine = ActiveSheet.[F3].Value
LblProblem = ActiveSheet.[g3].Value
'LblStandby = ActiveSheet.[h3].Value
lblLösung = ActiveSheet.[i3].Value
lblVerantwortlich = ActiveSheet.[j3].Value
LblErledigtam = ActiveSheet.[k3].Value
LblNotizen = ActiveSheet.[l3].Value
Dim aRow, i As Long
Application.EnableEvents = False
cboAuswahl.Clear
aRow = [A10000].End(xlUp).Row
cboAuswahl.AddItem ""
For i = 2 To aRow
cboAuswahl.AddItem Cells(i, 1)
Next i
cboAuswahl.Listindex = 0
Application.EnableEvents = True
End Sub
Gruß Arnold