Hallo, kann mir jemand bei dem kniffligen Problem helfen? Per Makro, aktive Zeile selektieren, den Wert der aktiven Zelle auslesen und mit dem darunter liegenden Wert vergleichen. Falls identisch dann Selektion auf diese Zeile erweitern usw. Bis Wert sich ändert.
Hallo, im Grunde möchte Automatisch nacheinander Aufträge drucken. In jeder Zeile (Sp.A bis BN) stehen Werte. In Spalte AA steht die Auftragsnummer. Diese Auftragsnummer kann mehrfach vorkommen. Z.B. Zeile 1 = Auftrag Nr. 2001567 Zeile 2 = Auftrag Nr. 2001567 Zeile 3 = "" Nr. 2001677 ..... Zeile 200 = Auftrag Nr. 2002100 Momentan läuft der Druckprozess folgendermaßen. Schritt1. Zeile 1-2 auswählen/selektieren und kopieren Schritt2. In vor erstellten Druckformular einfügen, drucken, als PDF speichern und wieder in das vorherige Tabellen Blatt zurückkehren. Schritt1. Nächsten Auftrag auswählen/selektieren....
Ist es möglich das Schritt1. als makro zu definieren? Beispiel: Aktive Zeile auswählen, Spalte AA die Auftragsnummer mit der darunterliegenden Nr. zu vergleichen. Falls identisch dann Auswahl auf diese Zeile ausweiten usw. Falls nicht identisch dann Schritt2. Ps: Schritt2 ist als Makro schon vorhanden.
Sub Erweiterung() Dim i As Long If Selection.Count > 1 Then Exit Sub If Selection = "" Then Exit Sub Do i = 1 + i Loop Until Selection.Offset(i).Value <> Selection.Value Selection.Resize(i).Select End Sub
Hallo, danke für den Vorschlag. Die Formel sagt doch nur ob in Zelle etwas steht oder nichts findet. Welche von den beiden Formel sagt z.B. aktiven Zelleninhalt (aus Sp. AA)mit der darunterliegenden vergleichen, falls identisch dann komplette Zeile selektiert, prüfe nächste darunterliegenden Nr. Falls identisch Zeile selektieren usw. Bis zu dem Punk wenn Nr. Nicht identisch mit dem allerersten Wert.
Das ist keine Formel, sondern ein Makro, das in den Makroeditor kopiert werden muss.
Tschuldige, hätte ich vielleicht näher erläutern sollen.
Wenn das Makro aufgerufen wird, erweitert sich die Auswahl bis zur letzten gleichen Zelle nach unten. So wolltest Du es doch ursprünglich, oder?
Sind bei Makroafuruf mehrere Zellen markiert, wird sofort abgebrochen.
Ist die aktuelle Zelle leer, und drunter keine Zelle mehr, dann hätte das Makro viel und lange zu suchen, bis an den unteren Rand. Daher habe ich auch für leere Zellen einen Sofortabbruch vorgesehen.
12.05.2020, 21:41 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2020, 21:45 von DK84.)
Ok, danke. Ich werde es ausprobieren. Hätte nicht gedacht das es so einfach wäre. Kannst du bitte dein Makro genau beschreiben. Welcher Text/Formel genau macht?
'Die Variable i wird als Ganzzahl deklariert. Dim i As Long
'Selection.Count ... Anzahl der ausgewählten Zellen 'Wenn diese größer als 1 ist, dann verlasse das Makro. If Selection.Count > 1 Then Exit Sub
'Wenn die ausgewählte Zelle leer ist, 'dann verlasse das Makro (Exit Sub). If Selection = "" Then Exit Sub
'Do ... Mach bis Loop, und komm wieder zurück. '=Schleifenanfang Do
'Erhöhe i um 1 (Zu Beginn ist i Null) i = 1 + i
'Schleifenende. Gerh wieder hinauf zu Do, solange bis (until) 'die von der Auswahlzelle (Selection) 'um i Zellen versetzte Zelle (offset) 'im Wert (value) ungleich(<>) der Auswahlzelle ist. Loop Until Selection.Offset(i).Value <> Selection.Value
'Nach Verlassen der Schleife wegen Verschiedenheit der 'Zellen: 'Erweitere (Resize) die Auswahl um i Zellen nach unten Selection.Resize(i).Select
27.05.2020, 17:57 (Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2020, 17:57 von DK84.)
Hallo leider funktioniert das nicht wie ich schon vermutet habe. Ich versuch es noch einmal zu erklären.
Die beigefügte Tabelle hat von Spalte A bis Spalte AX Werte stehen. Diese Aufträge müssen als Lieferschein gedruckt werden. Momentan läuft das Drucken folgendermaßen ab.
1. Ich muss die Zeile 2-4 auswählen, da die Belegnummer die in der Spalte AX gleich ist. 2. Ich aktiviere mein Makro, dieser kopiert den ausgewählten Bereich, überträgt die Werte in ein anderes Tabellenblatt und platziert mir die Werte so das daraus ein Lieferschein entsteht. Halt eine Zusammenfassung der Wichtigsten Werte aus der Tabelle. 3. Wieder werden die nächsten Zeilen für den nächsten Lieferschein ausgewählt. In diesem Fall Zeile 5-6, da die Belegnummer die in der Spalte AX gleich ist. und so weiter...
Meine Frage: Ist es möglich ein Code zu erstellen, das die Zeilen mit der gleichen Belegnummer automatisch ausgewählt werden, ausgehend von der aktiven Position. Z.B. Ich wähle die Zeile 2 aus und starte das Makro. Dieser soll erkennen das in (Zelle AX2) die Nr. 2000795 steht und sich diese merken. Als nächsten soll er die (Zelle AX3) mit dem Wert aus (Zelle AX2) vergleichen. Wenn Identisch dann die Auswahl der vorherigen Zeile 2 auf Zeile 3 erweitern usw. Falls nicht identisch dann Drucken = mein Makro. Wichtig ist das die ganze Zeile ausgewählt wird oder von Spalte A bis AX!