AW: VBA:UserForm, Zeile Suchen u. Ergänzen
22.03.2019 12:04:24
charly84
Hallo Matthias, danke für deine Schnelle Antwort.
Ich habe das mal Versucht Umzusetzen, hier mal neu.
Allerdings gibt es eine Fehlermeldung zurück.
Fehler beim Kompilieren:
Unzulässiger oder nicht ausreichend definierter Verweis
Gruß Charly
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Tabelle1")
Dim n As Long
Dim loLetzte As Long
Dim strSuch As String
>>> Hier im Set Bereich wird der After:=.Range("B2") markiert
Set raFund = .Columns("B:B").Find(What:=strSuch, After:=.Range("B2"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
n = sh.Range("B" & Application.Rows.Count).End(xlUp).Row
With Worksheets("Tabelle1")
strSuch = Me.CB_ID2_Ers
If Not raFund Is Nothing Then
' Me.CB_WB_Ers.Value = raFund.Offset(, 3)
' Me.CB_Zi_Ers.Value = raFund.Offset(, 4)
' Me.CB_Kasse_Ers.Value = raFund.Offset(, 7)
' Me.CB_Privat_Ers.Value = raFund.Offset(, 8)
' Me.CB_Ärzt_Ers.Value = raFund.Offset(, 9)
Me.CB_Herst_Ers.Value = raFund.Offset(, 12)
Me.CB_Model_Ers.Value = raFund.Offset(, 13)
Me.CB_Liefer_Ers.Value = raFund.Offset(, 14)
Me.CB_CE_Ers.Value = raFund.Offset(, 19)
Me.TB_SN_Ers.Value = raFund.Offset(, 16)
Me.TB_Stre_Ers.Value = raFund.Offset(, 15)
Me.TB_Reg_Ers.Value = raFund.Offset(, 17)
Me.TB_Reh_Ers.Value = raFund.Offset(, 18)
' Me.TB_Bauja_Ers.Text = raFund.Offset(, 20)
' Me.TB_1Jahr_Ers.Text = raFund.Offset(, 22)
' Me.TB_2Jahr_Ers.Text = raFund.Offset(, 23)
' Me.TB_3Jahr_Ers.Text = raFund.Offset(, 24)
' Me.TB_4Jahr_Ers.Text = raFund.Offset(, 25)
' Me.TB_5Jahr_Ers.Text = raFund.Offset(, 26)
Else
Me.CB_ID2_Ers = ""
MsgBox "ID " & strSuch & " nicht vorhanden."
Me.CB_ID2_Ers.SetFocus
Exit Sub
End If
End With
sh.Unprotect "1234"
' Dieser Abschnitt gehöhrt zu Fram > Angaben HM
sh.Range("L" & n + 1).Value = Me.CB_Herst_Ers.Value ' Hersteller
sh.Range("M" & n + 1).Value = Me.CB_Model_Ers.Value ' Model
sh.Range("N" & n + 1).Value = Me.CB_Liefer_Ers.Value ' Lieferrant
sh.Range("S" & n + 1).Value = Me.CB_CE_Ers.Value ' CE
sh.Range("O" & n + 1).Value = Me.TB_Stre_Ers.Value ' Stehlow Inv.
sh.Range("P" & n + 1).Value = Me.TB_SN_Ers.Value ' SN
sh.Range("Q" & n + 1).Value = Me.TB_Reg_Ers.Value ' Reg.-Nr.
sh.Range("R" & n + 1).Value = Me.TB_Reh_Ers.Value ' Reha-Nr.
If IsDate(TB_Bauja_Ers.Text) Then sh.Range("T" & n + 1).Value = Format(TB_Bauja_Ers.Text, " _
mmm.yy") ' Baujahr
If IsDate(TB_1Jahr_Ers.Text) Then sh.Range("V" & n + 1).Value = Format(TB_1Jahr_Ers.Text, " _
mmm.yy") ' 1.Jahr
If IsDate(TB_2Jahr_Ers.Text) Then sh.Range("W" & n + 1).Value = Format(TB_2Jahr_Ers.Text, " _
mmm.yy") ' 2.Jahr
If IsDate(TB_3Jahr_Ers.Text) Then sh.Range("X" & n + 1).Value = Format(TB_3Jahr_Ers.Text, " _
mmm.yy") ' 3.Jahr
If IsDate(TB_4Jahr_Ers.Text) Then sh.Range("Y" & n + 1).Value = Format(TB_4Jahr_Ers.Text, " _
mmm.yy") ' 4.Jahr
If IsDate(TB_5Jahr_Ers.Text) Then sh.Range("Z" & n + 1).Value = Format(TB_5Jahr_Ers.Text, " _
mmm.yy") ' 5.Jahr
sh.Protect "1234"
Hier der alte Code:
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Tabelle1")
Dim n As Long
Dim loLetzte As Long
Dim strSuch As String
n = sh.Range("B" & Application.Rows.Count).End(xlUp).Row
sh.Unprotect "1234"
' Dieser Abschnitt gehöhrt zu Fram > Angaben HM
sh.Range("L" & n + 1).Value = Me.CB_Herst_Ers.Value ' Hersteller
sh.Range("M" & n + 1).Value = Me.CB_Model_Ers.Value ' Model
sh.Range("N" & n + 1).Value = Me.CB_Liefer_Ers.Value ' Lieferrant
sh.Range("S" & n + 1).Value = Me.CB_CE_Ers.Value ' CE
sh.Range("O" & n + 1).Value = Me.TB_Stre_Ers.Value ' Stehlow Inv.
sh.Range("P" & n + 1).Value = Me.TB_SN_Ers.Value ' SN
sh.Range("Q" & n + 1).Value = Me.TB_Reg_Ers.Value ' Reg.-Nr.
sh.Range("R" & n + 1).Value = Me.TB_Reh_Ers.Value ' Reha-Nr.
If IsDate(TB_Bauja_Ers.Text) Then sh.Range("T" & n + 1).Value = Format(TB_Bauja_Ers.Text, " _
mmm.yy") ' Baujahr
If IsDate(TB_1Jahr_Ers.Text) Then sh.Range("V" & n + 1).Value = Format(TB_1Jahr_Ers.Text, " _
mmm.yy") ' 1.Jahr
If IsDate(TB_2Jahr_Ers.Text) Then sh.Range("W" & n + 1).Value = Format(TB_2Jahr_Ers.Text, " _
mmm.yy") ' 2.Jahr
If IsDate(TB_3Jahr_Ers.Text) Then sh.Range("X" & n + 1).Value = Format(TB_3Jahr_Ers.Text, " _
mmm.yy") ' 3.Jahr
If IsDate(TB_4Jahr_Ers.Text) Then sh.Range("Y" & n + 1).Value = Format(TB_4Jahr_Ers.Text, " _
mmm.yy") ' 4.Jahr
If IsDate(TB_5Jahr_Ers.Text) Then sh.Range("Z" & n + 1).Value = Format(TB_5Jahr_Ers.Text, " _
mmm.yy") ' 5.Jahr
sh.Protect "1234"
Set raFund = .Columns("B:B").Find(What:=strSuch, After:=.Range("B2"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
With Worksheets("Tabelle1")
strSuch = Me.CB_ID2_Ers
If Not raFund Is Nothing Then
' Me.CB_WB_Ers.Value = raFund.Offset(, 3)
' Me.CB_Zi_Ers.Value = raFund.Offset(, 4)
' Me.CB_Kasse_Ers.Value = raFund.Offset(, 7)
' Me.CB_Privat_Ers.Value = raFund.Offset(, 8)
' Me.CB_Ärzt_Ers.Value = raFund.Offset(, 9)
Me.CB_Herst_Ers.Value = raFund.Offset(, 12)
Me.CB_Model_Ers.Value = raFund.Offset(, 13)
Me.CB_Liefer_Ers.Value = raFund.Offset(, 14)
Me.CB_CE_Ers.Value = raFund.Offset(, 19)
Me.TB_SN_Ers.Value = raFund.Offset(, 16)
Me.TB_Stre_Ers.Value = raFund.Offset(, 15)
Me.TB_Reg_Ers.Value = raFund.Offset(, 17)
Me.TB_Reh_Ers.Value = raFund.Offset(, 18)
' Me.TB_Bauja_Ers.Text = raFund.Offset(, 20)
' Me.TB_1Jahr_Ers.Text = raFund.Offset(, 22)
' Me.TB_2Jahr_Ers.Text = raFund.Offset(, 23)
' Me.TB_3Jahr_Ers.Text = raFund.Offset(, 24)
' Me.TB_4Jahr_Ers.Text = raFund.Offset(, 25)
' Me.TB_5Jahr_Ers.Text = raFund.Offset(, 26)
Else
Me.CB_ID2_Ers = ""
MsgBox "ID " & strSuch & " nicht vorhanden."
Me.CB_ID2_Ers.SetFocus
Exit Sub
End If
End With