Dynamisches Diagramm erstellen, geht das?

Moderator: ModerationP

Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 23. Okt 2021, 13:29

Hallo zusammen,

ich habe da eine fixe Idee entwickelt und bin mir nicht sicher, ob sich das irgendwie erreichen lässt.

Zur besseren Übersicht meines Crypto-Portfolios würde ich gerne ein Diagramm erstellen, welches sich
dynamisch verändert.

Ich habe eine API aus dem Web mit den aktuellen Kursen meines Portfolios auf der Tabelle verankert,
die sich alle 30 Minuten aktualisiert. Dadurch ändert sich der Gesamtwert und wird in einer Zelle des Tabellenblatts
dargestellt.

Nun würde ich gerne erreichen, daß sich dieser neue Wert in einem Diagramm fortlaufend anfügt, so daß
am Ende ein Diagramm entsteht, welches die Änderungen des Portfolios visuell darstellt.

Geht so etwas mit den Bordmitteln von Excel?

Liebe Grüße,
Jochen
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon slowboarder » 23. Okt 2021, 13:37

Hi
"intelligente Tabellen" verwenden oder dynamische (dh berechnete) Namen.
Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28574
Registriert: 18. Apr 2009, 13:33

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 23. Okt 2021, 14:16

slowboarder hat geschrieben:Hi
"intelligente Tabellen" verwenden oder dynamische (dh berechnete) Namen.
Gruß Daniel


Hi Daniel,

ein guter Hinweis, vielen Dank!

Bevor ich aber die intelligente Tabelle nutze, stellt sich mir die folgende Frage:

Wie kann ich Excel dazu bringen, die Änderung der einzelnen Zelle (Gesamtergebnis) automatisch festzuhalten
und den Wert entsprechend auf eine neue Tabelle zu kopieren. Kann ja nicht sein, daß da ständig ein
Makro läuft, daß prüft, ob sich die Zelle ändert, oder doch?

LG,
Jochen
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon Gast » 23. Okt 2021, 19:45

Aha, habe gelernt, daß das doch geht, mit dem Change Event. Habe dazu auch entsprechende Einträge gefunden und folgenden
Code verfasst.

Code: Alles auswählen
Sub Worksheet_Change(ByVal Target As Range)

i As Long
i = Worksheet("2021").Cells(Rows.Count, "A").End(xlUp).Row

If Not Application.Intersect(Target, Range("G19")) Is Nothing Then
Worksheet("2021").Range("A" & i).Value = Worksheet("Totals").Range("G19").Value
End If
End Sub


Leider funktioniert das trotzdem nicht, weil der Wert nicht auf Tabelle 2021 übertragen wird. Was ist hier falsch???
Gast
 

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 23. Okt 2021, 19:53

Korrektur:

Code: Alles auswählen
Sub Worksheet_Change(ByVal Target As Range)

i As Long
i = Worksheets("2021").Cells(Rows.Count, "A").End(xlUp).Row

If Not Application.Intersect(Target, Range("G19")) Is Nothing Then
Worksheets("2021").Range("A" & i).Value = Worksheets("Totals").Range("G19").Value
End If
End Sub
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 23. Okt 2021, 23:28

Und wieder was gelernt. Da die Zelle ("G19") eine Formel enthält, sollte ich das CALCULATE-Event nehmen, wenn ich das richtig verstanden habe.
Nun sieht mein Code folgendermaßen aus, funktioniert aber ebenso wenig:

Code: Alles auswählen
Sub Worksheet_Calculate(ByVal Target As Range)

Dim i As Long
i = Worksheets("2021").Cells(Rows.Count, "A").End(xlUp).Row

If Not Application.Intersect(Target, Range("G19")) Is Nothing Then
Worksheets("2021").Range("A" & i).Value = Worksheets("Totals").Range("G19").Value
End If

End Sub


Jemand noch eine Idee?
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon RPP63 » 24. Okt 2021, 07:14

Moin!
Das _Calculate hat keinen Parameter Target!
Schau mal:
https://www.online-excel.de/excel/singsel_vba.php?f=160

Nimm das _Change und werte (als Target) das Parent der Formel (Precedents / Spur zum Vorgänger) aus.

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 11548
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon Flotter Feger » 24. Okt 2021, 08:34

Jetzt zitiere ich mich schon selbst :roll:

Eine Zelle auf eine Änderung durch eine Formel zu überwachen, ist doch gar nicht so schwer ... und wir brauchen auch das Calculate-Event nicht dafür.
Wie die Überwachung genau aussehen muss, hängt natürlich davon ab, was genau passieren soll, wenn sich Zelle.Value ändert.

Eine ganz einfache Benachrichtigung bekommt man so hin:

Den Code in ein allgemeines Modul ...

Code: Alles auswählen
Public Function FORMULACHANGED()
    MsgBox "Zelle " & Application.Caller.Address & " hat sich geändert!"
End Function

... und bei deinem SVERWEIS hängst du den Aufruf der Function einfach hinten dran ...

=SVERWEIS(A2;N2:P30;3;0)&FORMULACHANGED()

Natürlich hast du keinen SVERWEIS ... sollte aber genauso gehen mit dem hinten anhängen.
VG Sabina

Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Bei mir läuft Win 7 32-Bit - Office 2016 Pro Plus 32-Bit, Office 2019 Pro Plus 32-Bit und Office 2021 Pro Plus 32-Bit
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3336
Registriert: 24. Okt 2016, 16:40

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 24. Okt 2021, 10:34

Flotter Feger hat geschrieben:Jetzt zitiere ich mich schon selbst :roll:

Eine Zelle auf eine Änderung durch eine Formel zu überwachen, ist doch gar nicht so schwer ... und wir brauchen auch das Calculate-Event nicht dafür.
Wie die Überwachung genau aussehen muss, hängt natürlich davon ab, was genau passieren soll, wenn sich Zelle.Value ändert.

Eine ganz einfache Benachrichtigung bekommt man so hin:

Den Code in ein allgemeines Modul ...

Code: Alles auswählen
Public Function FORMULACHANGED()
    MsgBox "Zelle " & Application.Caller.Address & " hat sich geändert!"
End Function

... und bei deinem SVERWEIS hängst du den Aufruf der Function einfach hinten dran ...

=SVERWEIS(A2;N2:P30;3;0)&FORMULACHANGED()



Natürlich hast du keinen SVERWEIS ... sollte aber genauso gehen mit dem hinten anhängen.



Guten Morgen,

das hat leider nicht funktioniert. In der Zelle steht einfach nur =SUMME(G17:G18) - Wenn ich hier die neue Function anhänge, funktioniert das zwar über die Ausgabe einer MsgBox, aber
nicht durch Aufruf einer Subroutine "CT". In einer Function kann ja auch keine Subroutine aufgerufen werden, oder?

Code: Alles auswählen


Mein Problem ist ja, daß ich jeden neuen Wert der Zelle in eine dynamische Tabelle einfügen möchte. Diese dynamische Tabelle wächst alle 30 Minuten, mit dem veränderten Wert in "TOTALS!G19" über
folgenden funktionierenden Code:

Code: Alles auswählen
Sub CT()

Dim tbl As ListObject
Dim Lrow1 As Long


Lrow1 = ThisWorkbook.Sheets("2021").Cells(Rows.Count, "A").End(xlUp).Row + 1
Lrow1 = ThisWorkbook.Sheets("2021").Cells(Rows.Count, "B").End(xlUp).Row + 1

Set tbl = ThisWorkbook.Sheets("2021").ListObjects("WertTotal")

tbl.Resize tbl.Range.Resize(Lrow1)

Worksheets("2021").Range("A" & Lrow1).Value = Lrow1 - 1
Worksheets("2021").Range("B" & Lrow1).Value = Worksheets("Totals").Range("G19").Value

End Sub


Gruß,
Jochen
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 24. Okt 2021, 18:59

RPP63 hat geschrieben:Moin!
Das _Calculate hat keinen Parameter Target!
Schau mal:
https://www.online-excel.de/excel/singsel_vba.php?f=160

Nimm das _Change und werte (als Target) das Parent der Formel (Precedents / Spur zum Vorgänger) aus.

Gruß Ralf



Hallo Ralf,

bin etwas überfordert. Meinst Du in etwa so?

Code: Alles auswählen
Sub Worksheet_Change(ByVal Target As Range)

Set Target = Worksheets("Totals").Range("G19")

If Target.Address = "$G$19" Then
    Call CT
End If

End Sub


Code: Alles auswählen
Sub CT()

Dim tbl As ListObject
Dim Lrow1 As Long


Lrow1 = ThisWorkbook.Sheets("2021").Cells(Rows.Count, "A").End(xlUp).Row + 1
Lrow1 = ThisWorkbook.Sheets("2021").Cells(Rows.Count, "B").End(xlUp).Row + 1

Set tbl = ThisWorkbook.Sheets("2021").ListObjects("WertTotal")

tbl.Resize tbl.Range.Resize(Lrow1)

