Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Fitty87 am März 30, 2013, 09:12:25 Vormittag

Titel: Office 2007: VBA-Hilfe Tabellennamen lesen und selektieren.
Beitrag von: Fitty87 am März 30, 2013, 09:12:25 Vormittag
Hallo  Leute!

ich möchte gerne via VBA folgendes machen:

- In der Tabelle "Start" in der Zeile "Q16" steht z.B. der Text "Tabelle3".
- Jetzt soll beim ausführen des Makros die Tabelle3 (die schon vorhanden ist) gelöscht werden (Tabelle3 asoll ausgelesen werden)
- Danach soll eine neue Tabelle3 angelegt werden (Der Name soll halt aus der o.g. Zelle gezogen werden)
- anschließend alle Werte aus der Tabelle "lfd. " kopieren
- und diese in diese neue Tabelle einfügen.

Hab leider keine VBA-Kenntnisee. Ist sowas möglich?
Vielen Dank im Voraus schon mal und frohe Ostern!

lg Sascha
Titel: Antw:Office 2010: VBA-Hilfe Tabellennamen lesen und selektieren.
Beitrag von: gmg-cc am März 30, 2013, 11:53:22 Vormittag
Hallo Sascha,

ich gehe davon aus, dass du die Datei vorliegen und zur Verfügung hast. Es ist in meinen Augen müßig und vertane Zeit, das ganze nachzubauen. Ich nutze die Zeit und Mühe lieber darauf, gezielt zu helfen. Also stelle bitte eine Datei -gerne mit anonymisierten Daten- hier ein.
Titel: Antw: Office 2007: VBA-Hilfe Tabellennamen lesen und selektieren.
Beitrag von: Fitty87 am März 30, 2013, 16:55:53 Nachmittag
Ok, allerdings kann ich nur eine extrem abgespeckte Version online stellen, weil das Max zum hochladen begrenzt ist.

Grundprinzip:
Es geht um Fussballspiele. In der Tabelle "lfd. Saison" steht immer nur die aktuelle Saison. Ist diese fertig. werden die Werte aus der Tabelle "lfd. Saison" mittels Marko in die Tabelle1 (für die erste abegschlossene Saison, in Tabelle2 für die zweiter usw.) kopiert.

Details:
In der Tabelle "Start", in der Zelle "Q14" wird nach dem kopieren automatisch ermittelt, wieviele Saison gespielt wurden.

bisheriges Makro:
bisher hatte ich ein Makro, dass mit Hilfe der schon gespielten Saisons eine neue Tabelle anlegt und die jeweils halt "Tabelle1", "Tabelle2" usw. nennt und dort die Werte enfügt

Hauptproblem:
In der Tabelle "lfd. Stats" möchte ich Statistiken auswerten, die mittels SUMMEWENN_Formel über alle Tabellenblätter ermittelt werden sollen. Ich glaub das geht nur mit den geschweiften Klammern (Array) und diese Formeln funktionieren nur, wenn schon alle Tabellen existieren. Am liebsten hätte ich das von Tabelle1 bis Tabelle 100. Wenn ich aber mein Makro dafür nutze um in schon existierenden Tabellen die Werte einzufügen, erwisch ich immer die Tabelle1 und kann ihm nicht sagen, dass er beim ersten mal Tabelle 1, beim zweiten mal Tabelle 2..wählen soll

Ich galube das ist der gescheitere Weg (im Vergleich zu meinem ersten Lösungsvorschlag)

Kann man also mit VBA etwas erstellen, dass er anhand der Zelle Q14 immer die Werte in die gewollte Tabelle hineinkopiert?
Ich hoffe ich drück mich nicht zu kompliziert aus.

Im Voraus Danke fürs Kopfzerbrechen =)

Titel: Antw: Office 2007: VBA-Hilfe Tabellennamen lesen und selektieren.
Beitrag von: gmg-cc am März 30, 2013, 21:42:48 Nachmittag
Hallo Sascha,

nun ja. da ich zum Fußball keineswegs die innige Liebe vieler Deutscher teile, weiß ich nicht, worauf es ankommt. Aber das sollte auch unbedeutend sein, denn Daten sind Daten.

So, was ich durch deine Beschreibung und den Code verstanden habe ist, dass in Tabelle Start in Zelle Q14 ein Wert steht. Derzeit ist es 0, später wird es wohl saisonweise um 1 erhöht. Und du willst Daten in ein anders Tabellenblatt kopieren. Auch das ist mir klar. Und das Tabellenblatt soll umbenannt werden, zumindest laut Code. - So, nun einige konkrete Fragen:

Welche Daten sollen kopiert werden?
Wann sollen sie kopiert werden oder rufst du das Makro per Hand auf?
Können die Daten in ein neues Blatt?
Welchen Namen soll das Blatt bekommen? ("Tabelle" & Inhalt von Start!Q1?
Wohin wird welches Blatt wann verschoben?
Titel: Antw: Office 2007: VBA-Hilfe Tabellennamen lesen und selektieren.
Beitrag von: Fitty87 am März 31, 2013, 10:57:57 Vormittag
Hallo Günther,

absolut! Daten sind Daten =)

Genau! Wenn die erste Saison fertig ist, starte ich das makro per Klick. Dann soll er aus der Tabelle "lfd. Saison" die Werte kopieren, diese in "Tabelle1" einfügen.
Dadurch steht jetzt in Zelle Q14 eine 1. (bisher gespielte Sasions).
Die Tabellen1 bis 100 (hier sind es nur 5, da die Datei sonst zu groß ist) existieren schon. Es muss also keine neue angelegt werden.
Toll wäre es nur wenn Tabelle1 usw in der richtigen Reihenfolge nebeneinander stehen würden.
Beim zweiten Klick auf das Makro soll er jetzt in Tabelle2 die Werte aus der Tabelle "lfd. Saison" einfügen. Die kann mann ja mit Hilfe der Zelle Q14 machen oder? ("Tabelle"&Q14)

ich weiss nur leider nicht wie man das mit VBA macht. Werde mich aber in diese Gerschichten reinlesen =)
Titel: Antw: Office 2007: VBA-Hilfe Tabellennamen lesen und selektieren.
Beitrag von: gmg-cc am April 01, 2013, 14:34:56 Nachmittag
Hallo Sascha,

ich habe dir einmal dein Werk etwas "kastriert" und darauf etwas stabiles aufgebaut. Prinzipiell sieht das so aus: Tabelle0..Tabelle# löschen, also alle noch leeren Container. Die werden vom Makro erstellt.

Im Modul DieseArbeitsmappe ist das Makro Historie_anlegen, welches du beispielsweise per Alt F8 aufrufst.

Ich habe die neuen Tabellenblätter mit "Saison #" benannt, passt wohl besser. Dadurch ist allerdings deine laufende Statistik nicht mehr so ganz korrekt, weil INDIREKT natürlich nicht die passenden Sheets findet. Das würde ich aber so wie so per Makro lösen, ist sauberer.

Da wird gewiss noch das eine oder andere zu machen sein, aber schau erst einmal, ob das so passt. Die Woche über werde ich nicht allzu iel Zeit haben, aber Kleinigkeiten kriege ich wohl schon hin. Ansonsten kann dir ja vielleicht auch jemand aus dem Forum helfen.