Code ergänzen/erweitern
Thomas
ich würde gern mein Abrechnungsprogramm für mehrere Wohnungen erweitern. Bisher hab ich die Eingabe
der Abrechnungszahlen in die Tabelle "Liste" wo alle Wohnungen und Abrechnungspositionen gelistet ist eingetragen was immer sehr viel zu Scrollen ist. Um das zu umgehen dachte ich warum nutze ich nicht mein Abrechnungsformular gleichzeitig auch als Eingabemaske.
Wenn der CommandButton3 zum ToggelButton umwandel wird dann kann man Abrechnungen erstellen oder Zahlen zurück in die Liste schreiben.
'*********************************
' Abrechnung erstellen '
'*********************************
Private Sub CommandButton3_Click()
Application.EnableEvents = False
Range("B9:E37").ClearContents
Range("F9:G20").ClearContents
Range("I9:J21").ClearContents
Cells(13, 12).ClearContents
If Range("L8") > 0 And Range("L9") "" Then
ReadValues
Read_NK_Miete
Fusszeile
Kopieren
End If
Application.EnableEvents = True
End Sub
Sub ReadValues()
Dim Jahr As Long, Bereich As String
Dim lngRow As Long, lngspalte As Long, pubLngCol As Variant, pubLngRow As Variant
On Error Resume Next
Application.ScreenUpdating = False
Jahr = Range("L8").Value
Bereich = Range("L2").Value
'Spalte mit Jahr in Zeile 3 von Blatt "Sheet2" suchen
With Sheet2
pubLngCol = Application.WorksheetFunction.Match(Jahr, .Rows(3), 0)
'Zeile unterhalb der Zeile mit dem Bereichsnamen ermitteln
'pubLngRow = 4 'Zeile für 1. Bereich
'Zeile mit Bereich suchen
pubLngRow = Application.WorksheetFunction.Match(Bereich, .Columns(2), 0) + 1
'oder Zeile mit Bereich fest vorgeben
Select Case Bereich
Case "Whg1": pubLngRow = 4
Case "Whg2": pubLngRow = 58
Case "Whg3": pubLngRow = 112
Case "Whg4": pubLngRow = 166
Case "Whg5": pubLngRow = 223
Case Else
MsgBox "Bereich """ & Bereich & """ fehlt als Case"
GoTo Beenden
End Select
Select Case Bereich
Case "Whg1", "Whg2", "Whg3"
Cells(9, 2) = "Wohngebäude"
Cells(10, 2) = "Haus- und Grundhaftpficht"
Cells(11, 2) = "Gewässerschaden"
Cells(12, 2) = "Grundstücksteuer"
Cells(9, 3) = .Cells(pubLngRow, pubLngCol) '1
Cells(9, 5) = .Cells(pubLngRow + 1, pubLngCol) '1,1
Cells(10, 3) = .Cells(pubLngRow + 2, pubLngCol) '2
Cells(10, 5) = .Cells(pubLngRow + 3, pubLngCol) '2,1
Cells(11, 3) = .Cells(pubLngRow + 4, pubLngCol) '3
Cells(11, 5) = .Cells(pubLngRow + 5, pubLngCol) '3,1
Cells(12, 3) = .Cells(pubLngRow + 6, pubLngCol) '4
Cells(12, 5) = .Cells(pubLngRow + 7, pubLngCol) '4,1
End Select
End With
Beenden:
Err.Clear
Application.ScreenUpdating = True
End Sub
Dies ist nur ein Teil des Cods mit dem ich die Abrechnungen der Wohnungen erstelle.
Nun zu meinem Anliegen da ich kein VBA-Profi bin brauch ich Starthilfe beim ToggelButton. Wenn der ToggelButton auf Abrechung steht dann soll mein Code wie oben steht ablaufen und wenn er auf Dateneingabe steht würde ich je nach dem was in L8=Jahr und L2=Bereich/Whg steht (die Zahlen sehen) oder Eintragen können und zurück schreiben.
Ich benötige nur mal die ersten paar Zeilen die restliche schreibarbeit mach ich selbst.
Danke schon im voraus.
Gruß Thomas aus Stuttgart