vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: Excel-Datei kopieren, aber wie 
Autor: MrByte
Datum: 16.10.02 10:39

ich schmeiß derer doch alles hinterher

 
Public Sub MakeReport(Monat As String, AnfDatum As Date, EndeDatum As Date, _
  Datei As String, Lis() As String)
    Dim Kal As clsKal
    Dim ExcelApp As Excel.Application
    Dim Wb As Workbook, WbNeu As Workbook
    Dim Ws As Worksheet, WsNeu As Worksheet
    Dim Index As Integer, Zeile As Integer, WertAnfang As Integer, Anfang As _
      Integer, Ende As Integer, ZeileSumme As Integer, AnzWert As Integer
    Dim Spalte As typSpIndex, SpDatum  As typSpIndex, SpBeschreibung     As _
    typSpIndex, SpZeit   As typSpIndex
    Dim SpGleitzeit   As typSpIndex, SpSaldoZeit   As typSpIndex, _
    SpSaldoGleitzeit As typSpIndex
    Dim Rng As Range
    Dim CellStr1 As String, CellStr2 As String, Wert As String, AltWert As _
      String
    Dim Werte() As typWert
 
    Set Kal = New clsKal
    AnfDatum = "1.10.2001"
    EndeDatum = "30.9.2002"
    Kal.InitKal AnfDatum, EndeDatum
    SetSpIndex
    Set ExcelApp = New Excel.Application
 
    Set Wb = ExcelApp.Workbooks.Open(Datei)
    Set Ws = Wb.Worksheets.Item(Monat)
    MsgBox CStr(Ws.Cells.SpecialCells(xlCellTypeLastCell).Address)
    MsgBox CStr(Ws.Cells.SpecialCells(xlCellTypeLastCell).Row)
 
    SpDatum = GetSpalte("Datum")
    SpBeschreibung = GetSpalte("Beschr")
    SpZeit = GetSpalte("Zeit")
    SpGleitzeit = GetSpalte("Gleitzeit")
    SpSaldoZeit = GetSpalte("SaldoZeit")
    SpSaldoGleitzeit = GetSpalte("SaldoGleitZeit")
    Anfang = 3
    For Zeile = Anfang To 6500
        If Ws.Cells(Zeile, SpDatum.Spalte) = "Summe" Then
            Ende = Zeile - 2
            ZeileSumme = Zeile
            Exit For
        End If
    Next Zeile
    Set WbNeu = ExcelApp.Workbooks.Add
    If WbNeu.Worksheets.Count > 0 Then Set WsNeu = WbNeu.Worksheets.Item(1)
    CellStr1 = SpalteBuch(SpDatum.Spalte) + "1"
    CellStr2 = SpalteBuch(SpSaldoZeit.Spalte) + CStr(ZeileSumme)
    Set Rng = Ws.Range(CellStr1 + ":" + CellStr2)
    Rng.Copy
    WsNeu.Paste
    CellStr1 = SpalteBuch(SpDatum.Spalte) + "2"
    CellStr2 = SpalteBuch(SpSaldoZeit.Spalte) + CStr(Ende)
    Set Rng = WsNeu.Range(CellStr1 + ":" + CellStr2)
    Rng.Sort WsNeu.Columns(SpBeschreibung.Spalte), xlAscending, , , , , , xlNo
    WertAnfang = SpDatum.Spalte + 2
    For Zeile = SpDatum.Spalte + 2 To Ende + 1
        If Not (Wert = "") Then AltWert = Wert
        Wert = WsNeu.Cells(Zeile, SpBeschreibung.Spalte)
        If Not (Wert = AltWert) And Not (AltWert = "") Then
            WsNeu.Rows(Zeile).Insert
            WsNeu.Cells(Zeile, SpZeit.Spalte).Formula = "=SUM(" + SpalteBuch( _
              SpZeit.Spalte) + "$" + _
            CStr(WertAnfang - 1) + ":" + SpalteBuch(SpZeit.Spalte) + "$" + CStr( _
            Zeile - 1) + ")"
            If Not (WsNeu.Cells(Zeile, SpZeit.Spalte) = 0) Then
                ReDim Preserve Werte(AnzWert + 1)
                Werte(AnzWert).Name = AltWert
                Werte(AnzWert).Wert = WsNeu.Cells(Zeile, SpZeit.Spalte)
                AnzWert = AnzWert + 1
            End If
            WertAnfang = Zeile + 2
        End If
    Next Zeile
    CellStr1 = SpalteBuch(SpDatum.Spalte) + "1"
    CellStr2 = SpalteBuch(SpSaldoZeit.Spalte) + CStr(2000)
    Set Rng = WsNeu.Range(CellStr1 + ":" + CellStr2)
    Rng.Clear
    Set Rng = WsNeu.Range("A1")
    Rng.Select
    WsNeu.Cells(1, 1) = "Projekt"
    WsNeu.Cells(1, 2) = "Summe für " + Monat
    For Zeile = 0 To UBound(Werte()) - 1
        WsNeu.Cells(Zeile + 2, 1) = Werte(Zeile).Name
        WsNeu.Cells(Zeile + 2, 2) = Werte(Zeile).Wert
    Next Zeile
    Zeile = Zeile + 3
    WsNeu.Cells(Zeile, 1) = "Stunden für " + Monat
    WsNeu.Cells(Zeile, 2) = Ws.Cells(ZeileSumme, SpZeit.Spalte)
    Zeile = Zeile + 2
    WsNeu.Cells(Zeile, 1) = "Gleitzeit genommen für " + Monat
    WsNeu.Cells(Zeile, 2) = Ws.Cells(ZeileSumme, SpGleitzeit.Spalte)
     Zeile = Zeile + 2
    WsNeu.Cells(Zeile, 1) = "Saldo Zeit Geschäftsjahr"
    WsNeu.Cells(Zeile, 2) = Ws.Cells(ZeileSumme, SpSaldoZeit.Spalte)
    Zeile = Zeile + 2
    WsNeu.Cells(Zeile, 1) = "Saldo Gleitzeit Geschäftsjahr"
    WsNeu.Cells(Zeile, 2) = Ws.Cells(ZeileSumme, SpSaldoGleitzeit.Spalte)
    WsNeu.Columns.AutoFit
    WbNeu.SendMail Lis, "Stunden für " + Monat
    WbNeu.Saved = True
    WbNeu.Close
    Wb.Close
    ExcelApp.Quit
End Sub

NS

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Excel-Datei kopieren, aber wie127Mampfi16.10.02 10:13
Re: Excel-Datei kopieren, aber wie518MrByte16.10.02 10:39
Re: Excel-Datei kopieren, aber wie58Mampfi16.10.02 11:37
Re: Excel-Datei kopieren, aber wie407MrByte16.10.02 12:04
...67Mampfi16.10.02 12:14
Re: ...439MrByte16.10.02 12:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel