Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

neue Excelmappe erstellen

neue Excelmappe erstellen
17.04.2007 21:01:00
Korl
Hallo,
ich habe eine Liste mit 7 Spalten und max. 5001 Zeilen.
Der Inhalt enthält unterschiedlich viele Gruppen die jährlich neu formiert werden.
Das heißt, die Gruppen erhalten jeweils Zu- und Abgänge.
Bis her habe ich die Ergebnisse per Ausdruck dokumentiert. Dieses konnte ich bereits soweit automatisieren, indem ich mir eine UF mit einer ComboBox gebastelt habe.
In der ComboBox befinden sich die Gruppennummern, die ich einzeln für den Ausdruck aufgerufen habe.
Dies ist mein Code für die Vorbereitung zum Ausdruck.
Nun möchte ich gerne per Button eine neue Excelmappe erzeugen und pro Inhalt der ComboBox ein eigenes Tabellenblatt darin anlegen und die Inhalte dort hinein kopieren.
Sub Auslagern()
Set wksKreis = Worksheets("Kreis")
Set wksT1 = Worksheets("Temp1")
Set wksOrt = Worksheets("Ortslist")
Application.ScreenUpdating = False
Application.EnableEvents = False
'Gesamt
On Error Resume Next
wksKreis.ShowAllData
If ufAuswahl.ComboBox1.Value = "" Then
    MsgBox ("Es muß schon eine KBZ-Nummer ausgesucht werden,") & vbLf & " " _
            & vbLf & "die dann übernommen werden soll !"
    Exit Sub
    Else
    lLetzteK = IIf(wksKreis.Range("D65536")  "", 65536, wksKreis.Range("D65536").End(xlUp).Row)
    lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
    wksKreis.Range("A1:G" & lLetzteK).AutoFilter Field:=5, Criteria1:=ufAuswahl.ComboBox1.Value, VisibleDropDown:=False
    wksKreis.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
    wksT1.Range("A1")
    lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
    Call Rahmen_setzen_gestrichelt
    With wksT1
        .Range("B" & lLetzteT + 2) = "KBZ"
        .Range("B" & lLetzteT + 2).HorizontalAlignment = xlRight
        .Range("C" & lLetzteT + 2) = ufAuswahl.ComboBox1.Value & "    " & "Summe-Gesamt:"
        .Range("D" & lLetzteT + 2) = wksKreis.Range("D5004").Value
        .Range("D" & lLetzteT + 2).NumberFormat = "#,##0.00"
          With .Range("B" & lLetzteT, "E" & lLetzteT + 2).Borders(xlEdgeBottom)
             .LineStyle = xlDouble
          End With
        lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
        .Range("B" & lLetzteT, "E" & lLetzteT + 2).Font.Bold = True
    End With
    lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
        wksT1.HPageBreaks.Add Range("A" & lLetzteT + 1)
    
'Zugang
    lLetzteK = IIf(wksKreis.Range("D65536")  "", 65536, wksKreis.Range("D65536").End(xlUp).Row)
    lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
    wksKreis.Range("A1:G" & lLetzteK).AutoFilter Field:=5, Criteria1:=ufAuswahl.ComboBox1.Value, VisibleDropDown:=False
    wksKreis.Range("A1:G" & lLetzteT).AutoFilter Field:=6, Criteria1:="Wechsel", VisibleDropDown:=False
    If wksKreis.Range("I1") = 0 Then
      Else
        
        lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
        wksT1.Range("B" & lLetzteT + 1) = "Zugang"
        wksKreis.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
        wksT1.Range("A" & lLetzteT + 2)
        
        With wksT1
            lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
            .Range("B" & lLetzteT + 2) = "Kehrbezirk"
            .Range("B" & lLetzteT + 2).HorizontalAlignment = xlRight
            .Range("C" & lLetzteT + 2) = ufAuswahl.ComboBox1.Value & "     " & "Summe-Zugang:"
            .Range("D" & lLetzteT + 2) = wksKreis.Range("D5004").Value
            .Range("D" & lLetzteT + 2).NumberFormat = "#,##0.00"
              With .Range("B" & lLetzteT, "E" & lLetzteT + 2).Borders(xlEdgeBottom)
                 .LineStyle = xlDouble
              End With
             lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
            .Range("B" & lLetzteT, "E" & lLetzteT + 2).Font.Bold = True
        End With
    End If
