Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Neue Vorlageseite per Button einfügen

Neue Vorlageseite per Button einfügen
22.11.2019 10:31:45
Charlotta
Hallo,
um das Ausfüllen und Auswerten von Auftragskontrollblättern zu vereinfachen habe ich mehrere Tabellen erstellt deren Inhalte, falls welche eingefügt werden, automatisch in einer anderen Tabelle ausgewertet werden.
Da nicht in jeder Tabelle die gleiche Anzahl an Kontrollblättern benötigt wird, kann ich diese nicht im Vorhinein einfügen. es könnten übers Jahr 5 oder 500 werden.
Daher habe ich eine Tabelle als blanko Vorlage erstellt. Diese könnte jetzt per copy/paste immer in die jeweilige Tabelle hinter das letzte ausgefüllte Blatt kopiert werden. Das artet vermutlich in viel Scrollerei und Frust aus. Daher versuche ich einen Button zu programmieren der dies automatisch für das jeweilig aktive Sheet übernimmt.
Den VBA habe ich per Makro Aufzeichnung gemacht und versucht an Hand ergoogelter Beispiele für meinen Bedarf anzupassen. Leider habe ich es nicht geschafft den kopierten Inhalt in die erste freie Spalte einfügen zu lassen. Sobald ich den festen Zellbezug (hier K39) entferne und durch eine range_find lastColumn zu ersetzen versuche, packt es mir den Inhalt einfach an die letzte von mir angeklickte Zelle.
Die Seiten sollen in jeder Tabelle nebeneinander gesetzt werden, die Breite einer Seite ist Zelle A:J und hat 39 Zeilen.
Mein Aufgezeichnetes Makro sieht so aus:

Sub Schaltfläche1_Klicken()
' Schaltfläche1_Klicken Makro
Sheets("Tabelle1").Select
Columns("A:J").Select
Range("A29").Activate
Selection.Copy
Sheets("Tabelle2").Select
Range("A1:J1").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range("K39").Select
Selection.End(xlUp).Select
ActiveSheet.Paste
End Sub

Mein Plan war von Zelle A1 aus die letzte Spalte mit Inhalt zu finden, dann eins nach rechts zu gehen, nach ganz oben und dann den vorher Kopierten inhalt (Range A:J der anderen Tabelle, damit auch die Formatierung mitgenommen wird), einzufügen.
Versucht hatte ich es hiermit:
Sub Schaltfläche1_Klicken()
' Schaltfläche1_Klicken Makro
Sheets("Tabelle1").Select
Columns("A:J").Select
Range("A29").Activate
Selection.Copy
Sheets("Tabelle2").Select
Dim lCol As Long
lRow = Cells.Find(What:="*", LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Row
ActiveCell.Offset(0, 1).Select
Selection.End(xlUp).Select
ActiveSheet.Paste
End Sub
Leider setzt es mir einfach nur die neue Vorlage eins rechts neben die letzte von mir angewählte Zelle. Sollte ich irgendeine Zelle in meiner zuletzt eingefügten Vorlage anwählen geht das Makro gar nicht. Also das Letzte Spalte finden funktioniert wohl nicht.
Freue mich über Tipps

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neue Vorlageseite per Button einfügen
22.11.2019 12:21:33
volti
Hallo,
hier mal ein Beispiel zum Kopieren eines Bereichs in ein anderes Blatt nach rechts aufbauend.
Kopiert wird der Bereich "A1:J39", und nicht die gesamten Spalten, da Du ja von 39 Zeilen sprachst.
Probier es mal aus, ob es so richtig ist und funktioniert....
Sub Schaltfläche1_Klicken()()
 'Kopiert einen festen Bereich in ein anderes Blatt
  Dim Spalte As Integer, Bereich As String, Zieltabelle As String, Quelltabelle As String
  KopierBereich = "A1:J39"
  Quelltabelle = "Tabelle1": Zieltabelle = "Tabelle2"   'ggf. anpassen
  With Worksheets(Zieltabelle)
   Spalte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
   If Spalte > 1 Then Spalte = Spalte + 1
   Worksheets(Quelltabelle).Range(KopierBereich).Copy Destination:=.Cells(1, Spalte)
   .Cells(1, Spalte).Select
  End With
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Neue Vorlageseite per Button einfügen
22.11.2019 12:35:29
volti
Hallo,
hier noch eine kleine Ergänzung, falls Du das von einem anderen, als dem Zielblatt startest, soll dieses aktiviert werden.
Und, als Abwandlung kann man auch ganze Spalten kopieren.
Sub Schaltfläche1_Klicken()
 'Kopiert einen festen Bereich in ein anderes Blatt
  Dim Spalte As Integer, Bereich As String, Zieltabelle As String, Quelltabelle As String
  KopierBereich = "A:J"
  Quelltabelle = "Tabelle1": Zieltabelle = "Tabelle2"   'ggf. anpassen
  With Worksheets(Zieltabelle)
   Spalte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
   If Spalte > 1 Then Spalte = Spalte + 1
   Worksheets(Quelltabelle).Range(KopierBereich).Copy Destination:=.Cells(1, Spalte)
   .Select
   .Cells(1, Spalte).Select
  End With
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Neue Vorlageseite per Button einfügen
25.11.2019 09:55:05
Charlotta
Hallo Karl Heinz,
vielen vielen Dank, ich bin total begeistert. Es funktioniert so wie ich es mir vorgestellt hatte. Beim ersten Makto wurde meine Vorlageseite immer schön hintendrankopiert, auch nach mehrmaligem nutzen des zugewiesenen Buttons (meins hatte ja alle Kopien gestapelt), aber ohne die Spaltenformatierung (diese ist auf den späteren Ausdruck angepasst).
Mit dem zweiten Makro wird diese durch die Wahl der ganzen Spalten mit kopiert.
Sieht ja jetzt ganz anders aus als das was ich mit meinem kaum vorhandenen und ergoogelten Wissen erstellt hatte, da war ich wohl ziemlich auf dem Holzweg ;) Ich hatte zwar meinen Spass etwas mehr über Excel zu lernen, aber zum glück habe ich mir da Hilfe geholt.
Aber jetzt habe ich einen Wegweiser anhand dessen ich mehr lerne.
Ganz lieben Dank nochmal,
LG,
Charlie
Anzeige
AW: Neue Vorlageseite per Button einfügen
25.11.2019 14:32:44
volti
Vielen Dank Charlie für die nette Rückmeldung.
Freut mich, wenn es Dich weitergebracht hat.
viele Grüße
Karl-Heinz

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige