Druck-Makro für Excel

  • #1
D

DerJesus

Guest
Hallo, also:

ich bräuchte mal bitte Hilfe für ein Makro für Excel 2003. :-\

Ich habe in einem Tabellenblatt ein Register, das mit Daten aus einem anderen Blatt gefüllt wird.
Jenachdem welche Zahl ich im Feld X5 eingebe (1,2,3...) zieht sich das Register die Daten
per SVERWEIS aus dem anderen Blatt. (1-> alle Daten für 1, 2-> alle Daten für 2,...).

Nun möchte ich gerne ein Makro programmieren, welches mir alle vorhandenen Daten automatisch
ausdruckt. (Klick -> Daten für 1 werden gedruckt, Daten für 2 werden gedruckt,... usw.)
Selbstverständlich sollte das Makro automatisch aufhören, wenn keine Daten mehr da sind.

Wer weiß Rat?
 
  • #2
Hallo DerJesus,

wenn ich das richtig verstehe soll das Makro in X5 die Zahlen 1 - 9999 nacheinander eingeben, dann abwarten, bis die Calculation die Daten ins Blatt gestellt hat. Die Daten soll es dann überprüfen, ob Daten im Blatt stehen. Abhängig davon soll es die Daten ausdrucken oder sich beenden.

So richtig verstanden ?

Wenn ja, wie kann das Makro erkennen, dass Daten angezeigt werden oder nicht ?
(Eine Bestimmte Zelle hat dann welchen Inhalt oder eben nicht oder Fehler ?)

Wie ist der Blattname des Blattes mit X5 ?

Gruß Matjes :)
 
  • #3
Hallo DerJesus,

das Makro könnte folgendermassen aussehen:
Code:
Option Explicit

Sub PrintMitX5Von1Bis9999()
 
->> > > A N P A S S E N < < <
 Const cBLATTNAME = Ansicht ->Blattname des Blattes
 Const cZELLE_X5 = X5    ->Zelle in der der lfd. Wert cX5_VON bis cX5_BIS eingesetzt wird
 Const cZELLE_PRUEFENAME = B3->Hier wird derName ausgegeben oder Fehler #NV
 Const cDRUCKBEREICH = A2:D3 ->Bereich der jeweils ausgedruckt werden soll
->> > > A N P A S S E N  E N D E < < <
 Const cX5_VON = 1
 Const cX5_BIS = 99999
 
 Dim ws As Worksheet
 Dim x As Long

 On Error Resume Next
 Set ws = ActiveWorkbook.Worksheets(cBLATTNAME)
 On Error GoTo 0

->Prüfen, ob das richtige Blatt aktiv ist
 If ws Is Nothing Then
  MsgBox _
   Es ist nicht das richtige Blatt in der aktiven Mappe vorhanden. & vbLf & _
   Blattname SOLL:  & cBLATTNAME
  GoTo AUFRAEUMEN
 End If
 
 For x = cX5_VON To cX5_BIS
  Range(cZELLE_X5).Value = x
  If IsError(Range(cZELLE_PRUEFENAME)) Then
   MsgBox Laufende Nummer  & cZELLE_X5 & = & x &  nicht vorhanden: Exit For
  Else
   Range(cDRUCKBEREICH).PrintOut
  ->Range(cDRUCKBEREICH).Printpreview->zu Testzwecken
  End If
 Next

AUFRAEUMEN:
 Set ws = Nothing
End Sub
Die Konstanten mußt du entsprechend anpassen.

Zu Testzwecken kannst du mit Seitenansicht statt drucken arbeiten. Die entsprechende Zeile ist als Kommentar enthalten(PrintPreview). Diese Zeile ist dann einzukommentieren und die zeile mit PrintOut auszukommentieren. Beim Test dann auch cX5_BIS auf einen kleineren Wert setzen, z.B. 5 .

Gruß Matjes
 
  • #4
Hui. Danke Matjes. Damit kann ich was anfangen. Vielen Dank! :)
 
Thema:

Druck-Makro für Excel

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben