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

Zähler und Grafik, zeilenweise Aktualisierung?

Zähler und Grafik, zeilenweise Aktualisierung?
27.05.2007 12:41:56
Born
Wertes Kollegium,
ich hänge schwer an folgendem Problem und hoffe auf eure Hilfe.
Wie läßt sich das erreichen:
Userbild
Ziel:
1. Sobald in Spalte A ein neuer Wert eingetragen wird (hier 24), sollen sich Spalte E und F
(Liste der Äpfel und Birnen ohne leere Zellen) aktualisieren. Und zwar dort
wo ich es in dem Beispiel eingetragen habe. Eine Zeile vor der 24, bei 23.
2. Die Grafik soll dynamisch mitwandern und immer auf der Höhe der aktuellen,
letzten Zeile zu sehen sein. Im Beispiel bei Zeile 23.
Läßt sich in der Grafik eine Auswahl für die letzten 20 Werte treffen? Sonst wird ja nach
500 Werten die Grafik immer größer und unübersichtlicher und ich brauche die Grafik-Ansicht
nur für etwa die letzten 20 Werte.
3. Ich besitze bereits fertig eingetragene Tabellen (von "Äpfeln und Birnen"), die bereits 400 Werte enthalten. Gibt es eine Chance, mit dem Cursor zum Beispiel nach Zeile 120 zu gehen und die vorherigen Zahlen aus Spalte E undF und die Grafik so aktuell zu sehen - als ob Zeile 120 die letzte Zeile wäre? Obwohl die ganze Tabelle bereits 400 Werte enthält? Läßt sich das so programmieren, dass
ich von Zeile zu Zeile weiterklicken und die Veränderungen beobachten kann?
Wau, mir ist das alles im Moment noch zu schwierig. Ich hoffe auf euch und freue mich
über jede Anregung.
Liebe Grüße aus Berlin,
Born

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zähler und Grafik, zeilenweise Aktualisierung?
27.05.2007 13:45:00
ingUR
Hallo, Born,
Dein Aufgabenkatalog ist ja reichhaltug, und nach seiner Abarbeitung wirst Du ein scchönes Werkzeug haben, das nicht jeder hat. Jedoch geht das Erstellen einer solchen Anwendung von Null bekonne, über die Beantwortung von Fragen zu EXCEL m.E. weit hinaus, denn natürlich können alle Punkte erledigt werden (wobei ich nicht verstanden habe, nach welchem Algorithmus die Werte der Spalte E und F ermittelt werden) und von Berliner zu Berliner möchte ich auch so mancher Ratschalg geben, doch eine ganze Bedieneroberfläche enstellen?
Hier einmal ein Vorschlag, noch ohne VBA, den Du vielleicht weiterentwickeln kannst:
Born_SequenceCount
Sofern Fragen zu weiteren Schritten bleiben, werde ich mich später versuchen darum zu kümmern.
Gruß,
Uwe

Anzeige
AW: Zähler und Grafik, zeilenweise Aktualisierung?
27.05.2007 18:27:00
Born
Hallo Uwe,
danke für den Hinweis und für die Arbeit, die Du dir gemacht hast.
Ich hätte das vielleicht noch deutlicher ausdürcken müssen. Die Spalten B und C
(wie in Deinem Beispiel) sind nicht das Problem. Relativ einfach zu programmieren. Das hatte ich schon.
Meine Frage richtete sich nach den Spalten E und F, die Sammlung der Daten . Und ich kann die Daten aus B und C natürlich mit einer (relativ einfachen) Array-Formel ohne Leerzeilen nach E und F übertragen lassen. Aber bisher leider nur beginnend in Zeile 1. Dann ansteigend.
Was ich jetzt brauche ist die Darstellung von der aktuellen Zeile (bspw 24) rückwärts. Wie abgebildet.
Also, Darstellung der letzten beispielsweise maximal 50 Zeilen ohne Leerzeichen. So, daß bei neuer Eingabe in Spalte A diese Darstellung "nachrückt". Ich bin mir sicher das ist machbar. Ohne VBA. Und wahrscheinlich nicht mal zu kompliziert. Ich komm im Moment noch nicht selber drauf.
Ebenfalls die Grafik. Die Herstellung der Grafik ist natürlich kein Problem. Ich brauche aber eine Grafik,
die sich mit der aktuellen Zeile "mitbewegt". Ob das ohne VBA machbar ist? Hier habe ich meine Zweifel.
Und die dritte Frage ist wahrscheinlich schon so speziell, daß ich sie gar nicht nochmal erwähnen will, wenn schon die ersten beiden offensichtlich so schwierig zu beantworten sind.
Ich hoffe trotzdem, daß mir noch jemand dabei helfen kann.
Herzliche Grüße,
Born

Anzeige
AW: Zähler und Grafik, zeilenweise Aktualisierung?
27.05.2007 20:11:00
Christian
Hallo Born,
mal als Ansatz:
Tabelle1

 ABCDEFG
1  ApfelBirneÄpfelBirnen0
21Apfel1   1
32Birne    0
43Birne    -1
54Birne    -2
65Birne 4  -3
76Apfel    -2
87Apfel    -1
98Apfel    0
109Apfel4   1
1110Birne    0
1211Birne 2  -1
1312Apfel1   0
1413Birne    -1
1514Birne    -2
1615Birne    -3
1716Birne    -4
1817Birne    -5
1918Birne    -6
2019Birne 7  -7
2120Apfel1   -6
2221Birne    -7
2322Birne  14-8
2423Birne 342-9
2524Apfel1 17-8
2625Birne  13-9
2726Birne 212-10
28       

Formeln der Tabelle
ZelleFormel
E2{=WENN(UND(ZEILE()<=VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE(); "";INDEX($C$2:$C$1000;KGRÖSSTE(WENN($C$2:$C$1000<>"";ZEILE($2:$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE())-1)); "")}
F2{=WENN(UND(ZEILE()<=VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE(); "";INDEX($D$2:$D$1000;KGRÖSSTE(WENN($D$2:$D$1000<>"";ZEILE($2:$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE())-1)); "")}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
MfG Christian

Anzeige
Kleine Ergänzung
27.05.2007 20:18:35
Christian
Hallo Born,
Bsp:
Tabelle1

 ABCDEFG
1  ApfelBirneÄpfelBirnen0
21Apfel1   1
32Birne    0
43Birne    -1
54Birne    -2
65Birne 4  -3
76Apfel    -2
87Apfel    -1
98Apfel    0
109Apfel4   1
1110Birne    0
1211Birne 2  -1
1312Apfel1   0
1413Birne    -1
1514Birne    -2
1615Birne    -3
1716Birne    -4
1817Birne    -5
1918Birne    -6
2019Birne 7  -7
2120Apfel1   -6
2221Birne    -7
2322Birne  14-8
2423Birne 342-9
2524Apfel1 17-8
2625Birne  13-9
2726Birne 212-10

Formeln der Tabelle
ZelleFormel
A2=WENN(B2="";"";ZEILE(A1))
C2{=WENN(ODER(UND(B2=$C$1;B2<>B1;B2<>B3); UND(B2=$C$1;B2=B1;B2<>B3)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B2=$D$1;ZEILE($2:2)))+1&":B"&MAX(WENN($B$2:B2<>$D$1;ZEILE($2:2)))); $C$1); "")}
D2{=WENN(ODER(UND(B2=$D$1;B2<>B1;B2<>B3); UND(B2=$D$1;B2=B1;B2<>B3)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B2=$C$1;ZEILE($2:2)))+1&":B"&MAX(WENN($B$2:B2<>$C$1;ZEILE($2:2)))); $D$1); "")}
E2{=WENN(UND(ZEILE()<=VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE(); "";INDEX($C$2:$C$1000;KGRÖSSTE(WENN($C$2:$C$1000<>"";ZEILE($2:$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE())-1)); "")}
F2{=WENN(UND(ZEILE()<=VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE(); "";INDEX($D$2:$D$1000;KGRÖSSTE(WENN($D$2:$D$1000<>"";ZEILE($2:$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE())-1)); "")}
G2=WENN(B2="";"";G1+WENN(B2=$C$1;1;WENN(B2=$D$1;-1;0)))
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Zur Grafik habe ich leider keine Idee, da ich nicht so bewandert bin mit VBA und wahrscheinlich ohne dies nicht lösbar ist.
MfG Christian

Anzeige
AW: Kleine Ergänzung
27.05.2007 22:02:34
Born
Lieber Christian,
ich weiß ja nicht, wie Du mich mit meinen Problömchens immer findest, aber irgendwie schaffst Du's
immer. Wenn Du in Berlin wärst, würde ich Dir grade gern mal einen dafür ausgeben. Falls es bei
Dir ein Leben außerhalb des Forums gibt.
Ich kaue noch an Deiner letzten Lösung herum und schon legst Du mir die nächste Nummer hin.
Einfach klasse.
Ich weiß nicht, wie ich mich noch bedanken soll: Gracias muchas, oder so...
Gruß,
Marlon

AW: Noch eine kleine Ergänzung
27.05.2007 22:37:37
Born
Lieber Christian,
die Formeln funktionieren gut, bis auf einen kleinen Haken:
Wenn die letzte Eintragung "Birne" lautet ist alles ok, wenn
sie "Apfel" lautet, kommt in Spalte F (Birnen) vor der obersten
zahl ein #ZAHL!-Fehler. Offensichtlich mag er keine Äpfel?
Gruß,
Born

Anzeige
AW: Noch eine kleine Ergänzung
27.05.2007 23:04:00
Christian
Hallo Marlon,
da war der Fehlerteufel vom kopieren noch drin,
In Spalte F bei Anzahl natürlich auch der Bereich der Birnen, also Spalte D abfragen.
Tabelle1

 ABCDEFG
1  ÄpfelBirnenÄpfelBirnen0
21Birnen 1  -1
32Äpfel    0
43Äpfel2 211

Formeln der Tabelle
ZelleFormel
A2=WENN(B2="";"";ZEILE(A1))
C2{=WENN(ODER(UND(B2=$C$1;B2<>B1;B2<>B3); UND(B2=$C$1;B2=B1;B2<>B3)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B2=$D$1;ZEILE($2:2)))+1&":B"&MAX(WENN($B$2:B2<>$D$1;ZEILE($2:2)))); $C$1); "")}
D2{=WENN(ODER(UND(B2=$D$1;B2<>B1;B2<>B3); UND(B2=$D$1;B2=B1;B2<>B3)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B2=$C$1;ZEILE($2:2)))+1&":B"&MAX(WENN($B$2:B2<>$C$1;ZEILE($2:2)))); $D$1); "")}
E2{=WENN(UND(ZEILE()<=VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE(); "";INDEX($C$2:$C$1000;KGRÖSSTE(WENN($C$2:$C$1000<>"";ZEILE($2:$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE())-1)); "")}
F2{=WENN(UND(ZEILE()<=VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))-ZEILE()<=19); WENN(ANZAHL($D$2:$D$1000)<VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE(); "";INDEX($D$2:$D$1000;KGRÖSSTE(WENN($D$2:$D$1000<>"";ZEILE($2:$1000)); VERWEIS(2;1/($B$1:$B$1000<>""); ZEILE($B$1:$B$1000))+1-ZEILE())-1)); "")}
G2=WENN(B2="";"";G1+WENN(B2=$C$1;1;WENN(B2=$D$1;-1;0)))
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
MfG Christian

Anzeige
AW: Noch eine kleine Ergänzung
28.05.2007 13:16:00
Born
Danke, Christian, jetzt klappt es.
Bei der Bearbeitung ist mir aufgefallen, daß ich hin und wieder mit leerzeilen zu tun habe.
Ich könnte zwar die Spalte in einer zweiten Spalte mit einer Array-Formel ohne die Leerzeilen
darstellen lassen, aber in diesem Fall wäre das äußerst unpraktisch. Weil ich die Position der
Leerzeilen brauche. Wäre es möglich, die in der Äpfel-Spalte die Summenzahlen zu bekommen
ohne daß die Leerzellen mitgerechnet werden. Das heißt
Apfel
leer
Apfel
Apfel Ergebnis: 3
statt:
Userbild
Sorry, ich brauch immer noch etwas länger.
Gruß,
Born

Anzeige
AW: Noch eine kleine Ergänzung
28.05.2007 16:25:35
Christian
Hallo Born,
war etwas schwierig, aber sollte klappen:
Tabelle1

 ABCDEFG
1  ÄpfelBirnenÄpfelBirnen0
21Äpfel    1
32Äpfel    2
4       
53Äpfel    3
64Äpfel4   4
7       
85Birnen    3
9       
106Birnen    2
117Birnen 3  1
12       
138Äpfel1   2
149Birnen    1
1510Birnen 2  0
1611Äpfel    1
17       
1812Äpfel    2
1913Äpfel    3
20       
2114Äpfel4 434
22    12 
2315Birnen 1413

