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.

Werte werden falsch übernommen
#1
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
Excel Version 2016
Antworten Top
#2
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.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
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
Excel Version 2016
Antworten Top
#4
Hallo,

zeige mal eine Beispieldatei.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
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.


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 16,43 KB / Downloads: 4)
Excel Version 2016
Antworten Top
#6
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
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#7
Hallo!

Danke sehr, funktioniert. Du hast mir sehr geholfen.

LG
Thomas
Excel Version 2016
Antworten Top


Gehe zu:


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