HERBERS Excel-Forum - die Dialoge

Thema: Ausgewählte Blätter speichern

Home
Die der Listbox ausgewählten Arbeitsblätter werden in einer neuen Arbeitsmappe gespeichert. Ausgewählte Blätter speichern
  • Prozedur: cmdOK_Click
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Ausgewählte Blätter speichern
  • Ablaufbeschreibung:
    • Variablendeklaration
    • Bildschirmaktualisierung ausschalten
    • Den Standardarbeitsordner mit einem nachgestellten BackSlash in eine Stirng-Variable einlesen
    • Schleife über alle Elemente der ListBox bilden
    • Wenn das aktuelle Element ausgewählt ist...
    • Array neu dimensionieren
    • Das aktuelle Element in das Array einlesen
    • Die im Array zusammengefassten, ausgewählten Arbeitsblätter kopieren
    • Warnmeldungen ausschalten
    • Die kopeirten Arbeitsblätter als Arbeitsmappe speichern
    • Warnmeldungen einschalten
    • Aktive Arbeitsmappe schließen
    • Bildschirmaktualisierung einschalten
    • UserForm schließen
  • Code:

    
    Private Sub cmdOK_Click()
       Dim arr() As String
       Dim iRow As Integer, iCounter As Integer
       Dim sPath As String
       Application.ScreenUpdating = False
       sPath = Application.DefaultFilePath & "\"
       For iRow = 0 To lstSheets.ListCount - 1
          If lstSheets.Selected(iRow) Then
             iCounter = iCounter + 1
             ReDim Preserve arr(1 To iCounter)
             arr(iCounter) = Worksheets(lstSheets.List(iRow)).Name
          End If
       Next iRow
       Worksheets(arr).Copy
       Application.DisplayAlerts = False
       ActiveWorkbook.SaveAs sPath & "test.xls"
       Application.DisplayAlerts = True
       ActiveWorkbook.Close savechanges:=False
       Application.ScreenUpdating = True
       Unload Me
    End Sub