VBA Kopier-Makro bestimmter Einträge innerhalb einer Arbeitsmappe

C89

Newbie
Registriert
Okt. 2014
Beiträge
3
Hallo :)

vorab erstmal - super Forum, hat mir schon oft den Hintern gerettet, weiter so!

Zum Thema:
Ich hätte eine Frage bzgl. eines Excel-Makros! Dabei geht es darum aus einem bestehenden Worksheet Einträge aus verschiedenen Zellen verschiedener Sheets (sheet 2 bis sheet n) in ein Worksheet zum besseren Überblick (sheet 1) der Daten zu kopieren.
Das ganze soll etwa folgendermaßen vonstatten gehen:

- kopiere aus 'sheet 2' Zelle "B1", füge ein in 'sheet 1' in Zelle "a3"
- kopiere aus 'sheet 2' Zelle "E8", füge ein in 'sheet 1' in Zelle "b3"
- kopiere aus 'sheet 2' Zelle "B2", füge ein in 'sheet 1' in Zelle "a4"
- kopiere aus 'sheet 2' Zelle "E16", füge ein in 'sheet 1' in Zelle "b4"

Sprung zu sheet 3:

- kopiere aus 'sheet 3' Zelle "B1", füge ein in 'sheet 1' n Zelle "a5"
usw.

zusammenfassend: alle relevanten Einträge aus den Sheets n+1 (n>0) sollen in sheet 1 in bestimmte Zellen untereinander kopiert werden (wahrscheinlich als schleife formuliert?!), das Format soll dabei unberücksichtigt bleiben (nur der Wert soll kopiert werden), Abbruchbedingung wäre die Kopie des Eintrags aus dem letzten sheet (sheet n)

Vielen Dank im Voraus!:)
Beste Grüße,
C89
 
Habe schon einiges ausprobiert, den Makro-Recorder auch.
Das hat aber alles nicht wirklich geholfen. Der Makro-Recorder insofern nicht, dass die Anzahl von sheets nicht von vorne herein festgelegt ist und die record-fuktion somit nur für eine definierte Anzahl von sheets (oder für ein einzelnes sheet) verwendbar wäre, aber nicht für eine variable Anzahl, sprich: ich klicke einmal drauf, und die Daten aller vorhandenen sheets werden in sheet 1 zusammengetragen, unabhängig davon wie viele es sind.

Das sheet an sich enthält auch schon ein (von mir zusammengefügtes) Makro, was die sheets nach einem dropdown-Eintrag aus "b2" & "b3" benennt, sich daran entlang zu hangeln half mir aber auch nicht weiter, bin ansonsten leider nicht so versiert in Sachen vba.

Nicht alleine deswegen habe ich die Frage "blanco" ohne irgendwelche (eventuell in die falsche Richtung führenden) Vorschläge eingeworfen.
 
Ein Makro zeichnet man für einen Spezialfall auf (bei dir also ein Blatt) und dann geht man in den Quellcode und erweitert/generalisiert es.

Bei dir kommt also eine Schleife für alle Blätter drumherum.
 
Mal aus der Hand hingeschmiert:

Code:
Sub Kopieren()
Dim I as Integer
Dim J as Integer
 I=3
 With Worksheets(1)
  For J=2 To Worksheets.Count' Die Index-Reihenfolge muss nicht die richtige/sinnvolle sein!
   .Cells(I,1) = Worksheets(J).Cells(1,2)
   .Cells(I,2) = Worksheets(J).Cells(8,5)
   I=I+1
   .Cells(I,1) = Worksheets(J).Cells(2,2)
   .Cells(I,2) = Worksheets(J).Cells(16,5)
   I=I+1
  Next
 End With
End Sub
Wenn die Blätter in gewisser anderer Folge agbegrast werden müssen wird die Operation etwas umständlicher.

CN8
 
Danke für die schnellen antworten

und @cumulonimbus8: Wohoo der :hammer_alt: - genau das was ich suche (bzw. ich so erweitern kann, dass es 1a passt).

Vielen Dank :)
 
Zurück
Oben