HERBERS Excel-Forum - das Archiv
Kostenstellen "umlegen"
Franz

Hallo,
habe hier ein kleines Tool (Prototyp) um Gemeinkosten entweder prozentual oder mit festen _ Werten zu verteilen. Es funktionniert schon zufriedenstellend. Könnte ein Profi dies eventuell noch optimieren?

Private Sub Worksheet_Change(ByVal Target As Range)
'oder besser Worksheet_SelectionChange?
If Target.Row > 3 Then Exit Sub
If Target.Column < 4 Then Exit Sub
If Target.Column > 6 Then Exit Sub
Select Case Target.Column
Case 4, 5, 6
If Target.Row = 2 Then
'entweder die Umlagenwerte festlegen,
'in der Zeile 3 erscheint die prozentuale Aufteilung
Application.EnableEvents = False
Target.Offset(1, 0).Formula = Target.Value / Range("C2").Value
End If
If Target.Row = 3 Then
'oder die prozentuale Verteilung festlegen,
'in der Zeile 2 erscheinen automatisch die Umlagenwerte
Application.EnableEvents = False
Target.Offset(-1, 0).Formula = Target.Value * Range("C2").Value
End If
Case Else
End Select
Application.EnableEvents = True
End Sub

https://www.herber.de/bbs/user/65693.xls
So long!
Franz D.

AW: Kostenstellen "umlegen"
Original

Hi,
allzuviel geht da nicht:
Private Sub Worksheet_Change(ByVal Target As Range)
'oder besser Worksheet_SelectionChange?
Select Case Target.Column
On Error GoTo SHITHAPPENS
Application.EnableEvents = False
Case 4, 5, 6
If Target.Row = 2 Then
'entweder die Umlagenwerte festlegen,
'in der Zeile 3 erscheint die prozentuale Aufteilung
Target.Offset(1, 0) = Target / [C2]
End If
If Target.Row = 3 Then
'oder die prozentuale Verteilung festlegen,
'in der Zeile 2 erscheinen automatisch die Umlagenwerte
Target.Offset(-1, 0) = Target * [C2]
End If
End Select
SHITHAPPENS:
Application.EnableEvents = True
End Sub
mfg Kurt
AW: Kostenstellen "umlegen"
Original

Hi,
allzuviel geht da nicht:
Private Sub Worksheet_Change(ByVal Target As Range)
'oder besser Worksheet_SelectionChange?
Select Case Target.Column
On Error GoTo SHITHAPPENS
Application.EnableEvents = False
Case 4, 5, 6
If Target.Row = 2 Then
'entweder die Umlagenwerte festlegen,
'in der Zeile 3 erscheint die prozentuale Aufteilung
Target.Offset(1, 0) = Target / [C2]
End If
If Target.Row = 3 Then
'oder die prozentuale Verteilung festlegen,
'in der Zeile 2 erscheinen automatisch die Umlagenwerte
Target.Offset(-1, 0) = Target * [C2]
End If
End Select
SHITHAPPENS:
Application.EnableEvents = True
End Sub
mfg Kurt
Oops!
Original

ot
AW: Oops oder SHITHAPPENS?
Franz

Hallo Kurt!
Sorry! Deine Ergänzungen funktionnieren bei mir nicht.
Habe übrigens den Unterschied zwischen Change und SelectionChange noch nicht ganz "gescheckt" um es einmal auf "Neudeutsch" zu formulieren.
Tschüss!
Franz D.
AW: Oops oder SHITHAPPENS?
Original

Hi,
Private Sub Worksheet_Change(ByVal Target As Range)
'oder besser Worksheet_SelectionChange?
On Error GoTo SHITHAPPENS
Application.EnableEvents = False
Select Case Target.Column
Case 4, 5, 6
If Target.Row = 2 Then
'entweder die Umlagenwerte festlegen,
'in der Zeile 3 erscheint die prozentuale Aufteilung
Target.Offset(1, 0) = Target / [C2]
End If
If Target.Row = 3 Then
'oder die prozentuale Verteilung festlegen,
'in der Zeile 2 erscheinen automatisch die Umlagenwerte
Target.Offset(-1, 0) = Target * [C2]
End If
End Select
SHITHAPPENS:
Application.EnableEvents = True
End Sub

SelectionChange tritt auf, wenn eine (andere) Zelle(n) selektiert wird, Change triit auf,
wenn der Inhalt einer Zelle durch Eingabe geändert wird.
mfg Kurt
AW: Oops oder SHITHAPPENS?
Franz

Hi,
Herzlichen Dank Kurt, auch für die Erklärungen zu "Change". Ich hätte wissen müssen dass das "On Error..." am Anfang zu stehen hat, ein Sorry ist schon fällig.
Au revoir!
Franz D.