Stundenerfassen Baugewerbe



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Stundenerfassen Baugewerbe
von: Olga
Geschrieben am: 06.07.2002 - 17:26:41

Hallo Forumfreunde.
Ich suche neue Lösung für Mein Problem
Stundenerfassung läuft jetzt folgendermaßen ab.
es gibt für jeden Monat ein Tabellenblatt und Krank und Urlaub.
in den Monatsmappen 1. Spalte Name 2. Spalte Personal Nr., 3. Spalte K (für Krank) 4. U (Urlaub)5-35..Die Tage(1-31).
Nachvollziehung nach Baustellen nicht möglich da es nicht erfasst wird. Wie kann man es so einrichten dass es in einem separaten Tabellenblatt Baustellennr. Datum Name Personal-Nr. und Stunden eingetragen werden und es bei gleichen Tag und gleichen Namen die Stunden zusammengezählt werden und in die Monatasmappe bei dazugehärigen Tag und Namen kopiet werden.

Vielen Dank für jeden Tipp

Olga


nach oben   nach unten

Re: Stundenerfassen Baugewerbe
von: Dieter Klemke
Geschrieben am: 06.07.2002 - 20:41:27

Hallo Olga,
ich denke, man sollte zu deinem Problem ein VBA-Programm schreiben.
Ich gehe von den folgenden Voraussetzungen aus:
Monate.xls - Arbeitsmappe mit den Monatsblättern
Baustellen.xls - Arbeitsmappe mit den Stundeninfos nach Baustellen
Das VBA-Programm ist so geschrieben, dass es in der Baustellen.xls steht.
Es könnte so aussehen:

Option Explicit
Public wbM As Workbook

Sub Stunden_übernehmen()
Dim datum As Date
Dim mitarbeiter As String
Dim persnr As String
Dim stunden As Double
Dim wbB As Workbook
Dim wsB As Worksheet
Dim zeile As Long

Set wbB = ThisWorkbook
Set wbM = Workbooks("Monate.xls")
Set wsB = wbB.Worksheets(1)
wsB.Range("A1").Sort Key1:=wsB.Range("A2"), _
Key2:=wsB.Range("D2"), _
Key3:=wsB.Range("B2"), _
Header:=xlYes
zeile = 2
stunden = 0
Do Until IsEmpty(wsB.Cells(zeile, 1))
stunden = stunden + wsB.Cells(zeile, 5) ' Stunden in Sp. E
If wsB.Cells(zeile, 1) <> wsB.Cells(zeile + 1, 1) Or _
wsB.Cells(zeile, 4) <> wsB.Cells(zeile + 1, 4) Or _
wsB.Cells(zeile, 2) <> wsB.Cells(zeile + 1, 2) Then
' letzte Zeile von Mitarbeiter und Tag
mitarbeiter = wsB.Cells(zeile, 1) ' Name in Sp. A
persnr = wsB.Cells(zeile, 4) ' Personalnr. in Sp. D
datum = wsB.Cells(zeile, 2) ' Datum in Sp. B
StundenSchreiben mitarbeiter, persnr, datum, stunden
stunden = 0
End If
zeile = zeile + 1
Loop
End Sub

Sub StundenSchreiben(mitarbeiter As String, _
persnr As String, _
datum As Date, _
stunden As Double)

Dim monat As Long
Dim tag As Long
Dim wsM As Worksheet
Dim zeile As Long

monat = Month(datum)
tag = Day(datum)
Set wsM = wbM.Worksheets(monat)
zeile = 2
Do Until IsEmpty(wsM.Cells(zeile, 1))
If wsM.Cells(zeile, 1) = mitarbeiter And _
wsM.Cells(zeile, 2) = persnr Then
' Mitarbeiter gefunden
wsM.Cells(zeile, 4 + tag) = stunden
End If
zeile = zeile + 1
Loop
End Sub

Es muß aber nochmal intensiv getestet werden.

MfG
Dieter

nach oben   nach unten

Re: Stundenerfassen Baugewerbe
von: Olga
Geschrieben am: 07.07.2002 - 00:10:56

Hallo Dieter
Ich habe eigentlich gemeint dass Stundenerfassung nach Baustellen in gleicher Mappe gemacht werden soll.
Aber jetzt habe ich es extra angelegt.
Den Code habe ich kopiert und in Dateil Baustellen.xls eingefügt.
Es funktioniert bei mir nicht. Kann man dies vielleicht Stück für Stück machen, da ich kein VBA Profi bin.
Vielen Dank

Olga


nach oben   nach unten

Re: Stundenerfassen Baugewerbe
von: Dieter Klemke
Geschrieben am: 07.07.2002 - 10:12:39

Hallo Olga,
ich denke, es ist am besten, wenn du mir Beispieldateien mit fiktiven Daten per eMail (Dieter.Klemke@t-online.de) schickst, da ich den genauen Aufbau nicht kenne.
MfG
Dieter

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zeichen zählen"