3 Tabellenblätter in neue Arbeitsmappe kopieren!

Hallo,

also was ich möchte ist die drei Tabellen einer Arbeitsmappe in eine neu erstellte Arbeitsmappe kopieren, dabei sollen alle Inhalte und Formeln erhalten bleiben!

Mein bisheriger Versuch (Vorschlag aus einem anderen Forum):

Sub TabellenKopieren()
Dim WS As Worksheet
Dim NeuerName As String

Workbooks.Add
NeuerName = ActiveWorkbook.Name
For Each WS In Workbooks(„dateiname.xls“).Worksheets
WS.Copy Before:=Workbooks(NeuerName).Sheets(1)
Next
End Sub

Mein Problem ist a) die Tabellenblätter werden in der falschen Reihenfolge kopiert und b) die Tabelle1 die beim erstellen der neuen Arbeitsmappe enstanden ist existiert immer noch!

Hmmm…!?! Was mach ich falsch? Eilt ein wenig… :smile:

Greetz & Danke
DerStefan

Hi Stefan,
probiers mal so:

Sub TabellenKopieren()
 Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Copy
End Sub

Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Stefan,

warum so umständlich? :wink:

Markiere doch einfach die 3 Tabellenblätter in Arbeitsmappe 1 (mit Strg-Taste), gehe dann auf „Datei“, dort auf „Blatt verschieben/kopieren“, wähle die richtige Mappe und ggf. das gewünschte Tabellenblatt (vor dem eingefügt werden soll) aus und vergess nicht, den Haken im unteren Teil des Fensters bei „Kopie erstellen“ zu setzen. Fertig!

Habs vorsichtshalber nochmal eben mit nem Beispiel getestet, aber Formeln bzw. Funktionen und Formatierungen bleiben dabei erhalten. Programmieren ist also nicht erforderlich.

Viele Grüße
Merlinchen

Hi Merlin,
wenn du deinen Vorschlag als Makro aufzeichnest, dann im Makro alles unwesentliche rausschmeisst, haben wir meinen Vorschlag :smile:
Genauso unumständlich hab ich ihn fabriziert, weil er schrieb er braucht ne schnelle Lösung, naja, ich habs kapiert, ich darf mich nicht mehr drüber aufregen dass Leute eine (auch noch schnelle) Lösung suchen und sich dann nie mehr melden :frowning:
Aber jedes Forum lebt von den anderen 20%, denjenigen die sich rückmelden :smile:
Gruß
Reinhard
ps: du musst ja gewaltig gross(lang) sein wenn sich deine Geburt so lange gedehnt hat, 29-30 *kicher* *nix für ungut* *lächel*

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

off Topic: ???
Hallo Reinhard,

Hi Merlin,

für das „…chen“ sollte auch Zeit sein - ich bin nicht männlich.

wenn du deinen Vorschlag als Makro aufzeichnest, dann im Makro
alles unwesentliche rausschmeisst, haben wir meinen Vorschlag

-)

Hab ich behauptet, dass dein Vorschlag falsch ist? Ich halte in lediglich für unnötig aufwändig zu erstellen.

Genauso unumständlich hab ich ihn fabriziert, weil er schrieb
er braucht ne schnelle Lösung,

vermutlich schnell im Sinne von Reaktionszeit. Aber auch das Erstellen eines Makros dauert vermutlich länger als mein Vorschlag - zumindest, wenn man noch keine Erfahrung mit Makros hat. Und ob Stefan die hat, kannst du wahrscheinlich genausowenig wissen wie ich.

naja, ich habs kapiert, ich

darf mich nicht mehr drüber aufregen dass Leute eine (auch
noch schnelle) Lösung suchen und sich dann nie mehr melden :frowning:
Aber jedes Forum lebt von den anderen 20%, denjenigen die sich
rückmelden :smile:

Das solltest du doch besser bei dem jeweiligen Fragesteller anregen…

Gruß
Reinhard
ps: du musst ja gewaltig gross(lang) sein wenn sich deine
Geburt so lange gedehnt hat, 29-30 *kicher* *nix für ungut*
*lächel*

Muss ich das jetzt verstehen und auch noch lustig finden?

Viele Grüße
Merlinchen

Moin Merlinchen,

für das „…chen“ sollte auch Zeit sein - ich bin nicht
männlich.

Tut mir leid, hatte das ‚chen‘ bewusst weggelassen da ich es als Verkleinerungsform sah und dich ernsthaft anreden wollte.

Hab ich behauptet, dass dein Vorschlag falsch ist? Ich halte
ihn lediglich für unnötig aufwändig zu erstellen.

Genauso unumständlich hab ich ihn fabriziert, weil er schrieb
er braucht ne schnelle Lösung,

vermutlich schnell im Sinne von Reaktionszeit. Aber auch das
Erstellen eines Makros dauert vermutlich länger als mein
Vorschlag - zumindest, wenn man noch keine Erfahrung mit
Makros hat. Und ob Stefan die hat, kannst du wahrscheinlich
genausowenig wissen wie ich. naja, ich habs kapiert, ich

Abgesehen davon, dass m.E. jedem der Excel 'ne Zeitlang benutzt hat, zuzumuten/zuzutrauen ist, den Punkt Exras-Makro-MakroAufzeichnen zu finden und auszuwählen, kam ja Stefan (oder genauer gesagt ‚DerStefan‘, nicht dass ich da auch noch eine Namensrüge kriege *g) mit einer Makrolösung an, insofern ging/gehe ich davon aus er kann ein Makro aufzeichnen/aufrufen. Selbstverständlich bedeutet die Makroaufzeichnung einige wenige Klicks mehr, die Vorteile kommen aber dann durch wenn der gleiche Vorgang nochmals durchgeführt werden soll . Naja, wem sage ich das, du hast das ja kapiert*g

darf mich nicht mehr drüber aufregen dass Leute eine (auch
noch schnelle) Lösung suchen und sich dann nie mehr melden :frowning:
Aber jedes Forum lebt von den anderen 20%, denjenigen die sich
rückmelden :smile:

Das solltest du doch besser bei dem jeweiligen Fragesteller
anregen…

Ach, manchmal rutscht es mir so raus was ich über Leute die 'ne Frage stellen und sich nie mehr melden, während andere sich bemühen diese zu beantworten, so denke. Aber aus diesen Gedanken heraus entsteht bei mir kein Handlungsbedarf dort ‚Kinderstube‘ nachzuholen.

ps: du musst ja gewaltig gross(lang) sein wenn sich deine
Geburt so lange gedehnt hat, 29-30 *kicher* *nix für ungut*
*lächel*

Muss ich das jetzt verstehen und auch noch lustig finden?

Nö, war ein Scherz auf meiner Humorbasis, kam wohl in den falschen Hals, sorry.

Viele Grüße
Merlinchen

Gruß
Reinhard

Hallo ihr Beiden,

vielen Dank für die Antworten, hat mir nach etwas rumgewerke doch noch geholfen! :wink:
Ich finde übrigens das Urteil, dass ich zu Jenen gehören soll die sich nur einmal melden, nämlich dann wenn sie die Frage stellen, etwas sehr voreilig getroffen.
Es war sehr eilig weil ich weiterkommen wollte, doch auch ich hab dann irgendwann Feierabend gemacht und mich erst heute weiterhin mit dem Problem beschäftigt.
Und nun, wo ich zu einem Ergebniss gekommen bin melde ich mich wieder und sage ganz herzlich Danke für eure Tipps!

Ich denke schon dass das so ok ist!

MfG
DerStefan

Hallo Stefan,
ja, ich bin voreilig *zugeb* so als Strandkneipenbesitzer schätz ich erstmal jeden der einfach rausrennt ohne seinen Deckel zu bezahlen erst mal als Zechpreller ein. Das ich dabei auch Leute falsch beurteile die rausrennen um jemanden der im Wasser Probleme hat, zu retten, ist zwangsläufig. Mea culpa
Ich hab beruflich nix mit Excel zu tun, aber will privat eine spezielle , zugeb, sehr schwierige Exeltabelle basteln.
‚zugeb‘ kommt davon dass ich schon den deutschen und englischen googlesprachraum nach Lösungn für meine Problematik durchforstet hab.
Ich habe hier auch schon 10 ExcelExperten angemailt, alle konnten mir nicht helfen.
Da mein Ziel aber nicht utopisch ist, sondern ich nur nen 10Zeiler Makrocode davon entfernt bin und ich halt nur mal jmd treffen muss der API-Funktionen für vba kann und auch html kann, schaff ich das irgendwann. Um die Zeit zu überbrücken , vertief ich halt mein Excelwissen.
Ich benutze kwasi dieses Forum und andere Excel-Foren, um durch meinerseitige Versuche Probleme anderer zu lösen, um dabei selbst dabei mehr von Excel zu kapieren.
Von daher ist es mir vollkomen gleichgültig ob du jetzt meine oder Merlinchens Variante genommen hast. Das ist mir egal.
Ich würde nur zu gern wissen, was du ändern musstest, bzw. wie machst du es, denn nur davon kann ich lernen.
Und, ich denke es geht mir hier wie einigen die nie Fragen stellen sondern nur Antworten geben, ein Feedback wie, klappt, super usw. tut einem gut *freu*, aber exakt genausowichtig ist für mich eine Rückmeldung wie Z.B. 'klappt Nicht, geht nicht usw. weil dann hab ich ne Aufgabe, einen Ansporn…

Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

na macht ja nix, bin auch gerne mal voreilig! :smile:

Sub TabellenKopieren()
Dim objWb As Workbook, objNeuWb As Workbook
Dim ws As Worksheet
Dim L As Long

Set objWb = ActiveWorkbook
Set objNeuWb = Workbooks.Add
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For L = objNeuWb.Sheets.Count To 2 Step -1
objNeuWb.Sheets(L).Delete
Next L
For Each ws In objWb.Worksheets
ws.Copy after:=objNeuWb.Sheets(objNeuWb.Sheets.Count)
Next
objNeuWb.Sheets(1).Delete
objNeuWb.Sheets(1).Name = objWb.Sheets(1).Name
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Das ist übrigens die Lösung die ich angewendet hab…

LG
DerStefan

Hi,

dir auch nochmal vielen Dank für Deine Antwort! :smile:

LG
DerStefan