Wert zweier Zellen vergleichen und dritte Zelle kopieren Hallo Leute Entschuldigt wenn ich mein Problem nicht so verständlich beschreibe. Ich habe eine Excel Datei in der es 2 Arbeitsblätter gibt (Tabelle1, Tabelle 2). In Tabelle 2 (Siehe unten) werden die Stückzahlen von allen schichten eingetragen. In Tabelle 1 werden die Stückzahlen, wenn das Datum übereinstimmt in die jeweiligen Zellen eingetragen was soweit mit der Formel (=(Tabelle2! C4=Tabelle1! B2:B15)*Tabelle2! I6) klappt. Leider ist es so das wenn sich sich das datum ändert sich auch die zellen davor sich geändert haben. Ich möchte aber das diese werte in den jeweiligen Zellen bleiben wenn sie einmal drinnen sind. Gerne kann ich die Datei auch per email als Excel datei senden. Tabelle 2 KW Datum 19 12. Excel vba wenn sich wert in zelle ändern 2019. 05. 22 Früh Std. Spät Nacht Gesamt MQ 1050 QT 260 8, 00 240 220 720 MQ 2050 LT Li 400 380 350 1130 MQ 3050 LT Re 390 330 1120 MQ 4050 / 51 200 180 170 550 MQ 5050 / 51 7, 00 165 545 MQ 7050 D-Teil 300 280 800 AQ 9111 BAZ 6, 00 375 975 2060 2025 1755 18 0 20 0
2016 23:55:51 Hallo Matthias Danke für die schnelle Antwort, Funktioniert sehr gut, aber ein kleines Problem, wenn ich eine ganze neue Zeile einfüge oder eine löschen wird dieses Makro auch ausgeführt und dadurch auch ein Backup erstellt, lässt sich dieses abstellen oder so, Geschrieben am: 10. 2016 21:06:09 Hallo, wie verändert sich denn der Bereich K9:K700, wenn Zeilen (oder auch Spalten? ) eingefügt/entfernt werden? VBA Wenn sich ein Zellwert ändert, dann. Gruß, Matthias Geschrieben am: 11. 2016 05:29:06 Hallo Mattias, ich kann dir diese Frage nicht beantworten. hier noch einmal DEIN Code mit MEINER Erweiterung If Not Intersect(Target, Range("R9:R700")) Is Nothing Then UserId = Environ("Username") BackUpName = "E:mein speicherort" & & "_" & _ Date & "_" & Format(Time, "hhmmss") & "_" & UserId & "_" & "" CopyAs Filename:=BackUpName 'reenUpdating = True im Anschluß MEIN Code um neue Zeile einzufügen reenUpdating = False Dim rngC As Range Dim LCol As Long With ActiveSheet LCol = (5, )(xlToLeft) (4) = False (4) Shift:=xlDown For Each rngC In Intersect(Selection, _. Columns("A:" & Chr(LCol + 64))) If Not rngC.
& Chr$(13) Msg = Msg & "Möchten Sie den neuen Wert " & Worksheets(wks)(myCell) & " als Kontrollwert übernehmen? " If Mldg > 0 Then Qe = MsgBox(Msg, vbCritical + vbYesNo + vbDefaultButton1, "ACHTUNG: " & Mldg & ". ÄÄnderungsinformation") If Qe = 6 Then 'Übernahme des neuen Wertes als Control wert CtrlValue = Worksheets(wks)(myCell) 'Zurücksetzen des Counters Mldg = 0 Exit Sub End If 'Aufaddieren des Counters Mldg = Mldg + 1 Else Qe = MsgBox(Msg, vbCritical + vbYesNo + vbDefaultButton1, "ACHTUNG: ÄÄnderungsinformation") If Qe = 6 Then 'Übernahme des neuen Wertes als Control wert CtrlValue = Worksheets(wks)(myCell) 'Zurücksetzen des Counters Mldg = 0 Exit Sub End If 'Aufaddieren des Counters Mldg = Mldg + 1 End If End If End Sub Code eingefügt mit Syntaxhighlighter 1. 14 Super-Script!!! Wo setze ich denn einen Startbutton hin, mit dem ich durch anklicken bestimmen kann, das ab dann jede Minute geprüft werden soll? Excel vba wenn sich wert in zelle ändern 2020. Wo kommt der Stopbutton hin? Für alle Interessierten gehts weiter unter:
Excel erkennt automatisch, wenn der Anwender eine Zelle verändert. So können alle oder bestimmte Zellen beliebig per VBA überwacht werden. Das folgende Makro wird beispielsweise ausgeführt, wenn in der Zelle A1 bzw. C1 Änderungen vorgenommen werden. Mit der Abfrage des Target -Befehls können einzelne Zell-Adressen einfach überprüft werden. Sollen hingegen mehrere Zellen oder ganze Zellbereiche überwacht werden, so ist das unten stehende Beispiel (Lösung 2) mit dem Befehl Intersect die bessere Lösung. Lösung 2: Überwachung von Zellbereichen mit Hilfe des Befehls Intersect: Sub Worksheet_Change(ByVal Target As) If dress = "$A$1" Or dress = "$C$1" Then MsgBox "Sie haben gerade Zelle A1 oder C1 verändert! "Bedingte" Ausgabe in eine Zelle - WinFuture-Forum.de. " End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Not ersect(Target, Range("A1:A3")) Is Nothing Then MsgBox "Im Bereich A1:A3 wurde eine Zelle geändert! " Mit diesem Makro ist es also möglich, den Bereich auf mehrere Zellen auszuweiten. Im oben stehende Makro wird die Aktion ausgeführt, wenn Änderungen in den Zellen A1, A2 oder A3 vorgenommen werden.