Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Makro zum Kopieren von Werten in anderes Tabellenblatt, unterschiedliche Benennung
#1
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:


Code:
Range("K14").Select
Selection.Copy

Hier darf kurz gelacht werden 17
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:


Code:
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!
to top
#2
Hallo Rollenlager,

das sollte dann mit einer Schleife gehen.
Alle Blätter bekommt man z.B. mit

For Each Blaetter in Sheets
...
Next


Statt kopieren würde ich den Wert übernehmen.

For Each Blaetter in Sheets
Range("B2")=Blaetter.Range("K14")
Next


Und dann muss das natürlich immer eine Zeile nach unten gesetzt werden. Dazu könnte man einen Zähler nehmen und statt mit Range mit Cells arbeiten.


iCnt=2
For Each Blaetter in Sheets
Cells(iCnt, 2)=Blaetter.Range("K14")
iCnt=iCnt+1
Next


Voraussetzung ist, dass Du beim Start des Makro auf dem Zusammenfassungsblatt bist.
Allerdings wird Dir so auch der Wert vom Zusammenfassungsblatt mit eingetragen. Wäre das ok oder soll das ausgeschlossen werden?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
Rollenlager
to top
#3
Hallo "Schauan".

Vielen, vielen Dank für Deine Hilfe! Hat sehr gut funktioniert und macht genau das, was es soll.
Das Problem mit der Anzeige des Blanko-Blattes wurde gelöst, indem die entsprechende Zeile auf dem Übersichtsblatt einfach ausgeblendet wurde Wink  Sicherlich nicht im Sinne des Erfinders, aber praktikabel.

Danke nochmal!
to top
#4
Hallo,

Makro so ergänzen:



Code:
iCnt=2
For Each Blaetter in Sheets
   if Blaetter.name<>"Blank-Blatt" then
      Cells(iCnt, 2)=Blaetter.Range("K14")
      iCnt=iCnt+1
   end if
Next
Gruß


Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Tabellenblatt auswerten Werte kopieren tmessers 19 424 23.02.2017, 21:37
Letzter Beitrag: schauan
  Bestimmte Zellen die den Typ enthalten kopieren auf ein anderes AB [VBA Marko] promenade 8 96 23.02.2017, 10:05
Letzter Beitrag: promenade
  Dropdown Liste mit Link auf anderes Dokument Jack0Daniels 1 58 04.02.2017, 05:36
Letzter Beitrag: schauan
  Werte in anderes Tabellenblatt kopieren mit VBA Mario 5 142 22.01.2017, 00:16
Letzter Beitrag: Mario
  VBA Code verschieben einer Zeile in anderes Tabellenblatt rebound6 1 78 18.01.2017, 13:13
Letzter Beitrag: RPP63
  Auf eine andere .xlsx zugreifen mit fortlaufender Benennung Excel_Tabellen 5 145 13.01.2017, 19:54
Letzter Beitrag: schauan
  Zeilen mit gleichem Datum in anderes Tabellenblatt kopieren Taximichel 12 224 12.01.2017, 19:50
Letzter Beitrag: schauan
  Makro/VBA Reset Makro inkl. Dropdownmenüs Nordlicht85 7 144 12.01.2017, 10:46
Letzter Beitrag: Nordlicht85
  Bei Änderung des Zellinhalts Zeile in Tabellenblatt kopieren nedial 2 108 30.12.2016, 12:30
Letzter Beitrag: schauan
  Inhalt mehrere Tabellenblätter in ein "großes" Tabellenblatt kopieren. dantri81 2 129 16.12.2016, 16:12
Letzter Beitrag: dantri81

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste