Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Userform macht Probleme
#11
Danke, habe den Userformcode nun so geändert. Nun funktioniert alles:
Code:
Private Sub CmdAnzeigen_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
 For Each it In GetObject(ThisWorkbook.Path & "\H4.xls").Sheets
   c00 = c00 & "|" & it.Name
 Next
 Listbox1.List = Split(Mid(c00, 2), "|")
 
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Workbooks("H4.xls").Close SaveChanges:=False
End Sub

Private Sub CmdDrucken_Click()
 With GetObject(ThisWorkbook.Path & "\H4.xls")
   For j = 0 To Listbox1.ListCount - 1
    If Listbox1.Selected(j) Then .Sheets(Listbox1.List(j, 0)).PrintOut
   Next
 End With
End Sub
Nun habe ich mir überlegt 3 Optionsfelder auf der Userform zu erstellen, über die ein Drucker angesprochen wird. Habe mich da auch etwas belesen und folgenden Codeschnipsel gefunden:
Code:
 Dim sDruckerAktuell As String
 'Aktuellen Drucker merken
 sDruckerAktuell = Application.ActivePrinter
 Application.ActivePrinter = "OKI C5950 auf Ne01:"
  'alten Standartdrucker aktivieren
 Application.ActivePrinter = sDruckerAktuell
Ich denke mal, ich bekomme es hin, diese auf das jeweilige Optionsfeld einzuprogrammieren (mit "if"), aber wie und an welcher Stelle muss dies in mein Code?
Antworten Top
#12
Keiner eine Idee?
Antworten Top
#13
Hallöchen,

ich würde den Code in ein gesondertes Sub schreiben und dieses aus dem Change-Ereignis der Options aufrufen. Eventuell kannst Du dem auch einen spezifischen Zähler mitgeben, z.B. Call DruckerWahl 2.

Im Prinzip so das Sub:

Code:
Sub Druckerwahl(byval OptionNr as Integer)
Select Case OptionNr
  Case 1 'Drucker 1
  ...
  Case 2 'Drucker 2
  ...
  Case 3 'Drucker 3
End Select
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#14
Hallöchen,

für die Optionbuttons hast Du ja ebenfalls Click-Ereignisse... Du müsstest dann nur noch die anderen beiden Drucker einbinden und natürlich auch noch drucken, wenn Du am Ende den Drucker wieder zurück stellst. Ansonsten macht das ja keinen Sinn.

Code:
Private Sub OptionButton1_Click()
Call DruckerWahl 1
End Sub
Private Sub OptionButton2_Click()
Call DruckerWahl 2
End Sub
Private Sub OptionButton3_Click()
Call DruckerWahl 3
End Sub

Code:
Sub Druckerwahl(byval OptionNr as Integer)
Dim sDruckerAktuell As String
 'Aktuellen Drucker merken
sDruckerAktuell = Application.ActivePrinter
Select Case OptionNr
  Case 1 'Drucker 1
    Application.ActivePrinter = "OKI C5950 auf Ne01:"
    'Drucken
    ...
  Case 2 'Drucker 2
  ...
  Case 3 'Drucker 3
  ...
End Select
'alten Standartdrucker aktivieren
Application.ActivePrinter = sDruckerAktuell
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Diese Methode kannte ich noch garnicht. Ist aber augenscheinlich einfacher als "if" Befehle. Da ich nun auch einen Datenübertrag habe, ist es schwieriger dies in mein Code zu bekommen. Hier mal mein Userform-Code:
Code:
Private Sub CmdAnzeigen_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
 For Each it In GetObject(ThisWorkbook.Path & "\H4.xls").Sheets
   c00 = c00 & "|" & it.Name
 Next
 Listbox1.List = Split(Mid(c00, 2), "|")
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Workbooks("H4.xls").Close SaveChanges:=False
End Sub

Private Sub CmdDrucken_Click()
 With GetObject(ThisWorkbook.Path & "\H4.xls")
   For j = 0 To Listbox1.ListCount - 1
    If Listbox1.Selected(j) Then .Sheets(Listbox1.List(j, 0)).PrintOut
   Next
 End With
End Sub
Es muss ja irgendwie in den CmdDrucken Sub :s
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste