Markobezug auf bestimmte Zeilen mit Grenzezeil

Bild

Betrifft: Markobezug auf bestimmte Zeilen mit Grenzezeil
von: matthias
Geschrieben am: 10.06.2015 16:02:08

Hallo,
ich kann mittels des Codes (steht im Modul) aus einer Tabelle mit Daten ein anderes Datenblatt (Vorlage) füllen lassen und automatisch alle ausgefüllten Vorlagen ausdrucken.
Ich habe nur das Problem, dass ich ihm vorgeben möchte wann er mit dem durchlaufen aufhören soll.
Bis jetzt ist es so, dass er einfach dann aufhört wenn kein weiterer Datensatz mehr vorhanden ist.
Ich würde ihm, aber lieber eine Zelle vorgeben die als untere Grenze dient.
Werden darüber Zeilen eingefügt, dann verschiebt dich der Bereich, auf das sich das Makro bezieht um eins nach unten.
Wie kann ich sowas umsetzen?
Option Explicit

Sub SQ1()
Dim wks As Worksheet
Dim iRow As Integer
Set wks = Worksheets("Zusammenfassung")
iRow = 8
Do Until IsEmpty(wks.Cells(iRow, 1))
Worksheets("SQ1").Range("$T$1") = wks.Cells(iRow, 1)
Worksheets("SQ1").PrintOut
iRow = iRow + 1
Loop
End Sub

Bild

Betrifft: AW: Markobezug auf bestimmte Zeilen mit Grenzezeil
von: Rudi Maintaire
Geschrieben am: 10.06.2015 16:22:03
Hallo,
du solltest mal versuchen, diesen hochgradig simplen Code zu verstehen.
Do Until iRow=20
oder was auch immer.
Gruß
Rudi

Bild

Betrifft: AW: Markobezug auf bestimmte Zeilen mit Grenzezeil
von: Daniel
Geschrieben am: 10.06.2015 16:27:49
Hi
schreibe in eine freie Zelle die Formel:

=Zeile(Zusammenfassung!A99)

für die 99 setzt du die Zeile ein, die als untere Grenze dienen soll.
(A99 ist ein Zellbezug auf die untere Grenze)
Dadurch, dass es sich hier um einen Zellbezug handelt, verschiebt sich dieser mit wenn du darüber Zeilen einfügst
Anstelle der Do-Loop-Schleife nimmst du dann ein For-Next mit

for iRow = 8 To Sheets(???).Range(???).Value
    Worksheets("SQ1").Range("$T$1") = wks.Cells(iRow, 1)
    Worksheets("SQ1").PrintOut
Next
und setzt als Schleifenendwert die Zelle mit der oben erstellten formel ein.
Gruß Daniel

Bild

Betrifft: AW: Markobezug auf bestimmte Zeilen mit Grenzezeil
von: matthias
Geschrieben am: 10.06.2015 16:39:58
Vielen Dank für die Info.
Leider bringt er mir nun einen Laufzeitfehler

Sub SQ1()
Dim wks As Worksheet
Dim iRow As Integer
For iRow = 8 To Worksheets("Zusammenfassung").Range("$AZ$1").Value
    Worksheets("SQ1").Range("$T$1") = wks.Cells(iRow, 1)
    Worksheets("SQ1").PrintOut
Next
End Sub
habe ich im Code einen Fehler?

Bild

Betrifft: habe ich im Code einen Fehler?
von: Rudi Maintaire
Geschrieben am: 10.06.2015 16:47:24
ja!
wks ist Nothing (nicht zugewiesen)

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Markobezug auf bestimmte Zeilen mit Grenzezeil"