Formeln der Tabelle
ZelleFormel
A2=WENN(B2="";"";ZEILE(A1))
C2{=WENN($B2="";"";WENN(UND(ZEILE()<>ZEILE(letzter_2); SVERWEIS(MIN($A3:letzter_2); $A3:letzter_2;2;0)=B2); "";WENN(ODER(UND(B2=$C$1;B2<>B1;B2<>B3); UND(B2=$C$1;B2=B1;B2<>B3)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B2=$D$1;ZEILE($2:2)))+1&":B"&MAX(WENN($B$2:B2<>$D$1;ZEILE($2:2)))); $C$1); "")))}
D2{=WENN($B2="";"";WENN(UND(ZEILE()<>ZEILE(letzter_2); SVERWEIS(MIN($A3:letzter_2); $A3:letzter_2;2;0)=B2); "";WENN(ODER(UND(B2=$D$1;B2<>B1;B2<>B3); UND(B2=$D$1;B2=B1;B2<>B3)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B2=$C$1;ZEILE($2:2)))+1&":B"&MAX(WENN($B$2:B2<>$C$1;ZEILE($2:2)))); $D$1); "")))}
E2{=WENN(UND(ZEILE()<=ZEILE(letzter_2); ZEILE(letzter_2)-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<ZEILE(letzter_2)+1-ZEILE(); "";INDEX($C$2:$C$1000;KGRÖSSTE(WENN($C$2:$C$1000<>"";ZEILE($2:$1000)); ZEILE(letzter_2)+1-ZEILE())-1)); "")}
F2{=WENN(UND(ZEILE()<=ZEILE(letzter_2); ZEILE(letzter_2)-ZEILE()<=19); WENN(ANZAHL($D$2:$D$1000)<ZEILE(letzter_2)+1-ZEILE(); "";INDEX($D$2:$D$1000;KGRÖSSTE(WENN($D$2:$D$1000<>"";ZEILE($2:$1000)); ZEILE(letzter_2)+1-ZEILE())-1)); "")}
G2=WENN(B2="";"";G1+WENN(B2=$C$1;1;WENN(B2=$D$1;-1;0)))
A3=WENN(B3="";"";MAX($A$2:A2)+1)
C3{=WENN($B3="";"";WENN(UND(ZEILE()<>ZEILE(letzter_2); SVERWEIS(MIN($A4:letzter_2); $A4:letzter_2;2;0)=B3); "";WENN(ODER(UND(B3=$C$1;B3<>B2;B3<>B4); UND(B3=$C$1;B3=B2;B3<>B4)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B3=$D$1;ZEILE($2:3)))+1&":B"&MAX(WENN($B$2:B3<>$D$1;ZEILE($2:3)))); $C$1); "")))}
D3{=WENN($B3="";"";WENN(UND(ZEILE()<>ZEILE(letzter_2); SVERWEIS(MIN($A4:letzter_2); $A4:letzter_2;2;0)=B3); "";WENN(ODER(UND(B3=$D$1;B3<>B2;B3<>B4); UND(B3=$D$1;B3=B2;B3<>B4)); ZÄHLENWENN(INDIREKT("B"&MAX(WENN($B$2:B3=$C$1;ZEILE($2:3)))+1&":B"&MAX(WENN($B$2:B3<>$C$1;ZEILE($2:3)))); $D$1); "")))}
E3{=WENN(UND(ZEILE()<=ZEILE(letzter_2); ZEILE(letzter_2)-ZEILE()<=19); WENN(ANZAHL($C$2:$C$1000)<ZEILE(letzter_2)+1-ZEILE(); "";INDEX($C$2:$C$1000;KGRÖSSTE(WENN($C$2:$C$1000<>"";ZEILE($2:$1000)); ZEILE(letzter_2)+1-ZEILE())-1)); "")}
F3{=WENN(UND(ZEILE()<=ZEILE(letzter_2); ZEILE(letzter_2)-ZEILE()<=19); WENN(ANZAHL($D$2:$D$1000)<ZEILE(letzter_2)+1-ZEILE(); "";INDEX($D$2:$D$1000;KGRÖSSTE(WENN($D$2:$D$1000<>"";ZEILE($2:$1000)); ZEILE(letzter_2)+1-ZEILE())-1)); "")}
G3{=WENN(B3="";"";INDEX($G$2:G2;MAX(WENN($G$2:G2<>"";ZEILE($1:1))); 0)+WENN(B3=$C$1;1;WENN(B3=$D$1;-1;0)))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Namen in Formeln
ZelleNameBezieht sich auf
C2letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
D2letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
E2letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
F2letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
C3letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
D3letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
E3letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))
F3letzter_2=INDIREKT("Tabelle1!$B$"&VERWEIS(2;1/(Tabelle1!$B$1:$B$1000<>"");ZEILE(Tabelle1!$B$1:$B$1000)))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
MfG Christian

Anzeige
Danke sehr!
28.05.2007 23:10:00
Born
Lieber Christian,
ich habs nachgebaut und als ich den Namen eingebaut hatte
und die Zuordnungen funktionierten, das war ein kleines Freudenfest!
Es wird wohl noch ein Weilchen dauern, bis ich das, was Du mir hier
vorgesetzt hast, soweit gelernt habe, daß ich es auch selber bauen
könnte. Ich habe viel gelernt.
Ich bedanke mich sehr sehr sehr.
Born

