Gleiche Werte nach einander selektieren
#21
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.
Top
#22
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)
Top
#23
Hi, wie müsste das dann aussehen? Kannst du mir dabei helfen?
Top
#24
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
Top
#25
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)
Top
#26
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?
Top
#27
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
Top
#28
Hallo, ich werde das mal ausprobieren. Vielen Dank!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 4 Gast/Gäste