VisualBasic Excel - Festgelegte Zellen aus x-Tabellen in einer zusammen führen

JuggedHareBoy

Lieutenant
Registriert
Apr. 2009
Beiträge
741
Hi,

ich stehe gerade vermutlich sehr fest auf dem Schlauch :D

Ich habe eine Excel-Mappe erstellt, diese hat eine Tabelle "Vorlage". Diese ist vor Änderungen geschützt und kann per CommandButton und Msg-Abfrage für die Benennung schnell & einfach kopiert werden. Das heißt, der Aufbau ist immer gleich. Es gibt 4 Mannschaften und für jede Mannschaft ein Gesamtergebnis.
Jetzt möchte ich in einer Tabelle "Auswertung" definierte Zellwerte aus den kopierten Tabellen zusammenführen.
Im Prinzip aus allen Tabellen ungleich ActiveSheet und "Vorlage".

Zum einen scheiter ich an den Ausnahmen die nicht betrachtet werden sollen, und das die zu kopierenden Zellen nicht nebeneinander (Zeile und Spalte unterschiedlich) liegen ...

In der Auswertung sollen dann die Mannschaften mit ihren Gesamtergebnissen untereinander gelistet werden. Und das dann eben per CommandButton.

Ist das verständlich? Kann mir jemand helfen?
 
Das Design stimmt nicht, du musst doch wissen wo deine Zellen in einer Tabelle zu finden sind.
Vielleicht über VBA die letzte benutzte Zelle einer Spalte finden. Die Spalte sollte schon bekannt sein.

Mir fehlt einfach ein nachvollziehbares Beispiel.
 
Hier ein Screenshot der "Vorlage".
Die Position der Zellen ist somit immer gleich, einzig der Tabellenname verändert sich.
Ich will dann in einer Tabelle "Auswertung" dann die farblich markierten Bereiche zusammengehörig einlesen
__|A ________________|B
1 |Vorlage Mannschaft 1 |0,0
2 |Vorlage Mannschaft 2 |0,0

Tabelle2.jpg
 
Dazu brauchst du kein VBA, nicht mal einen Button.
Du legst eine Tabelle Auswertung an.
Schreibst in eine Zelle = dann gehts du in die Tabelle Vorlage und wählst die entsprechende Zelle gefolgt mit Enter aus.
Schon ist in Auswertung alles aktuell, normalerweise.

Wenn du etwas anderes meinst, dann verstehe ich es nicht und bin raus.
 
Jip, manuell würde gehen keine Frage.

Da aber jeder Verein eine eigene Tabelle bekommt, ist die Anzahl nicht definierbar. Es können je nach Teilnahmequote nur 3 Tabellen aber auch 18 Tabellen sein.

Dafür dann die VBA Funktion die die Zellen automatisch kopiert (dann aber die Tabelle "Vorlage" außen vor lässt).
 
Nur noch eins. Du meinst 18 Mannschaften, es gibt zu Beginn nur 2 Tabellen, "Verein" und Auswertung oder?

Wie viele Mannschaften in die "Vorlage" kommen, wie der Verein heißt und wie viele Spieler maximal je Mannschaft, kannst du schon beim Start des Workbooks abfragen. Hier benötigst du dann VBA.
Die Tabelle Auswertung kannst du bis ca. 50 Mannschaften schon vordefinieren. Wenn eine Mannschaft nicht existiert, dann steht halt in Auswertung nichts in der betreffenden Zeile.

Nachtrag:
Ach, die Anzahl der Mannschaften ergeben sich während einem Wettkampf.
Dann erstelle ein Button in der Tabelle "Verein", der einen Bereich einer Mannschaft am Ende der Tabelle "Verein" hinzu fügt.
 
Zuletzt bearbeitet:
In der "Vorlage" habe ich erstmal nur 4 Mannschaften definiert.
Ich erstelle aber je Verein eine neue Tabelle. Diese Anzahl kenne ich im Vorfeld nicht. Daher brauche ich eine Funktion die mir eben zum einen alle Tabellen (außer "Auswertung" und "Vorlage") durchsucht und dann die definierten Zellen kopiert...
 
Mit Tabelle meinst Du Dateien oder? Von jedem Verein kommst Du eine Datei zurück und willst die auswerten oder? Am besten alle in einen Ordner kopieren und dann über alle Dateien des Ordners iterieren, die Dateien öffnen und die Werte auslesen.

Hier sind Beispiele wie man Dateien iteriert: https://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba

Da musst Du jeden Dateinamen gegen die 2 prüfen, die ausgelassen werden sollen und bei denen eben nichts machen. Alle anderen öffnen: http://www.excel-easy.com/vba/examples/close-open.html

Wenn Du schon Code hast poste den mal bitte.
 
JuggedHareBoy, ich hoffe, du benötigst keinen fertigen code.

1. es gibt ein For Each Konstrukt für die Suche in allen Tabellen mit einer if-Abfrage welche Tabelle ausgeschlossen werden soll:

Sub MySheets()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
If sh.name <> "Vorlage" and sh.name <> "Auswertung" Then
2. ...
End If
Next sh
End Sub

2. du könntest nach "Gesamt" suchen und die Zelle rechts davon kopieren, nur ein Beispiel:
http://www.herber.de/mailing/Wert_in_Tabellenblatt_suchen_und_alle_Fundwerte_in_zweite_Tabelle.htm
 

Ähnliche Themen

Zurück
Oben