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