'Abgang
    On Error Resume Next
    wksKreis.ShowAllData
    lLetzteK = IIf(wksKreis.Range("D65536")  "", 65536, wksKreis.Range("D65536").End(xlUp).Row)
    lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
    wksKreis.Range("A1:G" & lLetzteT).AutoFilter Field:=7, Criteria1:=ufAuswahl.ComboBox1.Value, VisibleDropDown:=False
    wksKreis.Range("A1:G" & lLetzteT).AutoFilter Field:=6, Criteria1:="Wechsel", VisibleDropDown:=False
    
    If wksKreis.Range("I1") = 0 Then
      Else
        lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
        wksT1.Range("B" & lLetzteT + 3) = "Abgang"
        wksKreis.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
        wksT1.Range("A" & lLetzteT + 4)
        
        With wksT1
            lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
            .Range("B" & lLetzteT + 2) = "Kehrbezirk"
            .Range("B" & lLetzteT + 2).HorizontalAlignment = xlRight
            .Range("C" & lLetzteT + 2) = ufAuswahl.ComboBox1.Value & "     " & "Summe-Abgang:"
            .Range("D" & lLetzteT + 2) = wksKreis.Range("D5004").Value
            .Range("D" & lLetzteT + 2).NumberFormat = "#,##0.00"
              With .Range("B" & lLetzteT, "E" & lLetzteT + 2).Borders(xlEdgeBottom)
                 .LineStyle = xlDouble
              End With
            lLetzteT = IIf(wksT1.Range("D65536")  "", 65536, wksT1.Range("D65536").End(xlUp).Row)
            .Range("B" & lLetzteT, "E" & lLetzteT + 2).Font.Bold = True
        End With
    End If
    
  
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
Ist meine Wunschvorstellung so ohne weiteres zu machen?
Gruß Korl

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

Betreff
Datum
Anwender
Anzeige
AW: neue Excelmappe erstellen
19.04.2007 14:43:16
Korl
Hallo,
dank Archiv, bin ich schon einen gewaltigen Schritt vorwerts gekommen.
On Error Resume Next
If Worksheets(ufAuswahl.ComboBox1.Value) Is Nothing Then
Worksheets.Add.Name = ufAuswahl.ComboBox1.Value
Set wksZ = Worksheets(ufAuswahl.ComboBox1.Value)
mein Code
Else
MsgBox "Das Tabelleblatt für den Kreis " & ufAuswahl.ComboBox1.Value & " wurde schon angelegt! ", 16, "Abbruch"
Exit Sub
End If
Ich habe nun erreicht, das ich mir mehrere Tabellenblätter einzeln angelegt habe mit den jeweiligen Namen aus der Liste der ComboBox1.
Nun möchte ich diese erzeugten Tabellenblätter mit einem Rutsch in ein neues Workbook verschieben.
Daran strauchele ich im Moment noch.
Wenn mir hier jemand nur einen Anstoß geben könnte, währe ich schon zufrieden.
Gruß Korl

Anzeige
AW: neue Excelmappe erstellen
19.04.2007 14:43:51
Korl
offen

AW: neue Excelmappe erstellen
19.04.2007 17:50:00
Korl
Hallo,
ich habe jetzt auch dies noch allein erledigen können.
Sub Mappe_erzeugen()
Dim wks As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Goto zu
Application.SheetsInNewWorkbook = 1 '0 geht nicht
Workbooks.Add
ActiveSheet.Name = "Hallo"
For Each wks In ThisWorkbook.Worksheets
  If wks.Name <> "Ortslist" And wks.Name <> "Temp1" And wks.Name <> "Kreis" Then
    ThisWorkbook.Worksheets(wks.Name).Move after:=ActiveWorkbook.Sheets(1)
    End If
Next
Worksheets("Hallo").Delete
Exit Sub
zu:
Application.ScreenUpdating = False
ActiveWorkbook.Close
MsgBox "Es sind keine Blätter zum verschieben vorhanden!  ", 16, "Abbruch"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Gruß Korl
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige