Registriert seit: 19.01.2020
Version(en): 2007
Hallo,
ich möchte ein Diagramm basierend auf einer sich in Intervallen ändernden Tabelle dynamisch anpassen. Bisher sind 10 Werte in der Tabelle und im zugehörigen Diagramm korrekt abgebildet.
In Spalte A wird der Timestamp gelistet, in Spalte B der zugehörige Temperaturwert. In der ersten Zeile befindet sich die Überschrift.
Folgendes habe ich bisher erfolglos versucht:
1. \Formeln \ Namensmanager \ Neu \
=> Name: "mein_Timestamp"
=> Bezieht sich auf: "=BEREICH.VERSCHIEBEN(Tabelle1!$A$2;0;0;ANZAHL2(Tabelle1!$A$2:$A$1000);1)"
2. \Formeln \ Namensmanager \ Neu \
=> Name: "meine_Temp"
=> Bezieht sich auf: "=BEREICH.VERSCHIEBEN(Tabelle1!$B$2;0;0;ANZAHL2(Tabelle1!$B$2:$B$1000);1)"
Normalerweise müsste sich das zugehörige Diagramm bei einem neuen (elften) Eintrag anpassen. Dies passiert leider nicht. Woran könnte das liegen?
Danke!
Registriert seit: 12.04.2014
Version(en): Office 365
Moin
Den Blödsinn mit BEREICH.VERSCHIEBEN() braucht man schon lange nicht mehr.
Mache aus der Liste eine formatierte Tabelle (STRG-T). Wichtig: Es dürfen keine leeren Zeilen enthalten sein.
Wir sehen uns!
... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 19.01.2020
Version(en): 2007
Danke, shift-del. Das funktioniert soweit.
Wie bekomme ich es hin, dass bei Verringerung der Werte die Tabelle (genauer Tabellenbereich) sich ebenfalls verringern.
Bsp.: Meine o.g. Tabelle hat statt 10 Einträge nur noch 7. Im Moment bleibt der Tabellenbereich bei 10 stehen und das Diagramm skaliert sich nicht zurück.
VG!
Registriert seit: 02.12.2017
Version(en): Microsoft365
Hallo,
die 3 leeren Zeilen in der Tabelle nicht bloß auf leer setzen, sondern entfernen!
(Von links her auf die zu entfernende Tabellenzeile zeigen mit dem Mauszeiger - der Mauszeiger verwandelt sich dabei in einen waagrechten schwarzen Pfeil - dann linke Maustaste drücken - es wird dadurch exakt nur der Zeilenbereich innerhalb der Tabelle markiert - rechte Maustaste drücken - den Befehl zum Löschen von Tabellenzeilen wählen)
Mit lieben Grüßen
Anton.
Windows 10 64bit
Office365 32bit
Folgende(r) 1 Nutzer sagt Danke an EA1950 für diesen Beitrag:1 Nutzer sagt Danke an EA1950 für diesen Beitrag 28
• Wanderfalke
Registriert seit: 19.01.2020
Version(en): 2007
Hallo Anton,
danke für Deine Antwort.
Allerdings möchte ich dies per Makro durchführen - und hier stehe ich vor dem nächsten Problem:
Wie ermittle ich den letzten Zeileneintrag in einer formatierten Tabelle? Im Normalfalle funktioniert bspw. dieser Code ohne Probleme:
Sub letzte_zeile()
Dim letzteZeile As Integer
'Hier wir die letzte Zeile der Spalte A ermittelt
letzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox letzteZeile
End Sub
VG!
Registriert seit: 02.12.2017
Version(en): Microsoft365
Hallo,
wenn du mit "formatierten" Tabelle eine strukturierte Tabelle meinst, die man zB. mit Strg+T einfügen kann:
Eine solche Tabelle schimpft sich im Excel-VBA als ein Objekt vom Klassentyp "ListObject":
ein solches Objekt besitzt eine Reihe von "Sub"-Objekten, aus denen es zusammengesetzt ist (zB.: ListRows, ListColumns). Diese besitzen wieder Range-Objekte.
Ferner hat es auch einen "Name"
Jedes Arbeitsblatt besitzt eine dazugehörige Auflistung "ListObjects", wobei das einzelne ListObject über seine Nummer (ID) bzw. seinen Namen angesprochen werden kann:
zB. ActiveSheet.ListObjects(1) oder ActiveSheet.ListObjects("Tabelle1"), falls "Tabelle1" der Name dieser strukt.Tabelle ist (nicht zu verwechseln mit dem Arbeitsblattnamen!!).
Angenommen im aktiven Arbeitsblatt befinde sich nur eine struktur.Tabelle namens "Tabelle1". Diese kann wie vorhin erwähnt angesprochen werden.
Sie besitzt eine Kopfzeile, die sich im Zellbereich ActiveSheet.ListObjects(1).HeaderRowRange befindet.
Sie besitzt Tabellenzeilen ActiveSheet.ListObjects(1).ListRows, deren Anzahl mit ActiveSheet.ListObjects(1).ListRows.Count ermittelt werden können.
Um zB. die letzte Tabellenzeile der struktur.Tabelle namens "Tabelle1" im aktiven Arbeitsblatt zu entfernen, kann man dies über das folgende Makro tun:
Dim lstObj As ListObject
dim lstRow as ListRow, rngZeile as Range
Dim lstZeilen as Long
set lstObj = ActiveSheet.ListObjets("Tabelle1")
lstzeilen = lstObj.ListRows.Count
set lstRow = lstObj.ListRows(lstZeilen) 'Die letzte Tabellenzeile
lstRow.Delete 'Entfernt die letzte Tabellenzeile
Mit lieben Grüßen
Anton.
Windows 10 64bit
Office365 32bit
Folgende(r) 1 Nutzer sagt Danke an EA1950 für diesen Beitrag:1 Nutzer sagt Danke an EA1950 für diesen Beitrag 28
• Wanderfalke
Registriert seit: 19.01.2020
Version(en): 2007
Hallo EA1950,
besten Dank für deine superverständliche und ausführliche Anleitung! Damit hat es final funktioniert.
VG!