Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
280to284
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
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

problem mit _change ereignis

problem mit _change ereignis
16.07.2003 17:18:00
Daniel
hey,
möchte dass wenn eine Zelle in einer bestimmten tabelle geändert (nicht nur selektiert) wird der neue wert in ein anderes Tabellenblatt geschrieben wird. Wie kann ich das machen?
Hab folgenden code der nicht das tut was ich möchte weil activecell nicht unbedingt die veränderte zelle ist.

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveCell.Copy Destination:=Worksheets("Tabelle1").Cells(ActiveCell.Row, ActiveCell.Column)
End Sub

Kann mir jemand bitte helfen?
Danke,
Daniel

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: problem mit _change ereignis
16.07.2003 17:25:14
PeterW
Hallo Daniel,
mit ActiveCell.Row bzw. .Column wird die ActiveCell der Tabelle1 angesprochen. Wohin möchtest du die Daten denn kopieren?
Gruß
Peter

problem mit _change ereignis
16.07.2003 19:12:48
Daniel
hmmm... hab mich schlecht ausgedrückt.
Möchte das folgendes geschieht:
In Tabelle2 ändere ich den Wert einer Zelle (z.B. E7), dann soll in Tabelle1 automatisch und sofort der geänderte wert in "derselben" Zelle (E7) eingetragen werden. Ich weiss nicht wie ich das machen kann. Wie kann ich die Zelle bestimmen die gerade bearbeitet wird, sie ist nämlich nicht Activecell denn wenn ich eine Änderung mache und dann ENTER drücke (damit die Änderung stattfindet) ist die geänderte Zelle nicht die Activecell und deshalb geht auch mein code in dem ersten Post nicht.

Anzeige
AW: problem mit _change ereignis
16.07.2003 21:05:17
PeterW
Hallo Daniel,
dass es
Sheets("Tabelle1").Range(Target.Address) = Target
heißen muss hast du sicher erkannt - 33°C sind der beste Nährboden für Fehler. :-)
Gruß
Peter

Danke! :)
16.07.2003 21:38:26
Daniel
wow das funkt perfekt. Hab nicht gewusst dass es sowas wie Target gibt! Dieses Wissen wird mir sicherlich sehr weiterhelfen, danke vielmals. Wo bist du überhaupt? -33° ist each saukalt ;)
Daniel

hmm... trotzdem noch ein Problem
17.07.2003 09:25:24
Daniel
hey, hab jetzt gerade bemerkt dass ich trotzdem nochn problem hab. Wenn ich mehrere Zellen markiere und den inhalt der Zellen lösche dann hört Excel auf zu funktionieren. Wie könnte ich dieses Problem lösen. Ich glaube das Problem liegt am Befehl target oder?
Danke

Anzeige
AW: hmm... trotzdem noch ein Problem
17.07.2003 09:34:04
PeterW
Hallo Daniel,
hab es gerade noch einmal unter 8.0 getestet und kann deinen Fehler nicht nachvollziehen. Auch bei mehreren markierten Zellen gibt es weder eine Fehlermeldung noch hört Excel auf zu funktionieren (was immer du damit meinen magst). Hast du Änderungen am Code vorgenommen? Wenn ja poste bitte den Code.
Gruß
Peter

code:
17.07.2003 09:54:55
Daniel
Ich teste den code gerade unter Excel XP. Ich kann das auch nicht kapieren, On error resume next hilft auch nicht. Das problem ist genau wie folgt:
Ich markiere mehrere zellen (also einen Bereich) und dann lösche ich die inhalte. Boom... excel freezes aber VBA editor funkt noch. Dann klicke ich auf Excel auf der Taskleiste mit der rechten maustaste und dann auf schliessen und es erscheint "Wollen sie die änderungen speichern". Ich klicke auf Abbrechen und dann kann ich wieder mit Excel arbeiten. Das ist leider aber wirklich nicht akzeptable ;)
Also mein code:

Private Sub Worksheet_Change(ByVal Target As Range)
calculated = False
On Error Resume Next
Application.ScreenUpdating = False
If IsEmpty(Sheets("Hochrechnung").Range(Target.Address)) Then
Sheets("Hochrechnung").Unprotect
Sheets("Hochrechnung").Range(Target.Address) = Target
Sheets("Hochrechnung").Range(Target.Address).Locked = False
Sheets("Hochrechnung").Protect
End If
End Sub


Anzeige
hmmm... screenupdating
17.07.2003 10:09:45
Daniel
hab die Zeile Application.screenupdating gelöscht und jetzt freezed es nicht mehr!
Aber ein problem bleibt. Möchte nämlich dass die Dateinen aus einer anderen Tabelle importiert werden wenn sie in der tabelle1 gelöscht werden. Jetzt weiss ich nicht wie ich machen kann:
Wenn befehl = löschen dann importiere aus anderer tabelle. Habs mit einer Zelle geschafft aber nicht mit einem ganzen bereich:
If Not IsEmpty(Target) Then
If Worksheets("Ist-Daten").Range("E1") = "Kumulierte Eingabe" Then
If Target.Column - 3 Mod 12 <> 1 Then
v = Target.Value - Target.Offset(0, -1).Value
Sheets("Hochrechnung").Range(Target.Address) = v
Sheets("Hochrechnung").Range(Target.Address).Locked = True
Else:
Sheets("Hochrechnung").Range(Target.Address) = Target
Sheets("Hochrechnung").Range(Target.Address).Locked = True
End If
Else:
Sheets("Hochrechnung").Range(Target.Address) = Target
Sheets("Hochrechnung").Range(Target.Address).Locked = True
End If
Else: Sheets("Plan-Daten").Range(Target.Address).Copy Destination:=Sheets("Hochrechnung").Range(Target.Address)
Application.CutCopyMode = False
Sheets("Hochrechnung").Range(Target.Address).Locked = False
End If
Hast du noch einen Vorschalg? Wenn Target ein Bereich ist dann funkt isempty anscheinend nicht

Anzeige
AW: hmmm... screenupdating
17.07.2003 10:50:01
PeterW
Hallo Daniel,
vielleicht hilft dir das als Ansatz weiter:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngTar As Range
Sheets("Tabelle1").Range(Target.Address) = Target
For Each rngTar In Range(Target.Address)
MsgBox rngTar.Address
Next
End Sub

Jetzt könntest du mit einer Select Case Abfrage statt der MsgBox ermitteln, ob und wenn ja wohin was geschrieben werden soll.
Wenn dein Excel nicht mehr funktioniert hat dann vielleicht, weil du in deinem Code die Bildschirmaktualisierung nicht wieder eingeschaltet hast. Application.ScreenUpdating = True kann ich jedenfalls nicht finden. :-)
Gruß
Peter

Anzeige
danke vielmals
17.07.2003 11:16:23
Daniel
wow, ich schuld dir wirklich was... :)

AW: problem mit _change ereignis
16.07.2003 19:20:21
PeterW
Hallo Daniel,
probier es mal so, unter XP klappt das, sollte auch mit 9.0 funktionieren

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Range(Target.Address) = Target
End Sub

Gruß
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige