Hallo Zusammen, ich bin mal wieder an meine Grenzen gestoßen und hoffe hier den ein oder anderen Hinweis zu bekommen, wie ich mein Problem lösen kann.
Folgendes ist mein Problem:
ich habe auf einem Blatt "Endlosaufmaß" Einzelpositionen aufgelistet die einem Aufmaßblatt zugeordnet sind. Jede Zeile ist also eine Aufmaßblattnummer der eine Einzelposition aufgelistet ist. Die Aufmaßblatt-Einzelpositionen können in dem Endolosaufmaß jedoch Durcheinander sein und sind nicht chronologisch sein. Mein Ziel ist jedoch in einem neuen Blatt alle Einzelposition Pro Aufmaßblatt zusammenzufassen und zwar so, dass sie untereinander stehen ohne lücke. Also ich möchte ein Aufmaß nach Aufmaßblattnummer sortiert aus einer Gesamtliste von Einzelpositionen erstellen.
Im Beispiel soll sich Blatt 02. Aufmaß durch Eingabe der Aufmaßnummer (in diesem Fall "A3") die Daten aus dem Blatt 01. Endlosaufmaß suchen und untereinander schreiben.
Ich hoffe Ihr könnt mir Hinweise geben, mit welcher Formel ich sowas erstellen kann...
wenn ich die Aufgabe richtig verstanden habe gibt es eine einfache Makro Lösung. Bitte mal testen ob es so klappt. Der Kopierbereich ist in der Const Anweisung mit "A1:O1" festgelegt. Wenn es mehr Spalten sind bitte selbst aendern. (Gibt es in den Tabellen "A1-x" eine Überschriftszeile dann den zu kopierenden Bereich mit "A2:O2" festlegen.) Der Befehl "xlPasteAll" kopiert alles, mit Formate. Sollen nur die Werte kopiert werden "xlPasteValues" nehmen.
mfg Gast 123
Code:
Option Explicit '27.7.2017 Gast 123 Clever Forum Const Copyber = "A1:O1" 'Kopier Bereich angeben
'Modul zum Aufmass Tabellen auflisten
Sub Aufmasse_auflisten() Dim j, k, z As Integer, lz As Long Dim xTb As Worksheet, Txt As String
With Worksheets("Endlosaufmaß") .Cells.Delete 'Endlosaufmaß löschen
'Schleife zum kopieren aller Blaetter "A1 - A.." For k = 1 To Worksheets.Count Txt = Worksheets(k).Name Set xTb = Worksheets(k) 'Blattnamen prüfen auf "A" und Namen Laenge If Left(Txt, 1) = "A" And Len(Txt) < 5 Then 'LastZell im aktiven Blatt ermitteln lz = xTb.Cells(Rows.Count, 1).End(xlUp).Row 'Schleife zum auflisten aller Masse For j = 0 To lz - 1 z = z + 1 'naechste Zeile 'Alle Zeilen in Endlosaufmass kopieren xTb.Range(Copyber).Offset(j).Copy .Range("B" & z).PasteSpecial xlPasteAll 'Blattname in Spalte A angeben .Range("A" & z) = xTb.Name Next j End If Next k
27.07.2017, 15:14 (Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2017, 15:15 von Ameisenbändiger.)
okay, ich werde das mal so probieren, ich bin davon ausgegangen, dass es eine Möglichkeit gibt mit Funktionen zu arbeiten. Ich denke aber, dass mir für Makros das gewisse Grundwissen fehlt.
Also das Suchkriterium ist "C3" aus 02. Aufmaß und es sollen aus 01. Endlosaufmaß alle Zeilen, die diesem Wert entsprechen in 02. Aufmaß´untereinander aufgelistet werden.
Das 02. Aufmaßblatt möchte ich dann später gerne kopieren um weitere Aufmaße damit aus der gleichen Endlosliste zu generieren.