Hallo Sepp,
hier der Code:
Dim GPBez As String
Dim GPNR As Long, Strasse As String, Maßnbez As String, Titel As String, Maßnart
Dim BKosten As Single, BUmsatz As Single
Dim BUmsatzVJ As Single, Maßnbudg As Single, Mitteleins As Single, geplRess As Single
Const Stundenwert As Single = 54.52 'Stundensatz
Const Anzahl As Integer = 48 'Anzahl der zu erzeugenden Datensätze
Const NrStart As Integer = 5 'Zeile in der die ersten Datensätze stehen!
Public Sub Stunden_H2(Si As Integer, SNr As Integer, SAnzahl As Integer, SP As String, LSTG As String, _
SOLLIST As String, EIGEN As String, SG As String, FBSM As String)
Dim Stunden
Stunden = Worksheets("HOAI-Leistungen").Range(SP & SNr).Value
With Worksheets("SOLL_IST_PIVOT")
.Range("A" & 2 + Si + (SNr - 5) * SAnzahl).Value = GPNR
.Range("B" & 2 + Si + (SNr - 5) * SAnzahl).Value = Strasse
.Range("C" & 2 + Si + (SNr - 5) * SAnzahl).Value = Maßnbez
.Range("D" & 2 + Si + (SNr - 5) * SAnzahl).Value = Titel
.Range("E" & 2 + Si + (SNr - 5) * SAnzahl).Value = Maßnart
.Range("F" & 2 + Si + (SNr - 5) * SAnzahl).Value = BKosten
.Range("G" & 2 + Si + (SNr - 5) * SAnzahl).Value = BUmsatz
.Range("H" & 2 + Si + (SNr - 5) * SAnzahl).Value = BUmsatzVJ
.Range("I" & 2 + Si + (SNr - 5) * SAnzahl).Value = Maßnbudg
.Range("J" & 2 + Si + (SNr - 5) * SAnzahl).Value = Mitteleins
.Range("K" & 2 + Si + (SNr - 5) * SAnzahl).Value = geplRess
.Range("F" & 2 + Si + (SNr - 5) * SAnzahl, "K" & 2 + Si + (SNr - 5) * SAnzahl).NumberFormat = "#,##0.00 "
.Range("L" & 2 + Si + (SNr - 5) * SAnzahl).Value = LSTG
.Range("M" & 2 + Si + (SNr - 5) * SAnzahl).Value = SOLLIST
.Range("N" & 2 + Si + (SNr - 5) * SAnzahl).Value = EIGEN
.Range("O" & 2 + Si + (SNr - 5) * SAnzahl).Value = SG
.Range("P" & 2 + Si + (SNr - 5) * SAnzahl).Value = Round(Stunden, 0)
.Range("Q" & 2 + Si + (SNr - 5) * SAnzahl).Value = Round(Stunden * Stundenwert, 2)
'***Neue Spalte FB!
.Range("R" & 2 + Si + (SNr - 5) * SAnzahl).Value = FBSM
'***Neue Spalte GPNR, Maßnahmenbezeichnung!
.Range("S" & 2 + Si + (SNr - 5) * SAnzahl).Value = GPNR & ", " & Maßnbez
'***Straßengattung aus der Spalte B, hier 1. Stelle links
.Range("T" & 2 + Si + (SNr - 5) * SAnzahl).Value = Left(Strasse, 1)
'***Spalte U (Stunden) und Spalte V (Kosten) sind für zur Ausblendung der Null-Werte!
.Range("U" & 2 + Si + (SNr - 5) * SAnzahl).Value = Round(Stunden, 0)
.Range("V" & 2 + Si + (SNr - 5) * SAnzahl).Value = Round(Stunden * Stundenwert, 2)
'***************************************
End With
End Sub
Public Sub Kosten_H2(Si As Integer, SNr As Integer, SAnzahl As Integer, SP As String, LSTG As String, _
SOLLIST As String, EIGEN As String, SG As String, FBSM As String)
Dim Kosten
Kosten = Worksheets("HOAI-Leistungen").Range(SP & SNr).Value
With Worksheets("SOLL_IST_PIVOT")
.Range("A" & 2 + Si + (SNr - 5) * SAnzahl).Value = GPNR
.Range("B" & 2 + Si + (SNr - 5) * SAnzahl).Value = Strasse
.Range("C" & 2 + Si + (SNr - 5) * SAnzahl).Value = Maßnbez
.Range("D" & 2 + Si + (SNr - 5) * SAnzahl).Value = Titel
.Range("E" & 2 + Si + (SNr - 5) * SAnzahl).Value = Maßnart
.Range("F" & 2 + Si + (SNr - 5) * SAnzahl).Value = BKosten
.Range("G" & 2 + Si + (SNr - 5) * SAnzahl).Value = BUmsatz
.Range("H" & 2 + Si + (SNr - 5) * SAnzahl).Value = BUmsatzVJ
.Range("I" & 2 + Si + (SNr - 5) * SAnzahl).Value = Maßnbudg
.Range("J" & 2 + Si + (SNr - 5) * SAnzahl).Value = Mitteleins
.Range("K" & 2 + Si + (SNr - 5) * SAnzahl).Value = geplRess
.Range("F" & 2 + Si + (SNr - 5) * SAnzahl, "K" & 2 + Si + (SNr - 5) * SAnzahl).NumberFormat = "#,##0.00 "
.Range("L" & 2 + Si + (SNr - 5) * SAnzahl).Value = LSTG
.Range("M" & 2 + Si + (SNr - 5) * SAnzahl).Value = SOLLIST
.Range("N" & 2 + Si + (SNr - 5) * SAnzahl).Value = EIGEN
.Range("O" & 2 + Si + (SNr - 5) * SAnzahl).Value = SG
.Range("P" & 2 + Si + (SNr - 5) * SAnzahl).Value = 0
.Range("Q" & 2 + Si + (SNr - 5) * SAnzahl).Value = Round(Kosten, 2)
'***Neue Spalte FB!
.Range("R" & 2 + Si + (SNr - 5) * SAnzahl).Value = FBSM
'***Neue Spalte GPNR, Maßnahmenbezeichnung!
.Range("S" & 2 + Si + (SNr - 5) * SAnzahl).Value = GPNR & ", " & Maßnbez
'***Straßengattung aus der Spalte B, hier 1. Stelle links
.Range("T" & 2 + Si + (SNr - 5) * SAnzahl).Value = Left(Strasse, 1)
'***Spalte U (Stunden) und Spalte V (Kosten) sind für zur Ausblendung der Null-Werte!
.Range("U" & 2 + Si + (SNr - 5) * SAnzahl).Value = 0
.Range("V" & 2 + Si + (SNr - 5) * SAnzahl).Value = Round(Kosten, 2)
'***************************************
End With
End Sub
Private Sub Honorarleistungen()
Dim Nr As Integer, i As Integer
Dim GPBez As String
Nr = NrStart
Do While (ThisWorkbook.Worksheets("HOAI-Leistungen").Range("A" & Nr) <> "") _
And (ThisWorkbook.Worksheets("HOAI-Leistungen").Range("A" & Nr) <> 0)
Worksheets("SOLL_IST_PIVOT").Activate
'**** Variablen einlesen
GPNR = Worksheets("HOAI-Leistungen").Range("A" & Nr)
Strasse = Worksheets("HOAI-Leistungen").Range("B" & Nr)
Maßnbez = Worksheets("HOAI-Leistungen").Range("C" & Nr)
Titel = Worksheets("HOAI-Leistungen").Range("D" & Nr)
Maßnart = Worksheets("HOAI-Leistungen").Range("E" & Nr)
BKosten = Worksheets("HOAI-Leistungen").Range("F" & Nr)
BUmsatz = Worksheets("HOAI-Leistungen").Range("G" & Nr)
BUmsatzVJ = Worksheets("HOAI-Leistungen").Range("H" & Nr)
Maßnbudg = Worksheets("HOAI-Leistungen").Range("I" & Nr)
Mitteleins = Worksheets("HOAI-Leistungen").Range("J" & Nr)
geplRess = Worksheets("HOAI-Leistungen").Range("K" & Nr)
'**** Hier werden je P-Nr die entspr. Datensätze erzeugt
For i = 0 To Anzahl - 1
Select Case i
'********LSTG 311
Case 0
Call Stunden_H2(i, Nr, Anzahl, "L", "311", "SOLL", "Eigen", "SG 42", "FB 4") 'P=P*54,52
Case 1
Call Kosten_H2(i, Nr, Anzahl, "M", "311", "SOLL", "Fremd", "SG 42", "FB 4") 'P=0
Case 2
Call Stunden_H2(i, Nr, Anzahl, "N", "311", "IST", "Eigen", "SG 42", "FB 4") 'P=P*54,52
Case 3
Call Kosten_H2(i, Nr, Anzahl, "O", "311", "IST", "Fremd", "SG 42", "FB 4") 'P=0
'********Ende LSTG 311
'********LSTG 312
Case 4
Call Stunden_H2(i, Nr, Anzahl, "P", "312", "SOLL", "Eigen", "SG 54", "FB 5") 'P=P*54,52
Case 5
Call Kosten_H2(i, Nr, Anzahl, "Q", "312", "SOLL", "Fremd", "SG 54", "FB 5") 'P=0
Case 6
Call Stunden_H2(i, Nr, Anzahl, "R", "312", "IST", "Eigen", "SG 54", "FB 5") 'P=P*54,52
Case 7
Call Kosten_H2(i, Nr, Anzahl, "S", "312", "IST", "Fremd", "SG 54", "FB 5") 'P=0
'********Ende LSTG 312
'********LSTG 313
Case 8
Call Stunden_H2(i, Nr, Anzahl, "T", "313", "SOLL", "Eigen", "SG 43", "FB 4") 'P=P*54,52
Case 9
Call Kosten_H2(i, Nr, Anzahl, "U", "313", "SOLL", "Fremd", "SG 43", "FB 4") 'P=0
Case 10
Call Stunden_H2(i, Nr, Anzahl, "V", "313", "IST", "Eigen", "SG 43", "FB 4") 'P=P*54,52
Case 11
Call Kosten_H2(i, Nr, Anzahl, "W", "313", "IST", "Fremd", "SG 43", "FB 4") 'P=0
'********Ende LSTG 313
'********LSTG 314
Case 12
Call Stunden_H2(i, Nr, Anzahl, "X", "314", "SOLL", "Eigen", "SG 44", "FB 4") 'P=P*54,52
Case 13
Call Kosten_H2(i, Nr, Anzahl, "Y", "314", "SOLL", "Fremd", "SG 44", "FB 4") 'P=0
Case 14
Call Stunden_H2(i, Nr, Anzahl, "Z", "314", "IST", "Eigen", "SG 44", "FB 4") 'P=P*54,52
Case 15
Call Kosten_H2(i, Nr, Anzahl, "AA", "314", "IST", "Fremd", "SG 44", "FB 4") 'P=0
'*******Ende LSTG 314
'*******LSTG 321
Case 16
Call Stunden_H2(i, Nr, Anzahl, "AF", "321", "SOLL", "Eigen", "SG 43", "FB 4") 'P=P*54,52
Case 17
Call Kosten_H2(i, Nr, Anzahl, "AG", "321", "SOLL", "Fremd", "SG 43", "FB 4") 'P=0
Case 18
Call Stunden_H2(i, Nr, Anzahl, "AH", "321", "SOLL", "Eigen", "SG 44", "FB 4") 'P=P*54,52
Case 19
Call Kosten_H2(i, Nr, Anzahl, "AI", "321", "SOLL", "Fremd", "SG 44", "FB 4") 'P=0
Case 20
Call Stunden_H2(i, Nr, Anzahl, "AJ", "321", "IST", "Eigen", "SG 43-44", "FB 4") 'P=P*54,52
Case 21
Call Kosten_H2(i, Nr, Anzahl, "AK", "321", "IST", "Fremd", "SG 43-44", "FB 4") 'P=0
Case 22
Call Stunden_H2(i, Nr, Anzahl, "AL", "321", "SOLL", "Eigen", "SG 53", "FB 5") 'P=P*54,52
Case 23
Call Kosten_H2(i, Nr, Anzahl, "AM", "321", "SOLL", "Fremd", "SG 53", "FB 5") 'P=0
Case 24
Call Kosten_H2(i, Nr, Anzahl, "AN", "321", "SOLL", "Fremd", "SG 53, SiGeKo", "FB 5") 'P=0
Case 25
Call Stunden_H2(i, Nr, Anzahl, "AO", "321", "IST", "Eigen", "SG 53", "FB 5") 'P=P*54,52
Case 26
Call Kosten_H2(i, Nr, Anzahl, "AP", "321", "IST", "Fremd", "SG 53", "FB 5") 'P=0
Case 27
Call Kosten_H2(i, Nr, Anzahl, "AQ", "321", "IST", "Fremd", "SG 53, SiGeKo", "FB 5") 'P=0
'********Ende LSTG 321
'********LSTG 322
Case 28
Call Stunden_H2(i, Nr, Anzahl, "AR", "322", "SOLL", "Eigen", "SG 53", "FB 5") 'P=P*54,52
Case 29
Call Kosten_H2(i, Nr, Anzahl, "AS", "322", "SOLL", "Fremd", "SG 53", "FB 5") 'P=0
Case 30
Call Stunden_H2(i, Nr, Anzahl, "AT", "322", "IST", "Eigen", "SG 53", "FB 5") 'P=P*54,52
Case 31
Call Stunden_H2(i, Nr, Anzahl, "AU", "322", "IST", "Eigen", "SM", "SM") 'P=P*54,52
Case 32
Call Kosten_H2(i, Nr, Anzahl, "AV", "322", "IST", "Fremd", "SG 53", "FB 5") 'P=0
'********Ende LSTG 322
'********LSTG 323
Case 33
Call Stunden_H2(i, Nr, Anzahl, "AW", "323", "SOLL", "Eigen", "SG 54", "FB 5") 'P=P*54,52
Case 34
Call Kosten_H2(i, Nr, Anzahl, "AX", "323", "SOLL", "Fremd", "SG 54", "FB 5") 'P=0
Case 35
Call Kosten_H2(i, Nr, Anzahl, "AY", "323", "SOLL", "Fremd", "SG 54, SiGeKo", "FB 5") 'P=0
Case 36
Call Stunden_H2(i, Nr, Anzahl, "AZ", "323", "IST", "Eigen", "SG 54", "FB 5") 'P=P*54,52
Case 37
Call Kosten_H2(i, Nr, Anzahl, "BA", "323", "IST", "Fremd", "SG 54", "FB 5") 'P=0
Case 38
Call Kosten_H2(i, Nr, Anzahl, "BB", "323", "IST", "Fremd", "SG 54, SiGeKo", "FB 5") 'P=0
Case 39
Call Stunden_H2(i, Nr, Anzahl, "BC", "323", "SOLL", "Eigen", "SG 43", "FB 4") 'P=P*54,52
Case 40
Call Kosten_H2(i, Nr, Anzahl, "BD", "323", "SOLL", "Fremd", "SG 43", "FB 4") 'P=0
Case 41
Call Stunden_H2(i, Nr, Anzahl, "BE", "323", "IST", "Eigen", "SG 43", "FB 4") 'P=P*54,52
Case 42
Call Kosten_H2(i, Nr, Anzahl, "BF", "323", "IST", "Fremd", "SG 43", "FB 4") 'P=0
'**********Ende LSTG 323
'**********LSTG 324
Case 43
Call Stunden_H2(i, Nr, Anzahl, "BG", "324", "SOLL", "Eigen", "SG 54", "FB 5") 'P=P*54,52
Case 44
Call Kosten_H2(i, Nr, Anzahl, "BH", "324", "SOLL", "Fremd", "SG 54", "FB 5") 'P=0
Case 45
Call Stunden_H2(i, Nr, Anzahl, "BI", "324", "IST", "Eigen", "SG 54", "FB 5") 'P=P*54,52
Case 46
Call Stunden_H2(i, Nr, Anzahl, "BJ", "324", "IST", "Eigen", "SM", "SM") 'P=P*54,52
Case 47
Call Kosten_H2(i, Nr, Anzahl, "BK", "324", "IST", "Fremd", "SG 54", "FB 5") 'P=0
'**********Ende LSTG 324
End Select
Next i
'Ende Datensatzerzeugung
Nr = Nr + 1
Loop
'Ende Ermittlung Projektsätze
End Sub
Private Sub Button1_Click()
Dim erzeugendeSaezte
Dim i As Integer, str As String, Nr As Integer
Nr = NrStart
'******Ermittlung Projektsätze
Do While (ThisWorkbook.Worksheets("HOAI-Leistungen").Range("A" & Nr) <> "") _
And (ThisWorkbook.Worksheets("HOAI-Leistungen").Range("A" & Nr) <> 0)
Nr = Nr + 1
Loop
Nr = Nr - 1 - 4 'Die letzte Erhöhung muss wieder um 1 zurückgesetzt werden
erzeugendeSaezte = Nr * Anzahl
'******Ende Ermittlung Projektsätze
'Application.EnableCancelKey = xlDisabled
str = MsgBox("Es werden " & erzeugendeSaezte & " Datensätze erzeugt" & Chr$(10) & _
"(" & Nr & ") x jew. (" & Anzahl & ")" & Chr$(10) & _
"Die Prozedur kann nicht abgebrochen werden. " & Chr$(10) & _
"Willst Du fortfahren?" & Chr$(10) & _
Chr$(10) & "Wenn OK, dann warten bis die Meldung kommt, " & Chr$(10) & _
"dass die Datensätze erzeugt wurden!", vbOKCancel)
If str = vbOK Then
ThisWorkbook.Worksheets("SOLL_IST_PIVOT").Range("A2:V65536").Delete
Honorarleistungen
Datensaetzeuebertragen = MsgBox("Datensätze erzeugt!", vbOKOnly + vbExclamation)
Else: Exit Sub
End If
End Sub