Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Tabellenblatt per Makro immer wieder als Seite anhängen





Frage

Hallo zusammen, ich habe ein Problem. Ich möchte nach Bedarf immer wieder eine eigen erstelltes Formblatt nach unten kopieren. Das erste mal ist die Kopie per Makro kein Problem, aber wie kann ich es lösen, daß wenn zwei Tabellenblätter vorhanden sind das dritte angehängt wird usw. Für eure Antworten im voraus Danke Nobody

Antwort 1 von Saarbauer

Hallo,

müsste so funktionieren die beiden Zeilen in die Funktion entsprechend einfügen, dann wird das aktuelle Tabelenblatt als neues hintendran kopiert

a = Sheets.Count
ActiveSheet.Copy After:=Sheets(a)

Gruß

Helmut

Antwort 2 von nobody48

Hallo Helmut,
Danke für Deine schnelle Antwort.
Leider funktioniert der Ablauf nicht so wie ich mir das vorgestellt habe.
Fehler liegt mit großer Sicherheit bei mir, oder ich habe oben alles schlecht beschrieben.
Ich versuche es nocheinmal:
In einem Register (Blanko) habe ich mir ein Formblatt
in Querformat erstellt.
Diese Formblatt möchte ich in einem zweiten Register (Fehleranalyse) nach Bedarf immer wieder nach unten anhängen.
Es soll also in dem zweiten Register das Formblatt wie Endlospapier dargestellt werden.
Diesen Vorgang habe ich versucht mit einer Makroaufzeichnung zu lösen, leider ohne Erfolg.

Grüße aus dem Odenwald
Reiner

Antwort 3 von Saarbauer

Hallo,

ich glaube ich habe es jetzt verstanden, aber zur Zeit keine zündende Idee für eine Lösung

Gruß

Helmut

Antwort 4 von nobody48

Hallo Helmut,

trotzdem vielen Dank für Deine Bemühungen.

Gruß Reiner

Antwort 5 von schnallgonz

Moin nobody,
wenn´s mit dem einmaligen Kopieren klappt, dann fehlt Dir nur ein Landeplatz für die zweite und weitere Kopien.
Funzt hiermit:

Sub ersteFreieZelleAnsteuern()
´Zieltabelle wählen
Sheets("Zieltabelle").Activate
´springt in letzte benutzte Zelle
Range("A65536").End(xlUp).Select
´jetzt nach Bedarf eine Zeile weiter runter rowOffset:=1
´oder mehr rowOffset:=2 oder mehr
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
End Sub

Vor "End Sub" schreibst Du Deinen Einfügen-Code, vor ´Zieltabelle wählen Deinen Copy-Code mit vorheriger Anwahl des Musterblatts.
Das Ganze einem Button zuordnen, fertig.
MfG
schnallgonz

Antwort 6 von Nobody48

Hallo schnallgonz,
Danke für Deine Hilfe, sitze im Moment aber auf der Leitung.

Das Makro sieht im Moment so aus.

Sheets("Blanko").Select
Rows("1:27").Select
Selection.Copy
Sheets("ATG22").Select
Rows("28:28").Select
ActiveSheet.Paste
End Sub

Formblatt Register ( Blanko)
Zielregister ( ATG22)

kannst Du mir die Zeilen in Deine Befehle einfügen???

Für Deine Mühen Danke Voraus
Reiner

Antwort 7 von JoeKe

Hi Reiner,

folgender Code kopiert die Zeilen 1 - 27 des Blattes "Blanko" und fügt sie in die letzte leere Zeile des Blattes "ATG22" ein:

Option Explicit
Sub Kopieren()
Sheets("Blanko").Rows("1:27").Copy
Sheets("ATG22").Select
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial
End Sub


Ich hoffe es ist das was du gesucht hast.

MfG JöKe

Antwort 8 von nobody48

Hallo JöKe,
auch Dir ein großes Dankeschön.
Leider muß ich hier zugeben, daß ich langsam zu dusselig bin.
Dein Makro funzt soweit richtig. ( Klasse :-) )
Mein Fehler ist wieder, das mein Formblatt einen Rahmen Zelle A1-O1 bis A27-O27 hat.
Das heißt, daß nicht immer alle Zellen bis A27 mit Text ausgefüllt sind.
Mit Deinem Makro kopiert es mein Formblatt immer in die nächste frei Zeile.
Wenn Dein Makro immer absolut die 27 Zeilen nach unten kopieren würden wäre mein Problem gelöst.
Sorry ich dachte das Excel den Rahmen als unterste
Zeile erkennt.

Gruß aus dem Odenwald
Reiner

Antwort 9 von schnallgonz

Hallo nobody,
versuch´s mal hiermit, Beschreibung steht als Kommentar im Listing

Sub CopyBlankoATG22()
´Kopiert Zeile 1 bis 27 vom Blatt Blanko ins Blatt ATG22
´bei der ersten Kopie Ziel = A1, danach immer 27 Zeilen ´Abstand
Sheets("Blanko").Rows("1:27").Copy
Sheets("ATG22").Select
On Error GoTo NixLastInDa
    Application.Goto Reference:="LastIn"
    ActiveCell.Offset(27, 0).Select
    ActiveCell.PasteSpecial
    Application.CutCopyMode = False
ActiveWorkbook.Names.Add _
   Name:="LastIn", _
   RefersTo:=Selection, Visible:=True
Exit Sub
NixLastInDa:
Range("A1").Select
ActiveCell.PasteSpecial
Application.CutCopyMode = False
ActiveWorkbook.Names.Add _
   Name:="LastIn", _
   RefersTo:=Selection, Visible:=True
End Sub

MfG
schnallgonz

Antwort 10 von nobody48

Hallo Schnallgonz,

Super Dein Makro funzt. Ihr seit in diesem Forum einfach "Spitze" Vielen Dank

Eine Frage hätte ich noch?
Wenn ich mein Formblatt im Register Blanko per Hand
Zeile 1 bis 27 kopiere, und dann im Register ATG22
einfüge werden 3 Logos mit kopiert und eingefügt.
Per Makro ist alles da bis auf die Logos.
Gibt es dafür auch eine Lösung ??

Gruß aus dem Odenwald
und nochmals Danke

Reiner

Antwort 11 von schnallgonz

Moin Reiner,
Danke für die Rückmeldung.
Mit Bildchen habe ich leider keine Erfahrung.
Sheets("Blanko").Rows("1:27").Copy 
kopiert die Zellen der ersten 27 Zeilen.
Eine darüberliegend Grafik wird bei mir aber auch beim Mausziehen nicht mitmarkiert und folglich auch nicht kopiert.
Wieso klappt das bei Deinen Grafiken?
Wird wohl verschiedene Arten der Einbindung geben.
Versuch mal, Deine Grafiken von Hand zu markieren, zeichne das als Makro auf und bau das Listing ein oder poste das hier.
MfG
schnallgonz

Antwort 12 von nobody48

Hallo Schnallgonz,

ich lasse die Logos jetzt einfach draußen.
Sieht auch so nicht schlecht aus.

Gruß aus dem Odenwald
und ein schönes Wochende wünscht Dir

Reiner