paar Fragen zu Excel

fanatiXalpha

Fleet Admiral
Registriert
Aug. 2011
Beiträge
13.558
Hi

ich hab jetzt 5 Jahre lang nichts mehr mit Excel zu tun gehabt und damals auch nur das Schultypische etwas

aktuell hab ich drei Fragen (geht um Excel in Office 2010):

1.
wie kann ich bei/für ein Diagramm Datenreihen aus- und abwählen, das möglichst bequem und schnell (also nicht immer wieder extra im Menü rumfuchteln usw. sondern vllt. schön schnell mit... Buttons oder Listen zum ankreuzen oder so?)? ich hab bei mir daheim das 2013, da kann man das direkt am Diagramm machen. Aber fürs 2010er weiß ich es nicht und wollte jetzt wissen ob es da auch so ähnlich einfach ist, oder ob ich das irgendwie anders lösen muss.
Das ein-oder ausblenden der Linien im Diagramm soll also nicht dauerhaft sein, sondern nur kurz um damit eine bessere Übersicht zu geben.
wenn nicht so wie in 2013 möglich, dann über Chechboxen oder Togglebuttons? Da könnte ich mich dann weitereinlesen

2.
Namensverlinkung... also ein Dokument mit mehreren Mappen, eine Mappe ist die Übersichtsmappe. Von dieser aus wird auf die anderen verlinkt. Das bloße Verlinken ist nicht das Thema, aber ich möchte an der Verlinkungsstelle andere Namen haben, als die eigentliche Mappe hat.
Der kleine Twist (der aber denke ich mal dabei keine Rolle spielen sollte) ist, dass der Name der da rein soll, sich aus anderen Zellen zusammensetzt

3.
kann ich die Mappen Alphabetisch ordnen, aber so, dass die Übersichtsmappe und ein paar andere immer noch an erster Stelle stehen

danke für eure Hilfe
ich hab etwas im Internet gesucht, aber man muss halt auch die richtigen Schlagworte haben und so detailierte Fragen kann Google noch nicht so gescheit beantworten

EDIT:
Ich habe ein Exceldokument und dafür möchte ich zwei Vorlagen erstellen. Soweit so einfach.
Jetzt möchte ich aber diese beiden Vorlagen an das Exceldokument binden, bzw. besser: ich würde es gerne einbinden.
Nachher will ich nur noch das große Exceldokument haben (ohne extra Templatedateien in einem Templateordner oder dergleichen) wo ich dann für neue Arbeitsblätter eines der beiden Templates auswählen kann.

Geht das überhaupt und wenn ja, wie?

hier mein akutellstes Problem
hab was in VBA geschrieben und dann kommt ein Fehler beim kompilieren
"End Sub erwartet" und das obwohl eins da ist
ich verstehe wohl die Funktionsweise von VBA nicht so ganz

es sieht so aus:
Code:
Private Sub Workbook_Open()

Sub Sortierung_ABs()

Dim i As Integer, j As Integer, k As Integer
 k = ActiveWorkbook.Worksheets.Count
 For i = 8 To k
 For j = 8 To k
 If Worksheets(j).Name < Worksheets(i).Name Then
 Worksheets(j).Move Before:=Worksheets(i)
 End If
 Next j
 Next i

End Sub

End Sub

das ist jetzt nicht alles, aber damit will ich die Arbeitsblätter beim Öffnen des Dokuments sortieren (da soll noch mehr passieren, aber soweit bin ich noch nicht).
Was ist da das Problem?

Und dann noch ne andere Frage: in ein Modul kann ich Code schreiben und dann kann ich dieses Modul immer wieder woanders aufrufen.
Also wie wenn ich eine Klasse erstelle und daraus dann die Objekte
Aber wie schreib ich das dann in VBA?

so, zwei neue Punkte :D

1.
Ich will durch meinen VBA Code Hyperlinks erstellen. Also ich hab ja ein Arbeitsblatt/eine Tabelle und die dient als Vergleichsblatt. Dort kann ich über eine Userform durch Dropdownmenüs zwei Tabellenblätter auswählen.
Jetzt würde ich mir gerne Hyperlinks setzen zu den ausgewählten Blättern, aber das funktioniert nicht so ganz.
Der Code für die Hyperlinks sieht so aus:
Code:
With ThisWorkbook.Worksheets("Comparison")
.Hyperlinks.Add Anchor:=.Range("C3"), _
SubAddress:=ComboBox1.Text, _
ScreenTip:="Link zum Blatt", _
TextToDisplay:=ComboBox1.Text

End With

Dabei kommt dann aber ein Fehler:
"Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft"

Ich versteh nicht so ganz, was da falsch ist...


2.
Ein Grund, warum ich mich hier mit VBA rumschlage, ist es in Diagrammen Datenreihe ein und auszublenden.
Das geht in Office 2013 ganz bequem über das Diagramm-Menü, aber in 2010 ist das noch nicht implementiert.
Meine Idee war jetzt zwei Tabellensätze zu schaffen. Der eine Tabellensatz ist mit den Diagrammen verbunden und enthält nur Wenn-Dann Formeln. In dem anderen Tabellensatz werden die Daten aus anderen Tabellen aus den Tabellenblättern reinkopiert.
Dann setz ich neben das Diagramm drei Buttons hin.

Wenn ich jetzt auf einen Button drücke (das wird ein Togglebutton), dann sollen die Datenreihe ein und ausgeblendet werden.

Mein erster Ansatz war folgender:
Ich drück auf den Button, dadurch wird in einem anderen Feld der Zustand gewechselt (von 1 auf 0 oder andersrum) und dementsprechend reagiert die Wenn-Dann Formel in dem einen Tabellensatz.
Steht eine 1 in dem einen Feld, dann ist das eine Feld gleich dem entsprechend zugewiesenem durch die Wenn-Dann Formel.
Wenn eine 0 steht, dann soll in die Formel ebenfalls eine 0 reinschreiben.

Der Ansatz ist etwas.... verworren bzw. hab ich das Gefühl, es müsste einen kürzeren Weg geben.
Ist dem so?
 
Zuletzt bearbeitet:
Zu 2. + 3.: Du meinst wohl mehrere Arbeitsblätter (Tabs) innerhalb einer Arbeitsmappe(=Excel-Datei)?

Zu 3.:
Link

Die Schleife kannst du dann anpassen, entweder ausnahmen per if hinzufügen oder erst bei index n anfangen (n=erstes nicht an den anfang gestelltes Tabellenblatt)

Am besten wahrscheinlich die Zeile "For i = 1 To k" durch "For i = 5 To k", wenn das 5. Tabellenblatt das erste nicht feste Element ist zum Beispiel.
 
Zuletzt bearbeitet:
Ich frage mich ebenfalls - Mappen oder Blätter?

Zu 1 - da hilft nur eine UserForm in der du selbst eine Horde von Buttons oder Auf-Ab-Schaltern [Wert der Liniendicke z.B.] anlegst um so einzelne Elemente zu greifen.
Ganz klar was das Endresultat des Tuns sein soll wird mir das nicht.

Zu 2 - wiederum VBA und per direktem Verändern der Formalen (was Bezüge ja letztlich sind) das anpassen.
Wiederum wird mir der Zweck dieses Tuns nicht klar.

Zu 3 - erneut VBA… Aber nochmals: was soll dabei rumkommen? Mit Arrays kann ich alles handhaben und in bestimmter Folge, die ich aber mal irgendwo definieren muss, anfassen. Wo wären solche Regeln? Oder kommt Vorsortieren in Frage damit die beschriebene Zählschleife zum Ziel führt?

CN8
 
ja klar, ich meinte Arbeitsblätter -.-

@pcBauer:
ja, das hab ich auch gesehen, wusste aber nicht, obs da noch ne andere Möglichkeit gibt

@cn8:
zu 1.
es sind Diagramme mit einigen Linien. und ich will so wie in 2013 Datensätze aus- und abwählen können
nichts weiter
wenn das in 2010 nachher ebenfalls so einfach möglich ist, dann würde ich das gerne wissen
weiß nicht genau, was dir daran nicht ganz klar sein soll, was das Endresultat sein soll

zu 2.
wieso muss für sowas "einfaches" wieder VBA her?
eine Verlinkung scheint mehr als einfach zu sein
wieso sollte dann sowas wie hier im Forum mit Links und denen einen Namen geben, dann das Ganze schwieriger machen?

zu 3. haben wir ja einen gemeinsamen Nenner
es geht nur darum, dass ein paar Arbeitsblätter vorne bleiben, der Rest wird Alphabetisch sortiert
 
zu 1. ist nicht möglich. Hab hier selber 2010 und es eben getestet - es gibt keinen "einfachen" weg. Find ich selber auch merkwürdig. Sind warscheinlich alles Leute, die nie, der Übersichtlichkeit wegen, bei einem Diagramm mal ein paar Linien ausgeblendet haben. Hier musst du scripts verwenden.


zu 2. entweder mal den link bearbeiten und den titel ändern oder eine grafik verwenden - ist nen einfacher hyperlink...

zu 3. nein. Musst du manuell machen. (Es wird selbst mit scripts sehr kompliziert, da du ja die black/whitelist mit einplanen musst, das wird bullshit, da bist du manuell schneller...)
 
Learning by Doing. Hat bei mir auch so weit funktioniert. :heilig:

Zum Falle 1 fiele mir gerade mal eine Holzhammermethode ein.
An einer gemütlichen warmen Stelle liegen die Rohdaten auf denen die Datenlinien (du weißt was mich meine) beruhen. In jeweils einer Zelle nahe am Diagramm (in Reichweite also) wird eine Marke gesetzt; de luxe sind das Checkboxen und deren zugehörigen Zellen. Simple WENN-Funktionen werten diese Schalterzellen aus und stellen den Originalwert oder einen Leerwert [jetzt frage mich nicht wie das optisch ausgeht…] zur Verfügung - und diese Werte sind dann die dargestellte Diagrammlinie.

Zum Falle 3 - Neben der Reihenfolge selbst könnte unsere angedachte Whitelist eher eine Blacklist der nicht zu behandelnden Blätter sein. Oder wären auch deren Namen ›willkürlich‹?

CN8
 
ja schon, aber ich kenn ja nicht alle (oder eigentlich gar keine) Funktion usw, die da schon hinterlegt ist
also was kann auch aus einer Bibliothek nutzen und was muss ich selber machen
naja, ich werd mich mal durchwühlen

das mit der Sortierung
mir ist aufgefallen, das die Sortierung in dem Dokument doch nicht so durcheinander ist wie gedacht
zudem, wenn ich die Blätter verschiebe und abspeichere, dann bleibt das ja so
dachte das geht da wieder in den Ursprungszustand zurück und ich müsste jedes Mal neusortieren...
mal schauen ob ich das mit dem Sortieren dann überhaupt mache

aber danke cn8 :)
 
fanatiXalpha schrieb:
1.
wie kann ich bei/für ein Diagramm Datenreihen aus- und abwählen, das möglichst bequem und schnell (also nicht immer wieder extra im Menü rumfuchteln usw. sondern vllt. schön schnell mit... Buttons oder Listen zum ankreuzen oder so?)? ich hab bei mir daheim das 2013, da kann man das direkt am Diagramm machen. Aber fürs 2010er weiß ich es nicht und wollte jetzt wissen ob es da auch so ähnlich einfach ist, oder ob ich das irgendwie anders lösen muss.
Das ein-oder ausblenden der Linien im Diagramm soll also nicht dauerhaft sein, sondern nur kurz um damit eine bessere Übersicht zu geben.
wenn nicht so wie in 2013 möglich, dann über Chechboxen oder Togglebuttons? Da könnte ich mich dann weitereinlesen

Als Workaround kannst du dir deine Daten in eine neue Tabelle mit einer Formel ziehen:
Wenn eine Zelle einen Wert enthält (bsp "x") dann übernehme die Werte sonst "0".
Damit wird der Wert bzw die ganze Reihe nicht mehr angezeigt.
(Hoffe das war etwas verständlich beschrieben.)


fanatiXalpha schrieb:
2.
Namensverlinkung... also ein Dokument mit mehreren Mappen, eine Mappe ist die Übersichtsmappe. Von dieser aus wird auf die anderen verlinkt. Das bloße Verlinken ist nicht das Thema, aber ich möchte an der Verlinkungsstelle andere Namen haben, als die eigentliche Mappe hat.
Der kleine Twist (der aber denke ich mal dabei keine Rolle spielen sollte) ist, dass der Name der da rein soll, sich aus anderen Zellen zusammensetzt

Mit der Funktion Hyperlink sollte es klappen (gerade probiert).

=HYPERLINK("[Dateiname.xlsx]'Tabelle1'!A" & ZEILE(B12);"Link")

Den Link kannst du natürl,ich noch weiter mit Funktionen o.ä. zusammenbauen.
 
Zuletzt bearbeitet:
@Knufu:
hey danke
ja, das mit 1. werd ich irgendwie so in der Art lösen

zu 2. Hyperlink: jo, da bin ich dann auch drübergestolptert
wäre auch komisch gewesen, wenn sowas hier möglich ist, aber in Excel nicht :D

EDIT:
push, Frage steht oben im ersten Beitrag drin
 
Zuletzt bearbeitet:
Sind die Vorlagen nur einzelne Arbeitsblätter oder komplette Mappen mit mehreren eigenen Arbeitsblättern?

Und wenn ich die Vorlage auswähle, soll diese dann in eine neue Mappe übertragen werden?

Oder hast du eine Excelmappe die du gerade bearbeitest und möchtest nach belieben, über die Vorlagendatei, ständig neue Arbeitsblätter hinzufügen?


Und wegen VBA: Vieles ist wirklich Learning by Doing.
Der Makrorekorder, sowie die F1 Hilfe und der Objektkatalog (F2) sind gute Hilfen.
Für den Einstieg kann ich auch noch http://www.vba-tutorial.de/index.htm empfehlen.
 
Zuletzt bearbeitet:
oh, es gibt einen Objektkatalog?
das ist gut :)

ne, eine Mappe und dann sollen die Templates als Blätter eingefügt werden
aber ich hab es mir jetzt ganz einfach gemacht und die dann einfach als Blätter vorne eingefügt, als Template gekennzeichnet und dann werde ich die dann immer kopieren

EDIT:
k = ActiveWorkbook.Worksheets.Count
For i = 8 To k
For j = 8 To k

wieso kann ich nicht direkt
8 to ActiveWorkbook.Worksheets.Count
schreiben?
oder geht das doch?
 
Zuletzt bearbeitet:
fanatiXalpha schrieb:
wieso kann ich nicht direkt schreiben?
oder geht das doch?

Schreiben kannst du das, aber es läuft nur auf einen Fehler hinaus. :evillol:
Halte dich an die Syntax und es geht:

For Variable = Startwert To Endwert [Step Zahl]

also beispielsweise

For i = 8 to ActiveWorkbook.Worksheets.Count
 
Zurück
Oben