HERBERS Excel-Forum - die Dialoge

Thema: Mehrfachauswahl in neue Arbeitsmappe

Home
In der ListBox werden die Spalten C:D gelistet. Die ausgewählten Zeilen werden komplett in eine zweite Arbeitsmappe übertragen. Eine Mehrfachauswahl ist möglich. Mehrfachauswahl in neue Arbeitsmappe
  • Prozedur: UserForm_Initialize
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Spalten C:D in ListBox lesen
  • Ablaufbeschreibung:
    • Spalten C:D in ListBox einlesen
  • Code:

    
    Private Sub UserForm_Initialize()
       lstAuswahl.List = Range("A1") _
          .CurrentRegion.Columns("C:D").Value
    End Sub
    
  • Prozedur: cmdEintragen_Click
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Ausgewählte Zeilen in neue Arbeitsmappe schreiben
  • Ablaufbeschreibung:
    • Variablendeklaration
    • Aktives Arbeitsblatt an eine Objekt-Variable übergeben
    • Neue Arbeitsmappe anlegen
    • Zelle A1 an eine Bereichs-Objekt-Variable übergeben
    • Schleife über alle ListBox-Elemente bilden
    • Wenn das aktuelle Element ausgewählt ist...
    • Korrespondierende Zeile aus dem Quell-Arbeitsblatt in das Ziel-Arbeitsblatt an die Position Bereich-Objektvariablen kopieren
    • Bereich-Objektvariable neu festlegen
  • Code:

    
    Private Sub cmdEintragen_Click()
       Dim wks As Worksheet
       Dim rng As Range
       Dim iCounter As Integer
       Set wks = ActiveSheet
       Workbooks.Add
       Set rng = ActiveSheet.Range("A1")
       For iCounter = 0 To lstAuswahl.ListCount - 1
          If lstAuswahl.Selected(iCounter) Then
             wks.Rows(iCounter + 1).Copy rng
             Set rng = rng.Offset(1, 0)
          End If
       Next iCounter
    End Sub