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

Neue Zahl in Zelle automatisch erhöhen lassen

Neue Zahl in Zelle automatisch erhöhen lassen
15.01.2003 08:50:12
Norbert
In Zelle A1 schreibe ich eine Zahl die dann jedes mal durch eine Zahl in Zelle C2 immer dann automatisch erhöht werden soll, wenn sich die Zahl in Zelle C2 immer wieder erhöht.

Und umgekehrt in A2 - da soll dann die Zahl jedes mal tiefer geschrieben werden, wenn in C2 die Zahlen tiefer auftreten.

Also schreibe neue Höchst in Zelle A1 und neue Tiefst in Zelle A2, wenn in C2 sich die dort automtisch (per DDE) erfassten Zahlen ändern.

Wie mach ich das - kann mir jemand dazu was sagen.

Danke - Guß, Norbert

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Neue Zahl in Zelle automatisch erhöhen lassen
15.01.2003 10:12:08
Nepumuk
Hallo Norbert,
wenn cih das richtig verstehe, willst du in A1 das maximum von C2 und in A2 das minimum. Das kannst du so machen:

Der Code gehört in das Klassenmodul der betroffenen Tabelle.
Gruß
Nepumuk
Re: Neue Zahl in Zelle automatisch erhöhen lassen
15.01.2003 10:44:47
Norbert
Wow - danke für die rasche Antwort!

Ich probiere das mal jetzt. Die Zellen habe ich fiktiv gewählt. Richtig brauche ich sie so:

C849 für Highs - D849 für Lows und in E849 laufen immer die aktuellen Zahlen.

Hoffentlich krieg ich das jetzt hin - dauert aber noch, erst trinke ich noch den Kaffe fertig :-)

lg Norbert

ich kriege das nicht hin
15.01.2003 14:58:22
Norbert
Hallo Nepumuk!

Bin da doch zu sehr Laie, um den Code zum Funktionieren zu bringen. Kannst Du mir noch mal helfen?

Ich habe das so eingetragen - wird wohl falsch sein, weiles nicht funktioniert (Fehlermeldung wird dabei nicht ausgegeben).

Also in e848 ändern sich ständig die Zahlen und ein neues Höchst sollte in c848 rein und ein neues Tiefst in d848. Dabei gibt es noch das Problem (was danach acuh noch lösbar wäre), dass um 13:30 Uhr durch ein Makro die Zellbezüge immer von Zeile 849 auf Zeile 848 sich ändern - alle 12 Stunden (einmal abends, einmal mittags).

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$e$848" Then
Application.EnableEvents = False
If Cells("$e$848", 3) > Cells("$c$848", 1) Or Cells("$c$848", 1) = "" Then Cells("$c$848", 1) = Cells("$e$848", 3)
If Cells("$e$848", 3) < Cells("$d$848", 1) Or Cells("$d$848", 1) = "" Then Cells("$d$848", 1) = Cells("$e$848", 3)
Application.EnableEvents = True
End If
End Sub

Gruß, Norbert

Anzeige
Re: ich kriege das nicht hin
15.01.2003 15:21:43
Nepumuk
Hallo Norbert,
zu welcher Zeit ist welcher Zellbezug aktiv und soll sich der Bezug der max und min Zellen auch mit ändern? Sollen auserdem die max und min Werte bei Bezugsänderung weitergeführt oder neu aufgesetzt werden?
Gruß
Nepumuk
Re: ich kriege das nicht hin
15.01.2003 15:45:10
Norbert
Hm - hoffentlich kann ich mich jetzt kurz und verständlich ausdrücken:

- Es werden Währungskurse eingelesen
- von Null bis 24 Uhr soll jeweils das neue TagesHöchst oder TagesTiefst ausgegeben werden
- wobei von 13:32 Uhr bis Null Uhr die Werte in Zeile 849 stehen und von 13:32 bis Null Uhr in Zeile 848

Der Grund des Zeilenwechsels ist, dass ich durch ein Zeitmakro das gesamte Sheet "weiterschiebe", so dass ab 13:30 Uhr in Zeile 849 der nächste Tag bereits eingetragen ist. Sollte obige Prozedur jedoch funktionieren, dann müßte aber um 0:00 Uhr die Berechnung für die Höchst Tiefst wieder in Zeile 849 beginnen (dann wieder bis 13:32 Uhr und ab da wieder auf Zeile 848 zurück wechseln).

Also wenn sich so etwas machen läßt, dann sehe ich ja da viel mehr Möglichkeiten, um echt ein Börsenprogramm mit Excel zu produzieren.