AW: Zähler und Grafik, zeilenweise Aktualisierung?
27.05.2007 20:46:00
ingUR
Hallo, Born,
nun erkenne ich auch, was Du in den Spalten E und F darstellen willst, und ich meine, dass Du dieses ohne VBA wohl nicht leicht erreichen wirst (Christians Array-Formeln zeigen es), da Du ja im Fall von Leerzellen in den Spalten C und D das bisher beschreibene "Feld" der Spalten E und F nach unten verschieben mußt, den Bereich Range(RC:R[x]C[+1]) nach Range(R[+1]C:R[x+1]C[1]). Das ist als VBA-Code in einer Zeile zu schreiben.
Wie man erreicht, das der Graph im Diragramm dynamisch sich erweitert, habe ich Dir in der gelieferten Beispieldatei gezeigt und war auch hier schon des öfteren Thema. Die Grundidee ist der Einsatz eiunes Namensbereich (Menüpunkt Einfügen::Namen::Definieren... und dort die Formel zum Namen sc1 studieren, wobei es noch andere Möglichkeiten gibt, z.B. unter dem Einsatz der Funktion BEREICH.VERSCHIEBEN)
Eine "Auswahl" der letzten 20 Werte läßt sich wohl treffen, man muß eben nur auch den Anfangszeilenwert Variable halten, ihn von der letzten Position abhängig machen:
  • Letzter Wert der Spalte H: =ANZAHL2($H:$H)
  • Zeile des 20. Wert davor: =ANZAHL2($H:$H)-20+1 (einschl. der "Randwerte")
    Um nun zu vermeiden, das keine negatives Ergebnis als erste Zeile eingesetzt wird, ist ein Vergleich mit der kleinsten möglichen Zeilenzahl der Datenreihe erforderliche:
  • Zeile des 20. Wert davor, sofern nicht erste Datenzeilenummer größer ist: =MAX(2;ANZAHL2($H:$H)-20+1) (einschl. der "Randwerte"; Datenreihe beginnt in Zeile 2)
    Was jedoch nach meinem Kenntnisstand nur über VBA zu lösen ist, ist die Funktionalität, nach der aktiven Zelle der Spalte A den Startpunkt des Diagramms zu setzen, es sei denn, Du richtest eine Hilfsspalte ein, die z.B. ein Sternzeichen aufnimmt, um so in den oben besprochenen Namensformeln die aktuelle Zeile, die als z.Z. letzte Graph-Datenzeile dienen soll, zu ermitteln.
    Wenn Du also z.B. die Spalte I dafür nutzt, so kannst Du mit der Funktionsformel =VERGLEICH("*";I:I) die Zeilennummer ermiitteln, die für den Graphen den letzter Wert liefert.
    Die Namensformel könnte damit so geschrieben werden:
    =INDIREKT("'Tabelle1'!$G$"&MAX(2;VERGLEICH("*";Tabelle1!$H:$H)-19)&":$G$"&VERGLEICH("*"; Tabelle1!$H:$H))
    Es gibt aber auch noch weit komfortablere Möglichkeiten in einem Diagramm zu navigieren, nämlich mit den eingebetteten Steuerelement ScrollBar
    Da Du jedoch für Dein Vorhaben, die Lage des eingebetteten Diagramms an einer Zellenkante auszurichten, wird Dir eh nichts anderes übrig bleiben, als auf VBA auszuweichen. Nun schreibst Du allerdings unter der Levelangabe "VBA nein", so dass ich nicht sicher bin, ob Du auf diesen Weg geschickt werden möchtest.
    Gruß,
    Uwe

  • Anzeige
    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    27.05.2007 21:59:00
    Born
    Hallo Uwe,
    danke daß Du es Dir nochmals angeschaut hast und weiter mitdenkst. Die Sache ist mir wichtig und
    wenn es denn sein soll, werde ich VBA auch noch lernen. (Eigentlich wollte ich gar nicht so tief in
    Excel einsteigen).
    Könntest Du mir mit der Scroll-Sache helfen? Wie kann ich zum Beispiel die Grafik auf dem Bildschirm
    ungefähr rechts unten darstellen, egal wo ich hinscrolle? Und, falls ja, könntest Du es mir bitte so erklären,
    oder vorbereiten, daß ich es als Anfänger begreife?
    Nochmals, herzlichen Dank,
    Gruß,
    Born

    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    27.05.2007 22:34:02
    ingUR
    Hallo, Born,
    hast Du die Sache mit dem Bereichsnamen "sc1" soweit erkannt, dass Du die Erweiterung bezogen auf die zwanzig letzten Werte im Diagramm umsetzen konntest, denn darauf baue ich die VBA-Lösung auf, um nicht zu weit ausholen zu müssen, wenn es um die Datenquellen von Charts und VBA geht.
    Unter dem gleichen Namen wie zuvor, nämlich Born_SequenceCount.xls, habe ich die um zwei mögliche Vorgehensweisen bezogen auf die Diagrammbehandlung erweiterte Arbeitsmappe abgelegt, wobei ich für die Spalte E und F Christians Zellenlösung eingestzt habe.
    Ohne nun lange VBA zu erklären (kann ich bei interesse später tun), ist die VBA-Lösung so entworfen, dass bei Anklicken eines Datumswertes in der Spalte A, das Diagrammfenster an enstprechender Psition gebracht wird. Die dargestellten Datenpunkte werden durch den Namensbereich sc01 definiert un im Programm gesetzt.
    Der zweite Weg zeigt die Möglichkeit mit der Hilfspalte zur Bestimmung der "aktuellen" Zeile für den letzten Diagrammpunkt an. Die hinterlegte Formel des Namensbereichs sc1 verwendet den Ansatz der zuvor beschrieben wurde.
    Über die Einrichtung der Zeilenhöhe der Zeile 1 so, dass das Diagramm in diese hinein gelegt werden kann, ist es bei Fixierung möglich, das Diagramm immer im Blickfeld zu haben, so dass die Hilsspaltenlösung eingesetzt werden kann, ohne dass eine VBA-Zeile notwendig wird.
    Ich hoffe das der Zusammenbau beider Lösungen auf ein Tabellenblatt nicht allzu unübersichtlich wird, so dass Du Dich für eine von beiden Vorgehensweisen entscheiden kannst.
    Gruß,
    Uwe

    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    27.05.2007 23:11:00
    Born
    Hallo Uwe,
    hab's gerade mal auf die Schnelle ausprobiert - noch nicht kapiert - und wenn Du könntest,
    würdest Du mich vor Freude grinsen sehen. Phantastisch, was alles geht! Morgen schau
    ich genauer drauf.
    Vielen Dank, nach Berlin,
    Born

    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    28.05.2007 12:14:00
    ingUR
    Hallo, Born,
    bisher hast Du nicht erkennen lassen, wie weit Dein "EXCEL gut" nun reicht, speziell, ob Du die Sache mit dem Namensbereich nachvollziehen konntest, denn die Technik mit dem Schiebebalken baut auf den Bezug zwischen Namen und verlinkten Zellenwert auf.
    Hier die "handwerklichen" Vorgehensweisen zu beschreiben, könnte man sich ersparen, wenn das Wissen bereits vorhanden ist. Ebenso verhält es sich mit der Anordnung und Einrichtung der Eigenschaften von Steuerelementen, hier namentlich des Schiebebalkens (ScrollBar).
    Zum Einstieg in die Technik mit dem Schiebebalken habe ich hier das Grundgerüst für die Lösung ohne VBA (wieder unter verwendung der Zellenformeln in den Spalten E und F von Christian) hochgeladen:
    Born_SequenceCount_OhneVBA.xls
    Weitere "Komfortabilität" sind ohne Makros nach meinem Kenntnisstand nicht zu erreichen, insbesondere das variable Setzen der Max-Eigenschaft des Schiebebalkens, die hier mit fester Größe vorgegeben ist und nicht dynamisch sich an die vorhandene Anzahl der Werte anpaßt.
    Die VBA-Lösung ist soweit erstellt, dass sie die gleiche Funktionalität bezüglich des dynamischen aufbau des Graphen aufweist wie die Schiebebalkenlösung ohne VBA, allerdings auf ein Kurs-Diagramm abgestellt (hier SPX-Aktienindex; bitte um Verständnis, dass hier nur auf eine Rohfassung hingewiesen werden kann, die noch erweitert werden sollen, zumal der VBA-Grundstein bereits in der ersten Mappe enthalten war; an dieser Stelle schönen Dank, Born, für die Idee, ein lagegebundenes Diagramm zu erstellen!) :
    ZellengebundenesDiagramm.xls
    Nun bitte ich Dich zu entscheiden, welchen Weg Du beschreiten möchtest, was wohl auch von Deiner Aufgabe abhängen wird, bei der die Arbeiten rund um die Diagrammdarstellung wohl nicht die Hauptzeit beanspruchen soll, obwohl das Verlagern der Zellenformel in den VBA Code auch Vorteil haben kann (so das Kopieren von Zellenformeln beim Fortschreiben der Daten).
    Gruß,
    Uwe

    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    28.05.2007 13:32:48
    Born
    Hallo Uwe,
    danke fürs Mitdenken und den Vorschlag ohne VBA, aber Deine VBA-Grafik, die mitläuft hat
    mich schon längst überzeugt. Es gefällt mir sehr gut so. Ich muß mich da nur noch etwa mehr
    einarbeiten. Ich sitze gerade schon wieder drei Stunden dran und lerne...
    Ich hab noch zwei Bitten, die für Dich möglicherweise nicht sehr schwierig zu erfüllen sind (ich hoffe):
    1. Mach mir doch die Grafik bitte so, daß sie nicht hinter sondern
    VOR der angeklickten Zelle aus der A-Spalte liegt
    2. Falls das geht, würde mich freuen, wenn sich beim Anklicken der
    Zelle in Spalte A nicht nur die Grafik an die Stelle bewegt, sondern
    auch die Summen-Zahlen aus Feld E und F dort zu sehen wären.
    Ich hab das mal in eine Darstellung gepackt. Hier ist sie:
    Userbild
    (stell Dir vor, es wären in Spalte A noch mehr Daten eingetragen und wir
    wären mit der Grafik irgendwo in der Mitte des Datenblattes. Es macht auch
    nichts, daß die Zahlen gerade nicht stimmen. Es geht nur um die Optik)
    Ließe sich das machen?
    Danke und Gruß,
    Born

    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    28.05.2007 20:36:00
    ingUR
    Hallo, Born,
    geahnt habe ich schon, dass das Ganze wohl auf mehr als nur auf Frage-Beantwortung hinausläuft, als ich in meiner ersten antwort schrieb: «Dein Aufgabenkatalog ist ja reichhaltug [...]. Jedoch geht das Erstellen einer solchen Anwendung, von Null begonnrn, über die Beantwortung von Fragen zu EXCEL m.E. weit hinaus,».
    Da wäre es schon vielleicht motivierend zu wissen, wozu Du die Lösung benötigst, denn ohne Eigenleistung, nur "für'n Appel und 'ner Birne", wird wohl eine Lösung nicht zu erstellen sein.
    Da wäre es auch schön zu erfahren, wie die bisherigen Hinweise weiterverarbeitet und weiterentwicklet werden konnten, denn nur diese Rückmeldung zeigt doch,worauf man bei weiteren antworten achten muß.
    Natürlich könnte man Deine Aufgabe her nehmen und an ihr exemplarische Bereiche aus der Programmierung mit VBA-EXCEL lehren, doch dafür sind Schulungen wohl besser geeignet als ein Forum.
    Diese Anmerkungen von meiner Seite nur deswegen, da ich trotz Nachfrage (Anwendung von Namensbereichen, Steuerelement Schiebebalken) bisher noch keine Anwort dazu von Deiner Seite bekommen habe und auch bisher aus Deinen Vorstellungen nicht wirklich ableiten kann, wie Deinen Kenntnisstand nun ist, wie und was erklärt werden sollte.
    Die Besonderheit, dass nun Leerzeilen in der Datenreihe zu berücksichtigen sind, ist ein Aspekt, der auch im Vorfeld der Aufgabenstellung zu benennen ist (NB.: ausdrücklich hast Du in Deinem ersten Beitrag darauf verwiesen, dass die Liste der Spalte B ohne Leerzeilen ist - , denn so mancher Ansatz könnte gleich verändert aufgebaut werden. Was nun jedoch wohl ärgelich ist, ist, das Christians komplexen wie genialen Formeln in einem VBA-Programm nicht mehr erforderlich sind, unabhängig davon, dass Dein Wunsch, den Werteblock in Spalte E und F an der aktiven Zelle der Spalte A zu verankern, eine erneute überarbeitet erforderlich werden ließe.
    Bezüglich dieser letztgenannten Teilaufgabe und der Positionierung eines Diagramms greifen die Anmerkungen des vorletzten Absatzes. Da Deine Angabe "VBA nein" war, kann Dir wohl heute nur die fertige Lösung etwas bringen; doch es ist wohl leicht einzusehen, dass dieses so nicht ohne Deine Zu- und Weiterarbeit funktioniert.
    Hast Du den VBA-Code Dir angeschaut? Kann ich mir die Besprechnung der groben Gliederung des VBA-Editors ersparen, oder sind die verschiedenen Modularten nicht bekannt? Kannst Du Dir die Mappe, Tabellen, Zelle und Bereiche als Objekte der EXCEL-Anwendung vorstellen, die ihrerseits jede für sich über Methoden und/oder Eigenschaften verfügen?
    Na, gut, wagen wir eine Start und schauen, was daraus wird (ggf. bitte Kontag über die Seite www.markt-daten.de mit mir aufnehmen, falls sich diese Plattform für die "Schulung" nicht eignet.
    Die Einbindung eines Standard-Moduls im Codefenster des VBA-Editors dürfte ohne besondere Probleme gelingen ( vom Tabellenfenster mit [Alt}[F11] im Projekt zur Arbeitsmappe ein Modul einfügen und mit [F7] das Codefenster öffnen, wenn es noch nict geöffnet ist.Dort hinein ist folgender Programmcode einzufügen:
    Option Explicit Sub SequenceCount() Dim maxR As Long, r As Long, anz As Long, rngC As Range Dim K1 As String, anzK1 As Long, iK1 As Long Dim K2 As String, anzK2 As Long, iK2 As Long Dim sumK As Long, prevK As Long, i As Long K1 = "Äpfel": iK1 = 1 K2 = "Birnen": iK2 = 1 maxR = Cells(Rows.Count, 1).End(xlUp).Row r = Cells(1, "H") Range("E2:G" & maxR).ClearContents ReDim seqK1(r) As Long, seqK2(r) As Long For Each rngC In Range("B2:B" & r) If rngC.Value = K1 Then If prevK = -1 And seqK2(iK2) > 0 Then iK2 = iK2 + 1 seqK1(iK1) = seqK1(iK1) + 1 'anzK1 sumK = sumK + 1 Cells(rngC.Row, "G") = sumK prevK = 1 ElseIf rngC.Value = K2 Then If prevK = 1 And seqK1(iK1) > 0 Then iK1 = iK1 + 1 seqK2(iK2) = seqK2(iK2) + 1 sumK = sumK - 1 Cells(rngC.Row, "G") = sumK prevK = -1 End If Next rngC If seqK1(1) > 0 Then If seqK1(iK1) = 0 Then iK1 = iK1 - 1 For i = iK1 - 1 To 0 Step -1 Cells(r - i, "E") = seqK1(iK1 - i) Next i End If If seqK2(iK2 - 1) > 0 Then If seqK2(iK2) = 0 Then iK2 = iK2 - 1 For i = iK2 - 1 To 0 Step -1 Cells(r - i, "F") = seqK2(iK2 - i) Next i End If End Sub

    Erneutes Betätigen der Tastenkombination [Alt][F11] führt in die Arbeitsmappe zurück. Hier legst Du bitte eine neue Tabelle an, in der Du nur die Spalten A und B der bisherigen Arbeitstabelle kopierst, so dass im weiteren Verlauf der Übung, Christians Formeln nicht zerstört werden.
    Eine weitere Vorarbeit für diesen ersten Bearbeitungsstand der, dass du in die Zelle H1 z.B. den Wert 13 einschreibst. Dieser Wert bezeichet die Zeilennummer, die später als aktive Zeile erkannt werden soll.
    Diese so eingerichtete Tabellenblatt ist nun das Aktive und Du kannst mit [Alt][F8] das Makromenü aufrufen. Hier wählst Du den "Makro"-Namen, der dem VBA-Programm gegeben wurde und läßt diese Rountine ausführen.
    Das Ergebnis sollte die wie gewollt gefüllten Spalten E2:G13 sein, wobei zu beachten ist, das die Spalten C und D nicht mehr benötigt werden. Je nach zulässigem Eintrag in Zelle H1, werden die Zeilen der Spalte E bis G gefüllt.
    Was im einzelnen passiert, kannst Du verfolgen, wenn du beim Aufruf des Makros die "Schritt-"Ausfühung anwählst. Das VBA-Editorfenter öffnet sich und mit der Taste [F8] wird erreicht, dass die momentan gelb unterlegte Zeile abgearbeitet wird. Weitere Möglichkeiten während der Schrittweisen Ausführung findest Du im VBA-Menu "Debuggen". Insbeonder ist noch der Hinweis wichtig, dass Du durch Anfahren einzelner Variablen oder Ausdrücke (Formeln) ein Infofenster erhältst, das den momentanen Wert der Variablen bze. des ausdrucks anzeigt. Aber auch das "Lokal-Fenster" aus dem Menüpunkt ""Ansichten" zeigtden Wertestand der deklarierten Variablen
    Es wir Dir schnell möglich sein, die Ergebniswerte nicht in den Spalten E bis G sonder in die Spalten C bis E, da diese ja nicht mehr benötigt werden.
    Mit diesem ersten Schriitt bist Du kurz davor, auch den Graphen und die Position eines Diagramms in Abhängikeit von der aktiven Zelle zu gestalten.Jedoch dazu fehlen ein paar grundlegende Dinge, die wir noch nicht besprochen haben, so dass du ohne geeignete Vorlage diesen Versuch noch nicht starten solltest.
    Nun hoffe ich das der Test nicht das Forumsformat sprengt und die ganze Arbeit verschwindet.
    Gruß,
    Uwe

    AW: Zähler und Grafik, zeilenweise Aktualisierung?
    28.05.2007 23:30:03
    Born
    Lieber Uwe,
    daß von mir so wenig konkrete Rückmeldung kam, lag nicht daran, daß ich faul bin oder etwas
    für lau abstauben will. Es ist ganz einfach so, daß mich die Angaben bis hierher extrem gefordert,
    um nicht zu sagen, überfordert haben. Ehrlich gesagt, wollte ich zuerst etwas nacharbeiten, um
    nicht ganz dumm dazustehen. Nun hast Du es in der letzten Mail angesprochen und ich muß wohl
    zugeben, daß ich mich mit VBA gar nicht auskenne. Deshalb habe ich mir heute drei Bücher besorgt,
    und werde mich jetzt darum kümmern, mir die Grundlagen in kürzester Zeit draufzuarbeiten.
    Es tut mir leid, wenn ein anderer Eindruck entstanden ist.
    Ich möchte nochmals sagen, wie dankbar ich für die Vorschläge bin und bitte um Verständnis, daß
    ich mir jetzt ein paar Tage Zeit nehme, um VBA zu lernen.
    Wozu ich diese Tabelle brauche erkläre ich Dir dann gern in privaterem Rahmen, dazu ist mir das Forum zu öffentlich.
    Liebe Grüße nach Berlin,
    Born

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige