Ich bin noch Anfänger deswegen bitte gnädig sein.
Und zwar habe ich es zwar schon hinbekommen, dass meine ID UPR1 fortlaufen nummeriert wird (<span style=
"color:#2980b9"
>Code in blau</span>) aber jetzt komme ich nicht weiter bei dem Wiederfinden einer Zeile anhand dieser ID (<span style=
"color:#c0392b"
>Code in rot</span>).
In
dem Tutorial und auch bei funktioniert es so, dass ich auf eine Zelle in meiner Datenbank klicke,dann ein Makro ausführe, alle Spalten in eine Eingabemaske gelangen. Habe ich als ID eine Nummer z.B 1, dann kann ich die Daten in der Eingabemaske verändern, durch ein Makro speichern und am Ende ist der Eintrag in der Datenbank verändert aber an der gleichen Position.(<span style=
"color:#c0392b"
>Code in rot</span>)
Jetzt kommt aber der Haken, dass ich nicht nur eine Nummer als ID verwenden möchte, sondern wie bei mir UPR1, UPR2 usw. als ID benutze.
Könnt ihr mir vielleicht weiterhelfen und den Code entsprechend anpassen.
Vielen Dank im Voraus
Jamie
Sub
EinträgeBearbeiten_UIDPCREingabe()
Dim
header
As
Variant
Dim
Spalte
As
Long
Spalte = 1
Dim
tbl
As
ListObject
Set
tbl = Worksheets(ws_UIDPCR).ListObjects(1)
With
Worksheets(ws_Eingabe)
.Rows(
"12"
).ClearContents
.Rows(
"15"
).ClearContents
.Rows(
"18"
).ClearContents
For
Each
header
In
tbl.HeaderRowRange
.Range(.Cells.Find(What:=header, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Address).Value = _
tbl.DataBodyRange(ActiveCell.row - tbl.HeaderRowRange.row, Spalte).Value
Spalte = Spalte + 1
Next
header
.Shapes.Range(Array(
"img_Anlegen"
,
"txt_Anlegen"
)).Visible =
False
.Shapes.Range(Array(
"img_Bearbeiten"
,
"txt_Bearbeiten"
)).Visible =
True
Call
Sheetswitch(ws_Eingabe)
.Range(
"D15"
).
Select
End
With
End
Sub
Sub
EinträgeAnlegen_UIDPCREingabe()
Dim
tbl
As
ListObject
Set
tbl = Worksheets(ws_UIDPCR).ListObjects(1)
With
Worksheets(ws_Eingabe)
.Rows(
"12"
).ClearContents
.Rows(
"15"
).ClearContents
.Rows(
"18"
).ClearContents
<span style=
"color:#2980b9"
> .Range(
"F12"
).Value =
"UPR"
& Val(Mid(tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 1).Value, 4)) + 1</span>
.Shapes.Range(Array(
"img_Anlegen"
,
"txt_Anlegen"
)).Visible =
True
.Shapes.Range(Array(
"img_Bearbeiten"
,
"txt_Bearbeiten"
)).Visible =
False
Call
Sheetswitch(ws_Eingabe)
.Range(
"D15"
).
Select
End
With
End
Sub
Sub
EinträgeAnlegen_EingabeUIDPCR()
Dim
tbl
As
ListObject
Dim
header
As
Variant
Dim
newRow
As
ListRow
Dim
cell
As
Range
Dim
Spalte
As
Long
Dim
Zeile
As
Long
With
Worksheets(ws_UIDPCR)
Set
tbl = .ListObjects(1)
If
Worksheets(ws_Eingabe).Shapes(
"img_Anlegen"
).Visible =
True
Then
Set
newRow = tbl.ListRows.Add(AlwaysInsert:=
True
)
Zeile = tbl.DataBodyRange.Rows.Count
For
Each
cell
In
newRow.Range
cell.WrapText =
True
cell.Rows.AutoFit
Next
cell
Else
<span style=
"color:#c0392b"
>Zeile = Worksheets(ws_Eingabe).Range(Worksheets(ws_Eingabe).Cells.Find(What:=
"ID"
, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Address).Value</span>
End
If
End
With
With
Worksheets(ws_Eingabe)
For
Each
header
In
tbl.HeaderRowRange
tbl.DataBodyRange(Zeile, Spalte).Value = _
.Range(.Cells.Find(What:=header, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Address).Value
Spalte = Spalte + 1
Next
header
End
With
Call
Nav_UIDPCR
tbl.DataBodyRange(Zeile, 1).
Select
ActiveWindow.ScrollRow = Zeile + tbl.HeaderRowRange.row
End
Sub