Nepumuk - vielen Dank für die Mühe im Voraus!

Anzeige
Hoppla
15.01.2003 15:48:19
Norbert
so ist es richtig:

- wobei von 13:32 Uhr bis Null Uhr die Werte in Zeile 848 stehen und von Null Uhr bis 13:32 in Zeile 849

Re: Hoppla
15.01.2003 16:03:03
Nepumuk
Hallo Norbert,
so sollte es klappen:

Gruß
Nepumuk
Re: Hoppla
15.01.2003 17:10:13
Norbert
Der Code schaut mir sehr plausibel aus. Aber noch arbeitet er nicht.
Ich habe den Code als Modul1 im Sheet "In Arbeit_2002_kleinpivot.xls" eingetragen. Ist das korrekt? Oder muß ich da noch was aktivieren.

Habe ein Foto gemacht und sende es Dir als .png Datei an Deine Mailadresse zusätzlich. Vielleicht kannst Du damit was anfangen. Für mich wäre das in der Weise wichtig, um überhaupt mal sehen zu können, ob denn so was funktioniert. Denn dann könnte ich viel mehr Ideen verwirklichen. Beispielsweise schwebt mir da ein Elliott-Sheet vor (Elliott-Wellen mit Fibonacciverhältnissen aus der Börsensprache). So was hat noch nie jemand in Excel ausprobiert, weil das Thema Elliott-Wellen an sich schon recht "unverständlich" ist.

Anzeige
Re: Hoppla
15.01.2003 17:18:00
Nepumuk
Hallo Norbert,
der Code muss in das Klassenmodul der betroffenen Tabelle. Das geht so:
Rechtsklick auf den Tabellenreiter - Code anzeigen - dann in das sich öffnende VBA-Fenster meinen Code kopieren. Fertig.
Gruß
Nepumuk
Re: Hoppla
15.01.2003 19:01:23
Norbert
Es will nicht ...

Habe im XLS-Sheet in Tabelle7(Kurs) Rechtsklick gemacht und den Code eingefügt - rührt sich nichts

Dann probiert Rechtsklick und unter Einfügen "Klassenmodul" gewählt - rührt sich auch nichts

Die Stufe für Excel-Virenschutz ist auf niedrig gestellt.

Uff ... das schafft mich schön langsam.

Es ist EXCEL Prof auf WIN98

Wo könnte der Hund noch begraben sein?

Anzeige
Re: Hoppla
15.01.2003 19:06:42
Nepumuk
Hallo Norbert,
schon mal den Wert der Zelle per Hand geändert?
Gruß
Nepumuk
Re: Hoppla
15.01.2003 19:26:11
Norbert
Ja,alles Versucht ... keine Chance.
Vielleicht sollte nur Sub anstatt Private Sub stehen? Oder anstatt Range - Adin oder Application?

Es sind gleichzeitig 12 Arbeitsblätter offen, die alle untereinander zusammenhängen, also von einer Tabelle holen sich die anderen die Kurse, eines arbeitet als DDE und eines als Makroblatt (oder so ähnlich die Bezeichnungen sind - so genau fachmännisch kann ich das nicht sagen).

In vier oder fünf der tabellen arbeiten zusätzlich Makros, die ich aber bei Bedarf nur per Hand aufrufe und dann übergreifend in vielen anderen Blättren was umstellen.

Verflixt, dann sollte doch Dein Code auch irgendwo mal funktionieren oder ich stehe da irgendwie auf der Leitung.

LG Norbert

Anzeige
Re: Hoppla
15.01.2003 19:37:34
Nepumuk
Hallo Norbert,
ich schick dir mal die Mappe, in der ich den Code entwichelt habe.
Gruß
Nepumuk
Re: Hoppla
15.01.2003 19:46:08
Norbert
Vergiss meinen vorherigen Beitrag !!!

Per hand klappt es. Eintrag in Zelle e848 ändert in den beiden anderen den Wert. Es funktioniert nur nicht, wenn dort die Formel drin steht, woher der kurs kommt:

='[ntv_201.XLC] nost-Oszillator'!$D$1

Von dort wir immer der aktelle Kurs geholt. Ich glaube jetzt kannst Du mir weiter helfen.

LG Norbert

