Anzeige
Archiv - Navigation
1508to1512
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

Über Listeneinträge Arbeitsblätter ansprechen

Über Listeneinträge Arbeitsblätter ansprechen
11.08.2016 14:58:04
Robson
Hallo,
ich komme gerade nicht wirklich weiter und hoffe, ihr habt einen Tipp für mich. Ich habe mir in einer Userform zwei Listenfelder angelegt. Im ersten Listenfeld werden alle Arbeitsblätter der Arbeitsmappe eingelesen und als Namen in die Liste aufgenommen. Hieraus kann ich dann auswählen, welche Einträge (also Arbeitsblattnamen) in das zweite Listenfeld übertragen werden. Das klappt soweit auch.
Jetzt möchte ich aber mit der jeweiligen Auswahl im zweiten Listenfeld etwas anstellen z.B. einen Druck der Arbeitsblätter einleiten (bzw. Druckvorschau: Ein Dokument für alle ausgewählten Arbeitsblätter). Da hapert es leider gerade... Ich müsste doch irgendwie aus den Einträgen der zweiten Liste (Namen) wieder Arbeitsblätter ansprechen und das dann in einer Schleife für jeden Listeneintrag abarbeiten, oder?
Hat jemand einen Tipp für mich, würde mich sehr freuen :-) Vielen Dank im Vorfeld Robson

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über Listeneinträge Arbeitsblätter ansprechen
11.08.2016 22:03:01
Sepp
Hallo Robson,
das geht vom Prinzip her z. B. so.
Private Sub cmdPrint_Click()
Dim strSheets() As String
Dim intIndex As Integer, intN As Integer

With ListBox1 'Name der Listbox anpassen!
  For intIndex = 0 To .ListCount - 1
    Redim Preserve strSheets(intN)
    strSheets(intN) = .List(intIndex)
    intN = intN + 1
  Next
End With

If intN > 0 Then
  Me.Hide
  ThisWorkbook.Sheets(strSheets).PrintPreview 'Druckvorschau
  'ThisWorkbook.Sheets(strSheets).PrintOut 'Drucken
  Me.Show
End If
End Sub

Gruß Sepp

Anzeige
AW: Über Listeneinträge Arbeitsblätter ansprechen
12.08.2016 10:46:43
Robson
Hallo Sepp,
erstmal danke für deine große Hilfe. Ich hab es damit ans Laufen gebracht. Das ist super.
Einige Gedanken kamen mir bei der Bearbeitung noch:
1. ich möchte, dass die Userform nach dem Druck bzw. der Druckvorschau automatisch schließt (Im Moment ist Sie noch offen). Wie und an welcher Stelle (im cmd Drucken Makro?)kann ich das berücksichtigen?
2. Ebenfalls wäre es super, wenn das zweite Listenfeld nach dem Druck der ausgewählten Blätter wieder automatisch geleert wird. Hast Du eine Idee?
3. Wenn ich für die Auswahl aus Liste 2 über einen weiteren Command Button direkt ein PDF erzeugen möchte statt eines Ausdrucks, wie könnte dann ein code-beispiel lauten?
Besten Dank und ein schönes Wochenende
Robson
Anzeige
AW: Über Listeneinträge Arbeitsblätter ansprechen
12.08.2016 21:16:46
Sepp
Hallo Robson,
zu 1: Statt Me.Show, Unload Me
Zu 2: ListBox1.Clear
Zu 3:
Private Sub cmdPDF_Click()
Dim strSheets() As Variant
Dim intIndex As Integer, intN As Integer

With ListBox1 'Name der Listbox anpassen!
  For intIndex = 0 To .ListCount - 1
    Redim Preserve strSheets(intN)
    strSheets(intN) = .List(intIndex)
    intN = intN + 1
  Next
End With

If intN > 0 Then
  Application.EnableEvents = False
  Application.ScreenUpdating = False
  Me.Hide
  ThisWorkbook.Sheets(strSheets).Copy
  
  With ActiveWorkbook
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Dein Pfad\Dateiname.pdf", _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, OpenAfterPublish:=False
    .Close False
  End With
  Application.EnableEvents = True
  Application.ScreenUpdating = True
  Unload Me
End If
End Sub

Gruß Sepp

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige