Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
820to824
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
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bei change einen Eintrag machen

Bei change einen Eintrag machen
16.11.2006 11:20:31
Daniel
Hallo!
Ich möchte gerne einen Eintrag in einer Spalte machen, wenn sich in einem Zellbereich eine Änderung ergibt.
Wenn sich z.B. in C5:C13 ein Wert ändert, soll ab C18 eine 1 eingetragen werden und ab B18 die Uhrzeit. Bei der nächsten Änderung soll dann in C19 und B19 dr eintrag kommen usw.
Wie geht sowas?
Grüße,
Daniel

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei change einen Eintrag machen
16.11.2006 11:53:07
EtoPHG
Hallo Daniel,
In die Tabelle kommt dieser Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ixRow As Single
If Intersect(ActiveSheet.Range("C5:C13"), Target) Is Nothing Then Exit Sub
ixRow = ActiveSheet.Range("C65536").End(xlUp).Row + 1
If ixRow < 18 Then
ixRow = 18
ActiveSheet.Cells(ixRow, 3) = 1
Else
ActiveSheet.Cells(ixRow, 3).FormulaR1C1 = "=R[-1]C+1"
End If
ActiveSheet.Cells(ixRow, 4) = Now()
End Sub

Gruss Hansueli
AW: Bei change einen Eintrag machen
16.11.2006 12:35:32
Daniel
Hallo Hansueli,
leider tut sich da nichts.
In C5:C13 stehen Formeln, die über eine DDE Schnittstelle Werte empfängt.
Vielleicht liegt es daran?
Grüße,
Daniel
Anzeige
AW: Bei change einen Eintrag machen
16.11.2006 12:47:00
Rudi
Hallo,
die Neuberechnung von Formeln löst kein Ereignis aus.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Bei change einen Eintrag machen
16.11.2006 12:49:23
Daniel
Okay, wie geht das dann?
Oder ist es nur über einen Zwischenschritt möglich?
AW: Bei change einen Eintrag machen
16.11.2006 13:19:06
Beni
Hallo Rudi,
probiere es mit dem.
Gruss Beni

Private Sub Worksheet_Calculate()
ixRow = ActiveSheet.Range("C65536").End(xlUp).Row + 1
If ixRow < 18 Then
ixRow = 18
ActiveSheet.Cells(ixRow, 3) = 1
Else
ActiveSheet.Cells(ixRow, 3) = ActiveSheet.Cells(ixRow + 1, 3) + 1
End If
ActiveSheet.Cells(ixRow, 4) = Now()
End Sub

Anzeige
AW: Bei change einen Eintrag machen
16.11.2006 13:26:38
Daniel
Hallo,
damit kann ich mich aber nicht auf den Zellenbereich beschränken! Oder?
Gruß,
Daniel
AW: Bei change einen Eintrag machen
16.11.2006 13:37:13
EtoPHG
Hallo Daniel,
Genau. Um Dich bei diesem Event auf einen Zellbereich zu beschränken muss der vorherige Zustand bekannt sein. Hier werden z.B. die Werte auf die Spalte 256 zwischengespeichert. Die Spalte wird versteckt.

Private Sub Worksheet_Calculate()
Dim ixRow As Single
Dim bDoEntry As Boolean
bDoEntry = False
Application.EnableEvents = False
For ixRow = 5 To 13
If ActiveSheet.Cells(ixRow, 3).Value <> ActiveSheet.Cells(ixRow, 256).Value Then
ActiveSheet.Cells(ixRow, 256).Value = ActiveSheet.Cells(ixRow, 3).Value
bDoEntry = True
End If
Next ixRow
If bDoEntry Then
ixRow = ActiveSheet.Range("C65536").End(xlUp).Row + 1
If ixRow < 18 Then
ixRow = 18
ActiveSheet.Cells(ixRow, 3) = 1
If Not (ActiveSheet.Columns(256).EntireColumn.Hidden) Then ActiveSheet.Columns(256).EntireColumn.Hidden = True
Else
ActiveSheet.Cells(ixRow, 3).Value = ActiveSheet.Cells(ixRow - 1, 3).Value + 1
End If
ActiveSheet.Cells(ixRow, 4) = Now()
End If
Application.EnableEvents = True
End Sub