Worksheets("2021").Range("A" & Lrow1).Value = Lrow1 - 1
Worksheets("2021").Range("B" & Lrow1).Value = Worksheets("Totals").Range("G19").Value

End Sub


LG,
Jochen
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon HKindler » 25. Okt 2021, 13:31

Hi,

irgendwas muss doch deinen Wert jede halbe Stunde aktualisieren. Wie genau machst du das? Und was hinter doch daran, ganz am Ende jenes Makros deinen Wert aus G19 in das andere Blatt zu kopieren?
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6470
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon Gast » 25. Okt 2021, 14:31

HKindler hat geschrieben:Hi,

irgendwas muss doch deinen Wert jede halbe Stunde aktualisieren. Wie genau machst du das? Und was hinter doch daran, ganz am Ende jenes Makros deinen Wert aus G19 in das andere Blatt zu kopieren?


Hi,

ich habe eine API auf einem Tabellenblatt eingebunden, das ganz allgemein Kurse abfragt. Diese API wird von einer Webseite zur Verfügung gestellt und funktioniert auch.
Diese Werte, lese ich mit SVERWEIS aus der Tabelle aus. Funktioniert auch und die Werte werden, so wie eingestellt, alle 30 Minuten aktualisiert.

Aus diesen Werte ergibt sich in Zelle G19 eine Summe von G17 und G18. Wenn sich die Zelle G19 nun aufgrund der Aktualisierung ändert (Change-Ereignis?),
dann möchte ich diesen neuen Wert an die Subroutine CT übergeben, der das Einpflegen dieses neuen Wertes in die dynamische Tabelle übernimmt.

Die Subroutine CT funktioniert. Der hinzugefügte Wert, wird in einem Linien-Diagramm, basierend auf der dynamischen Tabelle, ständig erweitert.

Was halt nicht funktioniert, ist mein Code auf dem Tabellenblatt, mit dem der neue aktualisierte Wert in G19 an die Subroutine CT übergeben wird und ich habe
keine Idee mehr, wie ich dies nun bewerkstelligen kann.

Ich hoffe, ich konnte mein Anliegen halbwegs verständlich beschreiben.
Gast
 

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon HKindler » 25. Okt 2021, 14:41

Hi,

Gast hat geschrieben:die Werte werden, so wie eingestellt, alle 30 Minuten aktualisiert.
Und genau da wird es interessant: wo stellst du das ein? Wie sieht der API-Aufruf aus? Irgendwie muss ja irgendwas alle 30 Minuten auslösen.

Ansonsten: Überwache nicht G19 sondern - wie von Ralf bereits gesagt - die Zellen, die in der Formel von G19 vorkommen, sprich G17 und G18. Allerdings musst du aufpassen: wenn nicht beide gleichzeitig geändert werden, sondern nacheinander, dann wird das Change-Ereignis auch zweimal ausgelöst.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6470
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon DaPeif » 25. Okt 2021, 15:04

HKindler hat geschrieben:Hi,

Gast hat geschrieben:die Werte werden, so wie eingestellt, alle 30 Minuten aktualisiert.
Und genau da wird es interessant: wo stellst du das ein? Wie sieht der API-Aufruf aus? Irgendwie muss ja irgendwas alle 30 Minuten auslösen.

Ansonsten: Überwache nicht G19 sondern - wie von Ralf bereits gesagt - die Zellen, die in der Formel von G19 vorkommen, sprich G17 und G18. Allerdings musst du aufpassen: wenn nicht beide gleichzeitig geändert werden, sondern nacheinander, dann wird das Change-Ereignis auch zweimal ausgelöst.


Hier mein API-Aufruf:

Bildbilder kostenlos hochladen

und dessen Eigenschaften:

Bild

Auch Zelle G18 enthält eine Formel, die sich in 3 Zellen verzweigt. Es wird wohl ziemlich unübersichtlich :-(
DaPeif
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 104
Registriert: 04. Mär 2008, 23:23

Re: Dynamisches Diagramm erstellen, geht das?

Beitragvon HKindler » 25. Okt 2021, 16:15

Hi,

das ist aber kein API-Aufruf, sondern eine Datenabruf mit PowerQuery (bzw. Daten abrufen und transformieren). Damit kenn ich persönlich mich jetzt nicht so aus. Und ich kann auf die Schnelle kein Event (Ereignis) finden, das bei einem Update der Connection ausgelöst wird. So etwas wäre natürlich ein idealer Angriffspunkt.

Also wird dir wohl nichts anderes übrig bleiben als mit dem Worksheet_Change-Ereignis alle Ausganszellen deiner Formel zu überwachen.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6470
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Nächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: HKindler, snb und 12 Gäste