Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Druckauftrag

Druckauftrag
18.09.2014 09:42:32
Alexa
Guten morgen zusammen,
ich habe folgendes Problem:
Ich habe eine Exceldatei mit 12 Seiten. Jede Seite beinhaltet einen Reinigungsplan für einen Monat (Jan-Dez)
Dazu gibt es noch 5 Reiter für je einen Raum.
Jetzt habe ich ein UserForm gemacht mit einer Dropdownliste, in der man Jan bis Dez auswählen kann.
Könnt ihr mir jetzt dabei helfen, dass wenn ein Monat ausgewählt wurde (und bestätigt), dass dann in jedem Reiter die jeweilige Seite gedruckt wird?
Vielen Dank schon mal
Liebe Grüße
Alexa

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckauftrag
18.09.2014 10:13:50
yummi
Hallo alexa,
lad mal die Datei hoch
Gruß
yummi

AW: Druckauftrag
18.09.2014 10:28:34
Alexa
https://www.herber.de/bbs/user/92701.xlsm
Das ist eine Beispieldatei..leider nur mit 1 Reiter, da sie sonst zu groß ist...auf jedem weiteren Reiter ist aber genau das Gleiche drauf, nur mit anderen Räumen.
Immer der Teil unter Wartung und Reinigung soll 1 Seite sein.
Danke;-)

Gib mal weitere Infos
18.09.2014 10:47:53
yummi
Hallo Alexa,
wenn ich mich gerade nicht ganz doll verguckt habe sind deine Seiten unterschiedlich groß (ob Absicht oder nicht). Du kannst also den Bereich festlegen, der gedruckt werden soll (ich nehme mal an jeweils von Wartung bis unterschreiben)

With Sheets("Tabelle1")
'Druckbereich festlegen:
.PageSetup.PrintArea = "$A$1:$B$10"  'hier deinen Bereich angeben
'Drucken:
.PrintOut
'Druckbereich aufheben:
.PageSetup.PrintArea = ""
End With
gib mal bitte an welchen Bereich du jeweils drucken willst und wie du dein Userform aufrufen willst,
dann guck ich mal was ich da machen kann.
Gruß
yummi

Anzeige
AW: Gib mal weitere Infos
18.09.2014 10:57:38
Alexa
Der Druckbereich ist im Januar: A1-CL30
Februar: A31-CL60
März: A61-CL90
April: A91-CL120
Mai: A121-CL150
Juni:A151-CL180
Juli: A181-CL210
August:A211-CL240
September:A241-CL270
Oktober:A271-CL300
Novermber:A301-CL330
Dezember:A331-CL360
Da UserForm rufe ich so auf:
Private Sub CommandButton1_Click()
UserForm2.Show
Visible = False ' mache Button unsichtbar, sonst holperts ein wenig
AutoSize = True  ' Zeichnet den Button korrekt um den Text, der dann wieder die Originalgrösse  _
hat
AutoSize = False  ' Schalte vom Automaticmodus wieder in Fix- Modus
Height = 82.5  ' Zeichne Buttonhöhe wieder auf die von mir vorgesehene Höhe
Weight = 200.25  ' Zeichne Buttonbreite wieder auf die von mir festgelegte Breite
Visible = True  ' mache den Button jetzt wieder mit den richtigen Werten sichtbar. End With
End Sub
Und dann hab ich dort eine Dropdownliste der Monate, die ich auf einem Reiter Stammdaten habe:
Private Sub userform_Initialize() ' Dropdownliste
Dim wiederholungen As Integer
For wiederholungen = 2 To Sheets("Stammdaten").Range("A65536").End(xlUp).Row
ComboBox1.AddItem Sheets("Stammdaten").Cells(wiederholungen, 1)
Next
End Sub

Anzeige
AW: Gib mal weitere Infos
18.09.2014 11:10:31
yummi
Hallo Alexa,
das ist in der von dir hochgeladenen Datei nicht dabei. Weder Userform2 noch dein Commandbutton. Hast du wohl beim kleiner machen wegoptimiert :-)
Du hast ja den Index deines gewählten Monats aus der Userform, dann weißt du auch wie der zu druckende Bereich lautet

function DruckeBereich(ByVal wks as worksheet; ByVal strRange as string)
With wks
'Druckbereich festlegen:
.PageSetup.PrintArea = str
'Drucken:
.PrintOut
'Druckbereich aufheben:
.PageSetup.PrintArea = ""
End With
end function
Zum Aufruf
wenn z.B Januar gewählt:
call DruckeBereich (Thisworkbook.Sheets("deinSheet"), "A1-CL30")
hilft dir das weiter, dass du es selber umsetzen kannst?
sonst musst Du nochmal die Datei mit deinem Userform2 und commandButton hochladen
Gruß
yummi

Anzeige
AW: Gib mal weitere Infos
18.09.2014 11:18:02
Alexa

Die Datei https://www.herber.de/bbs/user/92703.xlsm wurde aus Datenschutzgründen gelöscht


Jetzt ist des UserForm auch drin...
Danke für deine Hilfe..

AW: Gib mal weitere Infos
18.09.2014 11:05:58
Alexa
Ich hab auf dem UserForm noch nen Button "Drucken"..
Wenn der gedrückt wird, sollen eben die Pläne gedruckt werden für den jeweiligen Monat
Vielen Dank;-)

AW: Gib mal weitere Infos
18.09.2014 11:12:29
yummi
Hallo Alexa,
an dieser Stelle dann die function aus dem letzen post aufrufen
Gruß
yummi

AW: Gib mal weitere Infos
18.09.2014 11:26:30
Alexa

Private Sub CommandButton1_Click()
Call DruckeBereich(ThisWorkbook.Sheets("Raum1"), "A1-CL30")
End Sub

Function DruckeBereich(ByVal wks As Worksheet, ByVal strRange As String)

With wks
'Druckbereich festlegen:
.PageSetup.PrintArea = Str
'Drucken:
.PrintOut
'Druckbereich aufheben:
.PageSetup.PrintArea = ""
End With
End Function Ich habs jetzt so reingeschrieben,
dann kommt aber die Meldung: Argument ist nicht optional und der Teil den ich fett markiert hab leuchtet gelb...

Anzeige
AW: Gib mal weitere Infos
18.09.2014 11:37:57
yummi
Hallo Alexa,
sry war syntax fehler. ich hab es mal in der angehängten datei ungetestet eingesetzt, da noch ein paar sheets fehlen. Evtl musst du den Sheetnamen noch anpassen, sonnst sollte es eigentlich klappen.
In Modul1 die neue funktion und den Druckbutton mit code hinterlegt. Wobei ich davon ausgegangen bin, das deine Combobox1 mit den Monatsnamen gefüllt wird. Kann ich nicht sehen, da das Sheet Stammdaten, von wo du die Daten holst fehlt.
sollte aber so passen https://www.herber.de/bbs/user/92704.xlsm
Gruß
yummi

Anzeige
AW: Gib mal weitere Infos
18.09.2014 12:36:37
Alexa
Hey,
es wird mir ein Fehler angezeigt: Der eingegebene Text ist kein gültiger Bezug oder kein gültiger Name, Laufzeitfehler 1004...
was mache ich falsch?

AW: Gib mal weitere Infos
18.09.2014 12:53:05
yummi
Hallo Alexa,
laufzeitfehler1004 deutet auf einen verwendeten Namen hin, den es nicht gibt z.B. ein Sheet
wenn du mit dem debugger schritt für schritt durchgehst zeigt er dir genau die zeile an wo es fehlschlägt. Da teile deiner Datei gefehlt haben, musste ich ein paar Annahmen treffen wie z.B. das in der Combobox die Monatsnamen stehen.
Wenn du die Zeile gefunden hast, kannst du dir anschauen was genau in der Variablen drinsteht. Wenn es eine Stelle ist, wo der wert hardcoded ist, kannst du ihn einfach anpassen. Wenn es eine Stele ist, wo etwas zusammen gesetzt wird, dann musst du die Stelle anfassen, wo es zusammen gesetzt wird.
Wie gesagt, dadurch das die Hälfte gefehlt hat konnte ich es nicht testen.
Gruß
yummi

Anzeige
AW: Gib mal weitere Infos
18.09.2014 12:54:59
Alexa
.PageSetup.PrintArea = strRange
Hier sei der Fehler sagt er mir

AW: Gib mal weitere Infos
18.09.2014 13:08:44
yummi
dann liegt es an strRange
was steht da drin?
sollte so etwas wie A1:CL30 sein
sonst musst du das vor dem aufruf der Funktion bei deinem Button Code anpassen.
Gruß
yummi

AW: Gib mal weitere Infos
19.09.2014 07:30:27
Alexa
Guten morgen, also er druckt jetzt.
Ich habe im Modul 1 stehen:
Function DruckeBereich(ByVal wks As Worksheet, ByVal strRange As String)
With wks
'Druckbereich festlegen:
.PageSetup.PrintArea = strRange
'Drucken:
.PrintOut
'Druckbereich aufheben:
.PageSetup.PrintArea = ""
End With
End Function
Und im UserForm:
Private Sub CommandButton1_Click()
'falls in der Combobox1 die monate stehen, da Sheet Stammdaten nicht dabei ist
Dim strRange As String
'angenommen listindex 1 ist januar 2 februar usw
strRange = "A" & Me.ComboBox1.ListIndex & ":CL" & Me.ComboBox1.ListIndex * 30
Call DruckeBereich(ThisWorkbook.Sheets("M4746.Bihler"), strRange)
End Sub

Private Sub userform_Initialize() ' Dropdownliste
Dim wiederholungen As Integer
For wiederholungen = 2 To Sheets("Stammdaten").Range("A65536").End(xlUp).Row
ComboBox1.AddItem Sheets("Stammdaten").Cells(wiederholungen, 1)
Next
End Sub
(Januar-Dezember stehen im Reiter Stammdaten in A2-A13)
Das Problem jetzt ist, dass er die Fehlermeldung bei Januareingabe bringt. Was mache ich falsch?
Danke und Grüße
Alexa

Anzeige
AW: Gib mal weitere Infos
19.09.2014 10:40:21
yummi
Hallo alexa,
kannst Du bitte mal überprüfen, ob evtl der Druck jeweils für den Vormonat des eigentlcih gewählten Montat ausgeführt wird, also Du wählst Februar, gedruckt wird Januar usw.
Wenn das so ist, dann ändere in CommandButton1Click das fett gedruckte
strRange = "A" & Me.ComboBox1.ListIndex+1 & ":CL" & (Me.ComboBox1.ListIndex +1) * 30
Wenn das nicht hilft musst du versuchen die komplette Datei posten (vlt als zip)
Gruß
yummi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige