Registriert seit: 03.06.2019
Version(en): 2016
Hi, dieser Teil ist doch zuständig dafür oder etwa nicht?
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).EntireRow.Select
MsgBox "Drucken"
'Selektierten Bereich auf 1 Spalte E reduzieren
Selection.Resize(, 1).Offset(, 49).Select
Zu mindestens hab ich diesen Skript bekommen.
Im Verlauf sind die Einzelheiten dazu.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
einen Befehl "Selektion bei Gleichen Nummer" gibt es da trotzdem nicht. Dort steht z.B.
Loop Until Selection.Offset(i).Value <> Selection.Value
und da wird die Schleife solange durchlaufen wie die beiden Zellen unterschiedlich sind.
Wenn Du dann noch weitere Zeilen finden willst, brauchst Du außen rum eine weitere Schleife die dann bis zum Ende des zu betrachtenden Bereichs weiter macht.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.06.2019
Version(en): 2016
Hi, wie müsste das dann aussehen? Kannst du mir dabei helfen?
Registriert seit: 01.04.2020
Version(en): 2007
Hallööchen Schauan,
bei
Loop Until Selection.Offset(i).Value <> Selection.Value
wird die Schleife solange durchlaufen, bis und nicht wie die beiden Zellen unterschiedlich sind.
Wenn also eine Zelle gefunden wurde, die sich von der darüberliegenden unterscheidet, wird die Schleife verlassen.
Nur, um kein Missverständnis aufkommen zu lassen (wenn ich nicht irre).
Gruß,
Raoul
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
@Raul, ja. Du liest hier ja doch noch mit. :17:
@DK84, in Deinem zuletzt geposteten Code ist keine Schleife drin, davor hattest Du mal einen wo eine dabei ist. Ist die nun noch dabei oder nicht? In Deiner Musterdatei ist die Schleife auch drin und wenn ich z.B. AG18 anklicke und den Code starte wird selbiger 3x durchlaufen.
1x mit Zeile 18,
1x mit Zeile 19 und 20
1x mit Zeile 21 bis 23
Zum Schluss wird noch AX24 selektiert und dann ist Schluss.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.06.2019
Version(en): 2016
Hi, im Grunde möchte ich das beim Start des Makros folgendes passiert. Selektier zeilen bis unterschiedlicher Wert. Danach folgt mein Makro für den Druck. Dannach soll er den nächsten wert springen und das Makro Selektion von vorne starten.
Geht das?
Registriert seit: 07.05.2020
Version(en): 2016
Sub Rechnungdrucken()
Dim arrSB
Dim SB
'--- Liste der SBs erstellen und in Array-Variable Speichern
Range("g5:g494").AdvancedFilter xlFilterCopy, , Range("iv1").Cells, True 'tatsächliche Listenlänge in Spalte "g" festlegen! und Druckbereich soweit anlegen !!
Range("iv1").Delete shift:=xlUp
arrSB = Range("iv1").CurrentRegion
Range("iv1").EntireColumn.Delete
'--- Jeden SB filtern und drucken
For Each SB In arrSB
Range("A4").AutoFilter Field:=7, Criteria1:=SB
ActiveSheet.PrintOut
Application.Wait Now + TimeSerial(0, 0, 2) 'Pause zum übertragen und speichern(das kannst du weglassen, hier wird noch eine Routine sonst aufgerufen, die mir die Rechnung abspeichert und in eine Liste überträgt
Next
'ActiveSheet.ShowAllData
End Sub
Bei "Range("g5:g494") deine Zeile mit tatsächlicher Länge anpassen (laut Screenshot "AX").
Bei Range("A4").AutoFilter Field:=7, Criteria1:=SB die "A4" in A1 ändern und für den Filter in AuoFilter Field anstatt der "7" eine "50" eingeben.
Das Makro macht folgendes:
Es filtert die Spalte AX nach den Werten und fasst die zusammen.
Dann drückt er die Seite aus.
Dann nimmt das makro den nächsten wert aus AX und fasst es zusammen, druckt es aus, usw.usw.
Das sollte klappen, musst Du nur an eine Tabelle anpassen.
Viele Grüße
Andreas
Registriert seit: 03.06.2019
Version(en): 2016
Hallo, ich werde das mal ausprobieren. Vielen Dank!