Hallo liebes Forum!
Zunächst einmal: ich bin neu hier und ein totaler Makro-Noob – also bitte Rücksicht nehmen. Das Problem fängt schon damit an, dass ich nicht genau weiß wonach ich googlen soll. Mein Problem ist bestimmt nicht neu und mit Sicherheit schon hundert Mal behandelt worden, aber scheinbar nutze ich die falschen Stichwörter.
Programm-Version: Excel 2010
Mein Problem: Ich möchte aus einer variablen Anzahl Tabellenblättern jeweils einen Zahlenwert (zwischen 0 und zehn) kopieren und dann auf einem Übersichts-Tabellenblatt einfügen. Die Spalte in welche die Werte eingetragen werden sollen beginnt bei B2 und kann beliebig fortgesetzt werden (B3, B4 usw.).
Die Reihenfolge meiner Tabellenblätter im Dokument sieht so aus: Übersichtsblatt, Blanko-Blatt, S1, S2, S3 …
Die Blätter S1, S2 usw. sind alle gleich aufgebaut, enthalten nur unterschiedliche Zahlen. Den Wert aus Zelle K14 dieser Blätter möchte ich auf dem Übersichtsblatt anzeigen lassen. Der Wert ist auch immer in der gleichen Zelle K14.
Die Bezeichnung der Blätter S1, S2 usw. variiert. D.h. die heißen auch mal P1 oder M4.
Manuell bekomm ich das hin, dass mir die Werte angezeigt werden (z.B. ='P1'!K14 oder ='M2'!K14). Allerdings ist das ab einer bestimmten Blattanzahl etwas mühsam. Deswegen hätte ich am liebsten ein Makro was die Werte kopiert und in die Übersichtstabelle einfügt.
Dummerweise habe ich von Makro-Programmierung so viel Ahnung wie die Kuh vom Fallschirmspringen. Meine Suchen ergaben verschiedene Ergebnisse in Form von Schleifen und sonstigem. Allerdings hört es bei mir ja schon mit der Auswahl des Tabellenblattes auf …
Was ich mir schon erschlossen habe, ist die Auswahl der Zelle im jeweiligen Tabellenblatt und das Kopieren selbiger:
Range("K14").Select
Selection.Copy
Hier darf kurz gelacht werden
Allerdings hilft mir das ja auch nicht wirklich weiter, weil bis dato der Wert ja nur in den Zwischenspeicher gewandert ist. Und noch weit davon entfernt ist, in meiner Übersichtstabelle zu erscheinen.
Wenn ich den manuellen Vorgang mit dem Makro-Recorder aufzeichne (ich starte vom Übersichtsblatt aus), sieht das wie folgt aus:
Sub Kritikalitaetswert()
'
' Kritikalitaetswert Makro
' Kritikalitätswert aus anderen Tabellenblättern entnehmen und in die Übersichtstabelle kopieren.
'
'
Range("B2").Select
ActiveCell.FormulaR1C1 = "='P1'!R[12]C[9]"
Range("B3").Select
ActiveCell.FormulaR1C1 = "='P2'!R[11]C[9]"
Range("B4").Select
ActiveCell.FormulaR1C1 = "='P3'!R[10]C[9]"
Range("B5").Select
ActiveCell.FormulaR1C1 = "='P4'!R[9]C[9]"
Range("B6").Select
ActiveCell.FormulaR1C1 = "='I1'!R[8]C[9]"
Range("B7").Select
ActiveCell.FormulaR1C1 = "='I2'!R[7]C[9]"
Range("B8").Select
ActiveCell.FormulaR1C1 = "='I3'!R[6]C[9]"
Range("B9").Select
ActiveCell.FormulaR1C1 = "='M2'!R[5]C[9]"
Range("B10").Select
End Sub
Das macht dann auch ganz brav was es soll, aber halt nur für die Tabellenblätter die P1-P4, I1-I3 und M2 heißen. Es sollen aber alle K14-Werte aller Tabellenblätter aufgeführt werden – z.B. auch wenn ich ein weiteres Tabellenblatt einfüge.
Hilfe wäre toll – und bitte auf gaaaaanz einfachem Niveau erklären.
Vielen Dank im Voraus!