Clever-Excel-Forum

Normale Version: VBA: Optionsbutton ja, dann Tabelle drucken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo Bernie,

wenn die Checkboxen laufende Nummern haben und die Nummerierung von 11 bis 17 geht, könntest Du es mal so versuchen.

Code:
Private Sub CommandButton1_Click()
  
   Dim vntDruckeTab As Variant
   Dim lngC As Long
  
   vntFesteTab = Array("Tabelle1", "Tabelle2")
  
   For lngC = 11 To 17
      If Me.Controls("CheckBox" & lngC).Value Then Worksheets(vntDruckeTab(lngC - 11)).PrintOut
   Next lngC
  
End Sub
Hallo Bernie,

Ich habe mal wieder in den unendlichen Tiefen meiner Festplatten eines meiner Uraltschätzchen gefunden und entstaubt.
Würde Dir sowas weiterhelfen?  https://www.dropbox.com/s/t4jf5f1p92v859...n.jpg?dl=0  Dann würde ich mal schauen, ob ich das Teil auch wirklich zuende programmiert habe.

Ich würde dann die Datei hier einstellen und die vorhandenen VBA'ler bitten, zu übernehmen, da ich bald in's Krankenhaus muß.
(21.02.2015, 17:34)Steffl schrieb: [ -> ]Hallo Bernie,

wenn die Checkboxen laufende Nummern haben und die Nummerierung von 11 bis 17 geht, könntest Du es mal so versuchen.





Code:
Private Sub CommandButton1_Click()
 
  Dim vntDruckeTab As Variant
  Dim lngC As Long
 
  vntFesteTab = Array("Tabelle1", "Tabelle2")
 
  For lngC = 11 To 17
     If Me.Controls("CheckBox" & lngC).Value Then Worksheets(vntDruckeTab(lngC - 11)).PrintOut
  Next lngC
 
End Sub

Hallo Stefan,

bekomme Fehlermeldung bei "vntFesteTab" = Variable nicht definiert.

Hier eine Abbildung des Eigenschaftenfenster einer Checkbox.
(21.02.2015, 20:12)Käpt schrieb: [ -> ]Hallo Bernie,

Ich habe mal wieder in den unendlichen Tiefen meiner Festplatten eines meiner Uraltschätzchen gefunden und entstaubt.
Würde Dir sowas weiterhelfen?  https://www.dropbox.com/s/t4jf5f1p92v859...n.jpg?dl=0  Dann würde ich mal schauen, ob ich das Teil auch wirklich zuende programmiert habe.

Ich würde dann die Datei hier einstellen und die vorhandenen VBA'ler bitten, zu übernehmen,

Hallo Peter,
Das ist genau das was ich suche. Meine Userform sieht deiner Abbildung ähnlich und ich denke die Verfahrensweise ist so wie ich es mir für mich vorstelle.
Für deine Datei wäre ich Dir sehr dankbar!

Zitat:da ich bald in's Krankenhaus muß.
Dazu wünsche ich Dir von ganzem ♥, dass alles so wird, wie du es dir wünscht. Denn wenn man ganz stark daran glaubt, gehen Wünsche auch in Erfüllung. :100:
Hallo Bernie,

da habe ich beim Umschreiben geschlampert.  :@

Code:
vntDruckeTab = Array("Tabelle1", "Tabelle2")

wobei Du zumindest den Schleifenzähler auch noch anpassen mußt wenn ich sowas wie CheckBox21 lese.
Hallo zusammen,
Hallo Stefan,

ich habe mir die UserForm mit 30 Optionbutton erstellt und bekomme aber mein Vorhaben nicht gebacken.

Mein Ziel ist es, je nach Anwahl der Optionsbutton die dazugehörige Tabelle aus zu drucken. Habe den Code von Stefan wieder entfernt, also alles ohne Code. Innerhalb der Musterdatei habe ich in Tabelle1 erklärt, welche Tabellen überhaut ausgedruckt werden sollen, in der UF Erklärung zu den Optionsbutton.

Vielleicht Hast du Stefan oder jemand anderes eine Idee, ich komme leide nicht weiter.

Danke schon mal im Voraus!!!
Hallo Bernie,

mit den OptionButton wie Du es hast, geht es nicht weil bei diesen, falls Du nicht mit Gruppennamen arbeitest, immer nur eine aktiv sein kann. Nimm die CheckBoxen oder vergebe jedem OptionButton einen Gruppennamen. Wenn die Tabellen immer einen Namen wie Tabelle... haben, kannst Du es so machen (hier mit den checkboxen)

Code:
Private Sub CommandButton1_Click()

  Dim lngC As Long
 
  'die Tabellen werden gedruckt wenn die CHECKBOX!!! den Haken hat (da die ersten 10 immer den Haken hat habe ich es in einer Schleife gemacht)
  For lngC = 1 To 30
     If Me.Controls("CheckBox" & lngC).Value Then Worksheets("Tabelle" & lng + 10).PrintOut
  Next lngC

End Sub
Hallo zusammen,

Ich würde hier eine Listbox einsetzen.
Die Listbox hat eine Multiselect und die Liststyle Eigenschaft Option. 

Damit können bequem mehrere Tabellen ausgewählt und gedruckt werden.

In Bernies Datei habe ich so ein Beispiel mal nur zum shen ohne Code eingearbeitet.
Aber da Programmieren ist dann auch kein Problem.
Ich würde alle in Frage kommende Tabellennamen in eine Tabelle untereinander auflisten und von da diese in die Listbox einlesen.
In einer weiteren Spalte würde ich die fest zu druckenden Tabellennamen auflisten.
[attachment=1596]
Hallo Stefan,
hallo Atilla,

Danke erst mal für eure Bemühungen und entschuldigt, dass ich mich jetzt erst melde. Hatte beruflich viel zu tun.

Ich hatte mir bereits überlegt die einzelnen Checkboxen so anzusprechen ....
Code:
Private Sub UserForm_Initialize()
  CheckBox1 = True
  CheckBox2 = True
  'usw.
End Sub

Private Sub CommandButton1_Click()
  If CheckBox1 = True Then Sheets("AdrDeckblatt").PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
  If CheckBox2 = True Then Sheets("AdrInhalt").PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
  'usw.
End Sub

@Atilla habe mir deine Vorschlag angesehen. Leider habe ich keine Erfahrung, wie ich das umsetzen kann. Könntest du mir vielleicht einen Ansatzpunkt geben?
Hallo Bernie,

leider hattest Du eine Datei hochgeladen die nicht der Realität bezüglich der Tabellennamen entspricht. Somit konnte ich nur eine Lösung mit Worksheets("Tabelle... entwickeln. Wären die Tabellennamen so gewesen, wie sie es tatsächlich sind, hätte ich dir eine angepaßte Lösung gepostet. Dein Vorschlag ist meinerachtens recht umständlich und Du könntest auf den Vergleich mit True verzichten

Code:
 If CheckBox1 Then Sheets("AdrDeckblatt").PrintOut Copies:=1, Collate:=True, _
       IgnorePrintAreas:=False
 If CheckBox2 Then Sheets("AdrInhalt").PrintOut Copies:=1, Collate:=True, _
       IgnorePrintAreas:=False

wobei auch auf Copies und Collate verzichtet werden könnte, da Du nur eine Kopie ausdruckst und standardmäßig eh nur eine Kopie gedruckt und bei einer Kopie nicht sortiert werden muss.
Seiten: 1 2 3 4