Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bei Unterschiede MsgBox

Bei Unterschiede MsgBox
19.10.2006 09:53:27
Gerhard
Hallo,
ich habe da ein Problem.
Ich habe zwei identische Tabellen. Nun will ich, wenn man in der zweiten Tabelle etwas eingibt und der Wert ein anderer ist, eine Abfrage erfolgt, welcher Wert übernommen werden soll.
Ich wäre schon froh, wenn irgendjemand eine Teillösung des Problems hätte.
Gruß
Gerhard

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Unterschiede MsgBox
19.10.2006 10:55:28
Mag
Hi,
so?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim klick As Integer
'Prüfung, ob im Untersuchungsbereich A1:B4 eine Eingabe erfolgte
If Not Intersect(Target, Range("A1:B4")) Is Nothing Then
'Prüfung, ob unterschiedlicher Wert in Tabelle 1
If Target.Value <> Sheets(1).Range(Target.Address).Value Then
klick = MsgBox("Unterschiedlicher Wert. Tabelle 1: " & Sheets(1).Range(Target.Address).Value & _
" und Tabelle2: " & Target.Value & Chr(13) & "Soll der Wert in Tabelle 1 geändert werden?", _
vbYesNo, "Hinweis")
'Prüfung, ob Änderung durchgeführt werden soll
If klick = vbYes Then
Sheets(1).Range(Target.Address).Value = Target.Value
End If
End If
End If
End Sub

Gruss
Anzeige
AW: Bei Unterschiede MsgBox
19.10.2006 11:09:40
Gerhard
Hallo,
mit der MsgBox kann ich schon mal was anfangen. Vielen Dank.
Aber ich verstehe die Funktion irgendwie nicht so recht. Ich habe sie in "DieseArbeitsmappe" eingefügt. Aber wenn ich in A1 irgendetwas ändere, passiert gar nichts. Außerdem habe ich mich vielleicht nicht richtig ausgedrückt. Es handelt sich um eine Tabelle, die sich vom Aufbau identisch in zwei Dateien befindet.
Gruß
Gerhard
AW: Bei Unterschiede MsgBox
19.10.2006 11:13:24
Mag
Hi,
code in Tabelle 2 einfügen, dort wo Werte eingegeben werden, nicht in diese Arbeitsmappe.
Gruss
AW: Bei Unterschiede MsgBox
19.10.2006 11:15:21
Mag
... zum zweiten Teil deiner Antwort:
dann workbook noch vor den Anweisungen...
Gruss
Anzeige
AW: Bei Unterschiede MsgBox
19.10.2006 11:34:20
Gerhard
Hallo,
vielen Dank. Jetzt geht es.
Ich habe aber noch ein kleines Problem.
Die Änderungen sollen nicht in Tabelle1, sondern in Tabelle2 vorgenommen werden. Das ganze ist gedacht für die Dateneingabe, die als Zweiteingabe überprüft, ob die Ersteingabe etwas anderes eingegeben hat.
Gruß
Gerhard
AW: Bei Unterschiede MsgBox
19.10.2006 11:55:39
Mag
Hi,
sheets(1) entspricht sheets("NameTabelle1") oder worksheets
sheets(2) entspr...
Gruss
AW: Bei Unterschiede MsgBox
19.10.2006 11:21:14
Daniel
Hallo
das geht beispielsweise über ein kleines Makro, daß automatisch bei Änderungen im neuen Sheet läuft.
Schau dir mal das beispiel an.
Wenn im Blatt "Neue Werte" was geändert wird, werden die die Werte mit den den Werten aus "Alte Werte" verglichen. Bei abweichungen werden diese gezeigt, und man kann entscheiden, ob die neuen Werte übernommen werden sollen, oder ob die Alten zurückgeschrieben werden sollen.
Dabei werden die Daten in "Alte Werte" nicht verändert.
Das ganze ist momentan noch nicht für Formeln, sondern nur für fix-Werte ausgelegt.
https://www.herber.de/bbs/user/37504.xls
Gruß, Daniel
PS. Der Makro-Text siehet so aus:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim shALT As Worksheet
Dim Zelle As Range
Dim TEXT As String
Dim Check As Boolean
Set shALT = Sheets("Alte Werte")
TEXT = "Zelle | alter Wert | neuer Wert" & Chr(10) & "-----------------------------------"
Check = False
For Each Zelle In Target.Cells
If shALT.Range(Zelle.Address).Value <> Zelle.Value Then
TEXT = TEXT & Chr(10) & Zelle.Address(0, 0) & " | " & shALT.Range(Zelle.Address).Value & " | " & Zelle.Value
Check = True
End If
Next
If Check Then
Select Case MsgBox(TEXT, vbYesNo + vbQuestion, "Änderungen übernehmen?")
Case vbYes
Case vbNo
For Each Zelle In Target.Cells
Zelle.Value = shALT.Range(Zelle.Address).Value
Next
End Select
End If
End Sub

Anzeige
AW: Bei Unterschiede MsgBox
19.10.2006 11:42:08
Gerhard
Hallo,
vielen Dank.
Es funktioniert genau so, wie ich das will. Nur stehen die alten Werte bei mir in einer extra Datei. Aber da muß ich ja, denke ich mal, eigentlich nur hinter "Set shALT" noch den Dateiname hinzufügen.
Gruß
Gerhard
AW: Bei Unterschiede MsgBox
19.10.2006 12:02:37
Daniel
Hallo
Set shalt=Workbooks("Name").sheets("...")
dann sollte es gehen.
Es müssen halt beide Dateien geöffnet sein.
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige