Clever-Excel-Forum

Normale Version: Werte werden falsch übernommen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich habe folgende Problem und stehe ein bißchen auf der Leiter. Ich hätte gerne folgendes
Ich befinde mich aktuell im Tabellenblatt "Auszahlungen" und will, dass wenn ich in der 7. Spalte den Werte ändere, dass dieser Wert dann in das Tabellenblatt "Top30-Teil 1" in die Spalte R (18) im Bezug auf den Namen von der Spalte A vom Tabellenblatt "Auszahlungen" übernommen wird. Er trägt mir auch in der richtigen Zeile im Tabellenblatt "Top30-Teil 1" einen Wert ein, aber leider stimmt dieser nicht. Er nimmt mir leider den Wert aus dem Tabellenblatt "Top30-Teil1" und nicht vom Tabellenblatt "Auszahlungen".

Ich hoffe, dass mir jemand helfen kann.
Anbei mein Code:

Code:
If Target.Column = 7 Then 'in Spalte G

           With ThisWorkbook.Worksheets("Auszahlungen")
               strFind = ActiveSheet.Cells(Target.Row, 1).Value
           End With
           
           With ThisWorkbook.Worksheets("Top30 - Teil 1")
               Set rngFind20 = ThisWorkbook.Worksheets("Top30 - Teil 1").Columns(17).Find(what:=strFind, lookat:=xlPart) 'suche Wert aus Spalte A in Top30 - Teil 1 in Spalte Q
               If Not rngFind20 Is Nothing Then
                   DatumletzteAktualisierung = .Cells(rngFind20.Row, 7)
                           
                               
                   .Cells(rngFind20.Row + 0, 18).FormulaR1C1 = DatumletzteAktualisierung
               End If
           End With
           
End If


LG
Thomas
Hallo,

anstatt

Code:
Set rngFind20 = ThisWorkbook.Worksheets("Top30 - Teil 1").Columns(17).Find(what:=strFind, lookat:=xlPart) 'suche Wert aus Spalte A in Top30 - Teil 1 in Spalte Q

muss es so laut der Erklärung

Code:
Set rngFind20 = ThisWorkbook.Worksheets("Anweisungen").Columns(17).Find(what:=strFind, lookat:=xlPart) 'suche Wert aus Spalte A in Top30 - Teil 1 in Spalte Q

lauten.
Hallo!

Nein, funktioniert leider nicht. Da tut er überhaupt nichts. Übrigens, ich hab mich verschrieben, ich meine statt "Anweisungen" -> "Auszahlungen"
Er soll mir von Auszahlungen (Spalte 7) im Bezug auf die Spalte A von Auszahlungen nach Top30 in die Spalte 18 diesen Wert hineinschreiben, aber in der richtigen Zeile im Bezug auf Auszahlungen von der Spalte A.

Ich würde sagen, dass bei dieser Codestelle der "Hund" begraben ist:

Code:
DatumletzteAktualisierung = .Cells(rngFind20.Row, 7)
und laut meinem Code bezieht er sich da hier auf Top30 - Teil 1 und eigentlich sollte er sich hier auf Auszahlungen beziehen
Hallo,

zeige mal eine Beispieldatei.
Ich schaffs leider nicht, die Datei ist leider zu groß. Ich habe eh schon einiges unnötiges gelöscht, bin aber noch immer über 3 MB.

Hab nun eine extra Datei angelegt, ich hoffe, ihr kennt euch nun aus.

Hier nun die richtige Datei mit meinem aktuellen Code.
Hallo,

Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn etwas geändert wird
   Dim strFind As String
   Dim rngFind20 As Range
  
   If Target.Column = 7 Then 'in Spalte G
      With ThisWorkbook.Worksheets("Auszahlungen")
         strFind = .Cells(Target.Row, 1).Value
      End With
      
      With ThisWorkbook.Worksheets("Top30 - Teil 1")
         Set rngFind20 = ThisWorkbook.Worksheets("Top30 - Teil 1").Columns(17).Find(what:=strFind, lookat:=xlPart) 'suche Wert aus Spalte A in Top30 - Teil 1 in Spalte Q
         If Not rngFind20 Is Nothing Then
'            DatumletzteAktualisierung = Worksheets("Auszahlungen").Cells(Target.Row, 7)
'            .Cells(rngFind20.Row + 0, 18).FormulaR1C1 = DatumletzteAktualisierung
            .Cells(rngFind20.Row + 0, 18).Value = Worksheets("Auszahlungen").Cells(Target.Row, 7)
         End If
      End With
   End If

End Sub
Hallo!

Danke sehr, funktioniert. Du hast mir sehr geholfen.

LG
Thomas