Gruss Hansueli
Anzeige
AW: Bei change einen Eintrag machen
16.11.2006 13:41:36
Daniel
Okay.
Also geht es nur über eine Zwischenspeicherung.
Danke nochmal,
Daniel
AW: Bei change einen Eintrag machen
16.11.2006 15:03:41
Daniel
Hallo,
also irgendwie funktioniert das nicht. Es passiert einfach gar nichts.
Auch wenn ich es ohne Beschränkung auf Zellen machen geht es nicht.
Hast du eine Idee woran es liegen könnte?
Gruß,
Daniel
AW: Bei change einen Eintrag machen
16.11.2006 15:09:09
EtoPHG
Hallo Daniel,
Wo hast Du diesen Code im VBE platziert ?
Der Code gehört in die TabelleX (Nicht in DieseArbeitsmappe, nicht in ein Modul !)
Gruss Hansueli
AW: Bei change einen Eintrag machen
16.11.2006 15:16:40
Daniel
Hallo,
den habe ich in die Tabelle über Code anzeigen.
Gruß,
Daniel
AW: Bei change einen Eintrag machen
16.11.2006 15:51:02
EtoPHG
Hallo Daniel,
WOW....ist das ein Antwort.
Schreib bitte hier als Antwort genau den gesamten Text, den Du in der Titelleiste des Fensters siehst, das mit Microsoft Visual Basic beginnt.
Gruss Hansueli
Anzeige
AW: Bei change einen Eintrag machen
16.11.2006 15:56:08
Daniel
Sorry,
ich habe den Code in das Fenster eingefügt, das sich ändert wenn man mit Rechtsklick auf den Tabellenreiter geht und "Code anzeigen" klickt.
Das Fenster heißt dann Mappe.xls - [Tabelle1(Code)].
Grüße,
Daniel
AW: Bei change einen Eintrag machen
16.11.2006 16:10:39
EtoPHG
Hallo Daniel,
Hier ein Beispiel mit genau diesem Code.
Änderung in Zelle A1 triggert den Log-Eintrag !
Irgendeine Angabe von Dir kann nicht stimmen (Formeln in C5:C13, DDE, Keine direkten Eingaben in Zellen)...
https://www.herber.de/bbs/user/38244.xls
Gruss Hansueli
AW: Bei change einen Eintrag machen
16.11.2006 16:14:38
Daniel
Ja, wie gesagt.
In C5:C13 stehen DDE-Formeln.
Manuell wird da Nichts eingegeben.
Stehe ich soo auf dem Schlauch? Es muss doch irgendwie gehen, dass Excel merkt das sich in den Zellen der Wert ändert.
Gruß,
Daniel
Anzeige
Was ist eine DDE-Formel ?
16.11.2006 16:16:09
EtoPHG
AW: Was ist eine DDE-Formel ?
16.11.2006 16:25:04
Daniel
Ich bekomme darüber aus einem anderen Programm Kursdaten, z.B. zu Aktien.
Was eine DDE-Formel genau ist weiß ich nicht. Ich nutze diese lediglich.
Gruß,
Daniel
AW: Was ist eine DDE-Formel ?
16.11.2006 16:30:50
EtoPHG
Hallo Daniel,
Dann bin ich mit meinem Latein auch am Ende.
Ich vermute, dass eine Fremdapplikation in Deine Tabelle Daten schreibt. Dann müsste auch diese Applicakation das Log-Schreiben, statt Excel
Gruss Hansueli
AW: Was ist eine DDE-Formel ?
16.11.2006 17:17:40
Daniel
So, nach einem Neustart geht jetzt zumindest ein normales Worksheet_Calculate.
Ich werde mir die Codes dann Morgen nochmal ansehen.
Anscheinend lag es einfach an Excel, dass es nicht klappte.
Gruß,
Daniel
Anzeige
AW: Was ist eine DDE-Formel ?
17.11.2006 09:40:24
Daniel
Hallo Hansueli,
also nun scheint der Code an sich zu gehen und das Worksheet_Calculate reagiert.
Kannst du mir da noch in einer Sache helfen:
nach dem Öffnen der Datei geben die Formeln für eine ganz kurze Zeit #NV. Das kann ich leider nicht verhindern. Wie kann ich das im Code ändern, dass falls in den Zellen #NV steht das Makro ohne Fehlermeldung weitermacht?
Nochamls Danke für die Hilfe,
Daniel
AW: Was ist eine DDE-Formel ?
17.11.2006 10:12:13
EtoPHG
Hallo Daniel,

Private Sub Worksheet_Calculate()
Dim ixRow As Single
Dim bDoEntry As Boolean
bDoEntry = False
Application.EnableEvents = False
For ixRow = 5 To 13
If Not IsError(ActiveSheet.Cells(ixRow, 3).Value) Then
If ActiveSheet.Cells(ixRow, 3).Value <> ActiveSheet.Cells(ixRow, 256).Value Then
ActiveSheet.Cells(ixRow, 256).Value = ActiveSheet.Cells(ixRow, 3).Value
bDoEntry = True
End If
End If
Next ixRow
If bDoEntry Then
ixRow = ActiveSheet.Range("C65536").End(xlUp).Row + 1
If ixRow < 18 Then
ixRow = 18
ActiveSheet.Cells(ixRow, 3) = 1
If Not (ActiveSheet.Columns(256).EntireColumn.Hidden) Then ActiveSheet.Columns(256).EntireColumn.Hidden = True
Else
ActiveSheet.Cells(ixRow, 3).Value = ActiveSheet.Cells(ixRow - 1, 3).Value + 1
End If
ActiveSheet.Cells(ixRow, 4) = Now()
End If
Application.EnableEvents = True
End Sub

Gruss Hansueli
Anzeige
Danke!
17.11.2006 10:33:05
Daniel
Ich danke Dir!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige