Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchen und kopieren basierend auf einem Zellwert in Spalte (VBA)
#1
Hallo liebe Leute,

ich wende mich mit einer für mich sehr kniffligen Geschichte und hoffe das mir jemand hier helfen kann! 

Ich habe eine Datei mit 2 Reitern. "Eingabemaske" und "Daten"

Im Reiter "Eingabemaske" gibt es ein Feld (K3) wo eine ID eingetragen wird. In den Zellen K5, K7, K9, K11, K13 werden Noten von 1-5 eingetragen.

Im Reiter "Daten" stehen in der Spalte A die IDs. Die Noten zur jeweiligen ID stehen in Spalten S - W. Da kommt es halt drauf an, in welcher Zeile die jeweilige ID ist. 

Und hier liegt mein Problem. Ich bekomme zwar hin Werte mit VBA rüber zu kopieren, aber nicht, dass die Daten in die Zeile der jeweiligen ID überspielt werden.

Falls dies zu Konfus war, bitte Bescheid geben :D. Jedenfalls bin ich für eine Antwort und erst für Hilfe sehr dankbar!

lg und DANKE Wolfgang

P.s. und zur Info Hier der Code den ich für ein normales kopieren ohne Abgleich genommen hätte.
Sub EingabeMitarbeiter()
Dim BW1 As String, BW2 As String, BW3 As String, BW4 As String, BW5 As String
BW1 = Range("K5")
BW2 = Range("K7")
BW3 = Range("K9")
BW4 = Range("K11")
BW5 = Range("K13")
Worksheets("Daten").Select
Worksheets("Daten").Range("S1").Select
If Worksheets("Daten").Range("S1").Offset(1, 0) <> "" Then
Worksheets("Daten").Range("S1").End(xlDown).Select
End If
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = BW1
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = BW2
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = BW3
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = BW4
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = BW5
End Sub
Antworten Top
#2
Hallo Wolfgang,

teste mall das (neue ID´s werden unten angefügt):

Code:
Sub EingabeMitarbeiter()
  Dim strBW1 As String, strBW2 As String, strBW3 As String, strBW4 As String, strBW5 As String
  Dim varID As Variant
  Dim varZeile As Variant
  With Worksheets("Eingabemaske")
    varID = .Range("K3").Value
    If varID = "" Then Exit Sub
    strBW1 = .Range("K5").Value
    strBW2 = .Range("K7").Value
    strBW3 = .Range("K9").Value
    strBW4 = .Range("K11").Value
    strBW5 = .Range("K13").Value
  End With
  With Worksheets("Daten")
    varZeile = Application.Match(varID, .Columns(1), 0)
    If Not IsNumeric(varZeile) Then
      varZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
      .Cells(varZeile, 1).Value = varID
    End If
    .Cells(varZeile, 19).Value = strBW1
    .Cells(varZeile, 20).Value = strBW2
    .Cells(varZeile, 21).Value = strBW3
    .Cells(varZeile, 22).Value = strBW4
    .Cells(varZeile, 23).Value = strBW5
  End With
End Sub

Gruß Uwe
Antworten Top
#3
Guten Morgen Uwe,

das ist genau dass was ich gesucht habe! Vielen Dank für deine rasche Hilfe!

lg
Wolfgang
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste