70 Aufrufe
Gefragt in Tabellenkalkulation von czerno Einsteiger_in (58 Punkte)
Hallo liebe Community,

ich benötige eine VBA Programmierung. Leider bin etwas ratlos da.

Ich habe ein Tabellenblatt was "Berechnungsblatt" heißt. Hier möchte ich mittels Makro eine Möglichkeit des druckens schaffen.

Hier ist in Zelle O2 eine Abrechnungsnummer/Ziffer enthalten. Gibt man diese ein aktualisiert sich das Tabellenblatt entsprechend. Dann möchte ich durchrechnen und ausdrucken.

Bisher habe ich ein Makro, wo ich ein Bereich eingebe in Zelle O3 (Beginn) und es endet bei dem Wert in P3 (Ende).

In dem Tabellenblatt Zusammenfassung gibt es eine Liste mit Ziffern von Zelle A4 bis A76. Dort sind entsprechende Personalnummern hinterlegt welche als Abrechnungsnummer dient.

Ich möchte mittels Makro nun, dass mir Excel hingeht die erste Ziffer aus a4 des Tabellenblattes Zusammenfassung in O2 einträgt, berechnet und druckt. Nach dem Drucken die Ziffer aus A5 des Tabellenblattes Zusammenfassung eintragen, durchrechnen und ausdrucken und immer so weiter.

Ich könnte mir gut vorstellen, dass man bei dem Tabellenblatt Berechnungsblatt in O3 die erste Zelle einträgt und in P3 die letzte Zeile einträgt. Beispiel O3 = A4 und P3 = A76.

Bisher habe ich folgende Programmierung, welche aber für den Zweck nicht ganz richtig ist:

Sub DruckenBereich1()
    Dim intZaehler As Integer
    If IsNumeric(Range("o3")) And IsNumeric(Range("p3")) Then
        For intZaehler = Range("o3") To Range("p3")
        Range("o2") = intZaehler
            ActiveSheet.Calculate
            ActiveSheet.PrintOut
        Next intZaehler
        End If
End Sub

Kann mir hier einer helfen?

Danke im Voraus!

3 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.4k Punkte)

Hi,

versuche es mal auf diesem Weg:

Sub DruckenBereich()
    Dim lngZaehler As Long
    With Worksheets("Zusammenfassung")
        ' Drucken von Zeile 2 bis letzte belegte Zeile
        For lngZaehler = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            Range("o2") = lngZaehler
            ActiveSheet.Calculate
            ActiveSheet.PrintOut
        Next lngZaehler
    End With
End Sub

Bis später, Karin

0 Punkte
Beantwortet von
Hallo Karin,

leider geht er von 2 die Ziffern runter und nimmt nicht die Werte aus den Zeilen :-(
Sprich 2,3,4
0 Punkte
Beantwortet von beverly_ Experte (3.4k Punkte)

Hi,

sorry, ich verstehe leider nicht was du meinst. Der Code macht folgendes: er läuft in einer Schleife von Zeile 2 bis zur letzten belegten Zeile in Spalte A des Tabellenblattes "Zusammenfassung", trägt in O2 die laufende Zeile ein, berechnet die Formeln und druckt das Blatt. Wenn du in O2 nicht die laufende Zeile sondern den Wert aus Spalte A eintragen willst, dann ersetze in der Zeile

Range("o2") = lngZaehler

lngZaehler durch .Cells(lngZeile, 1)

Bis später, karin

...