667 Aufrufe
Gefragt in Tabellenkalkulation von czerno Einsteiger_in (44 Punkte)
Hallo liebe Community,

ich habe folgendes Problem, wofür ich keine richtige Lösung in Excel bzw. VBA finde.

In den Feld J2 ist eine Zelle, welche einen Wert hat z.B. die Nummer 1. Dieses Feld dient als Suchbegriff für einen Sverweis. Es wurden je Menge SVerweise verwendet.

Nun habe ich in den Feldern J3 und K3 einen Zahlenbereich stehen.

Sprich J3 die 1 und K3 die 16.

Jetzt möchte ich folgendes tun:
Ich möchte, dass ein Makro automatisch die Zahlen nacheinander einträgt, berechnet und dann das aktive Tabellenblatt druckt.

Sprich J2 eintragung 1
Tabellenblatt berechnen
Tabellenblatt ausdrucken
J2 Eintragung 2
Tabellenblatt berechnen
Tabellenblatt ausdrucken

und so weiter bis zur 16. Sprich das er 16 Zahlen nacheinander einträgt und dann berechnet und druckt.

Ich bin schon seit tagen am rätseln und probieren doch scheinbar ist das zu hoch für mich.

Kann mir hier jemand helfen?

Vielen lieben Dank im Vorfeld euch!

Grüße

Czerno

8 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi,

das wäre eine Möglichkeit:

Sub Drucken()
    Dim intZaehler As Integer
    If IsNumeric(Range("J3")) And IsNumeric(Range("K3")) Then
        For intZaehler = Range("J3") To Range("K3")
            ActiveSheet.PrintOut
        Next intZaehler
    End If
End Sub

Bis später, Karin
0 Punkte
Beantwortet von czerno Einsteiger_in (44 Punkte)
Hallo Karin,

vielen Dank für die schnelle Antwort.

Wenn ich den Code austeste, dass druckt er mit die Anzahl nur und setzt nicht die Zahlen ein.

Grüße

Czerno
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,
ergänze die Zeile

Range("J2") = intZaehler

Bis später, Karin

0 Punkte
Beantwortet von
Hallo,

ich habe noch eine ergänzende Frage zu dem Thema:

Ich habe in einen Modul den entsprechenden Code hinzugefügt und eingebunden. Allerdings zählt er nicht hoch.

Wenn ich den Bereich 1-10 einpflege dann druckt er die aktuelle Abrechnung 10x und zählt nicht hoch und berechnet die Tabelle neu.

Sub DruckenBereich()
    Dim intZaehler As Integer
    If IsNumeric(Range("J3")) And IsNumeric(Range("K3")) Then
        For intZaehler = Range("J3") To Range("K3")
            ActiveSheet.PrintOut
        Next intZaehler
        Range("J2") = intZaehler
    End If
End Sub

Hat jemand eine Idee?
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

wenn du in einer Schleife drucken willst, musst du auch innerhalb der For-Next-Schleife den Zähler hochsetzen, also direkt nach dem Drucken und nicht danach.

Bis später, Karin

0 Punkte
Beantwortet von
Hallo Karin,

ich bin absoluter Anfänger in der VBA Geschichte. Ich stehe leider voll auf dem Schlauch.

Was soll ich den nun genau machen, damit der Code funktioniert.

Peinlicherweise verstehe ich nur Bahnhof

Grüße und Danke

JimKnopf
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

wie soll denn der Code ablaufen? In J2 Zahl eintragen (dann erfolgt Neuberechnung) -> Drucken -> Zähler in J2 erhöhen -> Drucken -> Zähler in J2 erhöhen -> Drucken usw.

Die Zeile Range("J2") = intZaehler also direkt vor die Zeile ActiveSheet.PrintOut schreiben anstatt unter die Zeile Next intZaehler:

        For intZaehler = Range("J3") To Range("K3")
            Range("J2") = intZaehler
            ActiveSheet.PrintOut
        Next intZaehler

Bis später, Karin

0 Punkte
Beantwortet von
Hallo Karin,

du bist ein Goldschatz.....

Es funktioniert alles wie es soll..

Der fertig Code sieht wie folgt aus:

Sub DruckenBereich1()
    Dim intZaehler As Integer
    If IsNumeric(Range("J3")) And IsNumeric(Range("K3")) Then
        For intZaehler = Range("J3") To Range("K3")
        Range("J2") = intZaehler
            ActiveSheet.Calculate
            ActiveSheet.PrintOut
        Next intZaehler
        End If
End Sub

Vielen lieben Dank...............
...