Re: Hoppla
15.01.2003 20:02:36
Nepumuk
Hallo Norbert,
sch...... dann reagiert das Worksheet_Change-Ereignis nicht auf Änderungen durch eine Formel. Dann muss ich das ganz anders machen. Da brauch ich aber den Tabellennamen und eine ungefähre Angabe, in welchen Zeitabständen sich der Kurs ändert. Dann kommt das Programm in eine rekursive Schleife die in einem gewissen Takt durchlaufen wird.
Gruß
Nepumuk
Anzeige
Re: Hoppla
15.01.2003 20:41:20
Norbert
Die Kurse aktualisieren sich etwa jede Minute tagsüber - in der Nacht auch mal erst alle 15-20 Minuten. Es reicht jedoch, wenn etwa alle zwei Minuten der Kurs auf Hoch oder Tief kontrolliert wird.
Vielen, vielen Dank erst mal für Deine Hilfe bisher. Dein Code funktioniert ja per Hand schon. Ich sende Dir die Tabelle. Vielleicht könnte man aber zuerst den Wert aus der Zelle mit der Formel heraus selbst in eine Zelle schreiben lassen und von dort die Abfrage machen. Keine Ahnung aber wie.

Die Tabelle hat etwa 370 KB - muß da irgendwo noch was stehen haben. Ursprünglich ist die über 4 MB groß.

LG Norbert


Anzeige
Re: Hoppla
16.01.2003 00:10:04
Nepumuk
Hallo Norbert,
uff, ich dachte schon an eine Taktzeit im Millisekundenbereich nach. Aber wenn das so ist, dann folgendes. Im Klassenmodul "Diese Arbeitsmappe" folgenden Code:

Option Explicit
Private Sub Workbook_Open()
Kursaenderung
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Zeit, "Kursaenderung", , False
End Sub


In ein "normales" Modul:

Option Explicit
Public Zeit As Date
Public Sub Kursaenderung()
With Sheets("Kurs")
If (Hour(Time) > 12 And Minute(Time) > 31) Or Time = "00:00:00" Then
If .Cells(848, 5) > .Cells(848, 3) Or .Cells(848, 3) = "" Then .Cells(848, 3) = .Cells(848, 5)
If .Cells(848, 5) < .Cells(848, 4) Or .Cells(848, 4) = "" Then .Cells(848, 4) = .Cells(848, 5)
Else
If .Cells(849, 5) > .Cells(848, 3) Or .Cells(848, 3) = "" Then .Cells(848, 3) = .Cells(849, 5)
If .Cells(849, 5) < .Cells(848, 4) Or .Cells(848, 4) = "" Then .Cells(848, 4) = .Cells(849, 5)
End If
End With
Zeit = Time + TimeSerial(0, 0, 30)
Application.OnTime Zeit, "Kursaenderung"
End Sub

diese Programm wird dann mit dem öffnen der Mappe in eine rekursive Schleife geschickt, die sich im 30 Sekunden-Takt selbst aufruft und die Werte in den max./min.-Zellen aktuallisiert. Das dürfte in jedem Fall reichen um keinen kursstruz zu verpassen.
Mit freundlichen Grüssen
Nepumuk
P.S.:Ich habe in deiner Tabelle gerade entdeckt, das die min./max.-Zeilen mit dem Datum nach unten wandern. Wenn du willst, kann ich das in das in dem Programm integrieren, so das die Ausgabezeilen mit dem Tagesdatum mitwandern. Auch die Zeile mit der Formel lässt sich ganz einfach, Zeit- und Datumsgesteuert, in die nächste Zeile kopieren.

Anzeige
Re: Hoppla
16.01.2003 09:44:53
Norbert
Also mich haut's aus den Socken! Das ist ja Hilfe pur! Vieeelen Dank erst mal.

Ich muß das erst ausprobieren. dauert noch ein paar Stunden.

Deine Idee, das Ganze besser zu integrieren greife ich auf. Aber dazu muß ich mir echt erst einen PAP (Programmablaufplan) erstellen, denn ich denke ohnehin, dass meine Lösung, wie ich sie jetzt habe, sehr "umständlich" ablauft. Ich verarbeite die Kurse direkt in der gleichen Tabelle mit vielen, vielen Spalten und Formeln (werden auch immer weiter kopiert), was aber wahrscheinlich so wie ich es mache gar nicht nötig ist. Denn eine Tabelle die die Kurse aufnimmt und verarbeitet (Datenbank) von wo sich dann die anderen Tabellen mit den vielen Berechnungen die Kurse auslesen, wäre ohnehin vielleicht wesentlich einfacher. Um Dich aber nicht zu viel zu "belasten" (und wenn das tatsächlich gelingen würde, ich mich auf jeden fall irgendwie erkenntlich machen möchte), versuche ich zuerst den PAP zu erstellen und die dazugehörigen Tabellen mal selbst aufzutrennen.

So, jetzt gibt's erst mal wieder Kaffee ...

Liebe Grüße, Norbert

Anzeige
Re: Hoppla
16.01.2003 13:48:07
Norbert
Hallo Nepumuk,

die Codes funktionieren leider doch noch nicht. Habe noch den Wechsel in den anderen Zeitbereich (Nachmittag bis Mitternacht) abgewartet.

In "Diese Arbeitsmappe" (mit Doppelklickk darauf und dem Eintrag im Feld rechts) ist der kurze Code einegtragen.

Im normalen Modul der "Lange" ...

Es tut sich nichts, eine Fehlermeldung tritt aber auch nicht auf.

Sollte da vielleicht eine anderer Aktivierungscode Erfolg haben???

In der Form etwa wie mein Zeitmakro um 13:32 zu arbeiten beginnt, ein weiteres dann aufruft in dem dann der Anfang wie unten beginnt:

Sub weiter_piv()
'
' weiter_piv Makro
' Makro am 24.02.2002 von Norbert Streicher aufgezeichnet
'
Windows("In Arbeit_2002_kleinpivot.XLS").Activate

Re: Hoppla
16.01.2003 14:00:41
Nepumuk
Hallo Norbert,
das Programm wird automatisch mit dem öffnen der Mappe gestartet. Du musst die Mappe nur einmal schliessen und wieder öffnen. Dann sollte es losgehen. Oder du startest das Programm Kursänderung mit Alt+F8.
Gruß
Nepumuk
Einmal ging es
16.01.2003 15:36:01
Norbert
Hallo Nepumuk, einmal nach Aufruf des Makros "Kursänderung" wurde der Kurs in c848 übernommen, danach kam Laufzeitfehler: Index ausserhalb des gültigen Bereichs, und With Sheets("Kurs") wurde gelb unterlegt.

Hier der Code, in dem ich nach ELSE die Cells auf 849 umstellte, aber jetzt geht wieder gar nichts. Sorry!

Option Explicit
Public Zeit As Date
Public Sub Kursaenderung()
With Sheets("Kurs")
If (Hour(Time) > 13 And Minute(Time) > 31) Or Time = "00:00:00" Then
If .Cells(848, 5) > .Cells(848, 3) Or .Cells(848, 3) = "" Then .Cells(848, 3) = .Cells(848, 5)
If .Cells(848, 5) < .Cells(848, 4) Or .Cells(848, 4) = "" Then .Cells(848, 4) = .Cells(848, 5)
Else
If .Cells(849, 5) > .Cells(849, 3) Or .Cells(849, 3) = "" Then .Cells(849, 3) = .Cells(849, 5)
If .Cells(849, 5) < .Cells(849, 4) Or .Cells(849, 4) = "" Then .Cells(849, 4) = .Cells(849, 5)
End If
End With
Zeit = Time + TimeSerial(0, 0, 10)
Application.OnTime Zeit, "Kursaenderung"
End Sub

Gruß, Norbert

Re: Einmal ging es
16.01.2003 15:48:57
Nepumuk
Hallo Norbet,
ändere die Zeile mal in:

With ThisWorkbook.Sheets("Kurs")

und starte das Programm wieder.
Gruß
Nepumuk

Re: Einmal ging es
16.01.2003 17:06:51
Norbert
Nepumuk, jetzt klappt es! Voila!

Das heißt, das Makro muß ich nach dem Start des Excel-Sheets starten und dann läuft es automatisch. Nun bin ich noch gespannt, ob es nach 0:00 Uhr so funktioniert, wie für die nächste Zeile vorgesehen.

Jetzt füge ich die Codes noch in den drei anderen Sheets ein, die haargenau so aufgebaut sind wie "kleinpivot.xls". Müßte auch dort klappen. Eventuell ist vielleicht der Makroname jweils zu ändern. Da dann jedes Makro in der eigenen Tabelle läuft, glaube ich, sollte es aber auch mit "Kursänderung" alleine funktionieren. Dann hätte ich endlich das leidige Nachtragen der Hi Lows hinter mir.

Ich bin dir echt dankbar, dass Du so viel Geduld mit mir aufgebracht hast und dem Hans Herber, dass er so eine tolle Excel-Seite auf die Beine gestellt hat!!!!!!!! Es hat sich wieder mal gezeigt, dass das Internet auch für konstruktive Arbeit brauchbar ist und nicht nur für Spiel und Gags.

Hab ich dann alles auf die Reihe gebracht, mach ich eine kleine Übersicht (Zusammenstellung) in einem neuen Tread.

Grüße, Norbert

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige