Thema Datum  Von Nutzer Rating
Antwort
Rot Zeile anhand ID lokalisieren
05.02.2024 15:20:05 Jamie99
NotSolved
06.02.2024 07:41:44 ralf_b
*****
Solved

Ansicht des Beitrags:
Von:
Jamie99
Datum:
05.02.2024 15:20:05
Views:
370
Rating: Antwort:
  Ja
Thema:
Zeile anhand ID lokalisieren
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 (Code in blau) aber jetzt komme ich nicht weiter bei dem Wiederfinden einer Zeile anhand dieser ID (Code in rot).

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.(Code in rot)
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


'Tabelle einlesen

Dim tbl As ListObject
 Set tbl = Worksheets(ws_UIDPCR).ListObjects(1)

With Worksheets(ws_Eingabe)
    'Zeile leeren
    
    .Rows("12").ClearContents
    .Rows("15").ClearContents
    .Rows("18").ClearContents
    
    'Alle Werte eintragen
    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
    
    
    'Tabellenblatt navigieren
    .Shapes.Range(Array("img_Anlegen", "txt_Anlegen")).Visible = False
    .Shapes.Range(Array("img_Bearbeiten", "txt_Bearbeiten")).Visible = True
    
    Call Sheetswitch(ws_Eingabe)
    'Zelle auswählen
    .Range("D15").Select
    
End With

End Sub


Sub EinträgeAnlegen_UIDPCREingabe()

'Tabelle einlesen

Dim tbl As ListObject
Set tbl = Worksheets(ws_UIDPCR).ListObjects(1)

With Worksheets(ws_Eingabe)

    'Zeile leeren
    
    .Rows("12").ClearContents
    .Rows("15").ClearContents
    .Rows("18").ClearContents
    
    'ID eintragen
    .Range("F12").Value = "UPR" & Val(Mid(tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 1).Value, 4)) + 1

    'Tabellenblatt navigieren
    .Shapes.Range(Array("img_Anlegen", "txt_Anlegen")).Visible = True
    .Shapes.Range(Array("img_Bearbeiten", "txt_Bearbeiten")).Visible = False
    Call Sheetswitch(ws_Eingabe)
    
    'Zelle auswählen
    .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)
    
        ' Tabelle einlesen
        Set tbl = .ListObjects(1)
        
        'Neuer Eintrag?
        
            If Worksheets(ws_Eingabe).Shapes("img_Anlegen").Visible = True Then
    
            ' Neue Zeile hinzufügen
            Set newRow = tbl.ListRows.Add(AlwaysInsert:=True)
            
            'Zeile definieren
            Zeile = tbl.DataBodyRange.Rows.Count
            
            ' Durch jede Zelle in der neuen Zeile iterieren
            For Each cell In newRow.Range
                ' Textumbruch aktivieren
                cell.WrapText = True
                ' Zeilenhöhe automatisch anpassen
                cell.Rows.AutoFit
            Next cell
            
        'Eintrag bearbeiten?
          Else
          
    Zeile = Worksheets(ws_Eingabe).Range(Worksheets(ws_Eingabe).Cells.Find(What:="ID", LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Address).Value
              
End If
        
    
End With
    
With Worksheets(ws_Eingabe)

    'Schleife über alle Tabellenheader
    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

'Tabellenblatt UIDPCR auswählen und in Zeile springe

Call Nav_UIDPCR
tbl.DataBodyRange(Zeile, 1).Select
ActiveWindow.ScrollRow = Zeile + tbl.HeaderRowRange.row
    
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zeile anhand ID lokalisieren
05.02.2024 15:20:05 Jamie99
NotSolved
06.02.2024 07:41:44 ralf_b
*****
Solved