Es gibt noch eine Möglichkeit, ...
21.12.2021 23:05:59
Luc:-?
…Willi,
die dir erlaubt, + und - direkt in die betreffende Zelle einzugeben, wodurch deren Inhalt temporär überschrieben, dann aber entsprd verändert wiederhergestellt wird. Das dürfen dann auch mehrere + bzw - direkt nebeneinander sein, denen dann allerdings ein TextPräfix (Standard: Apostroph ') vorangestellt wdn sollte, um die entsprd Xl-Aufforderung zu vermeiden. Dazu im VBEditor die folgd Pgmm in das Dokument-Klassenmodul des betreffenden Blattes kopieren:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const adRelBer$ = "A1:C10" 'Anm: Hier den Geltungsbereich f.HiLo angeben!
If Not Intersect(Target, Me.Range(adRelBer)) Is Nothing Then Call HiLo(Target)
End Sub
Private Function HiLo(ByVal Target As Range)
Static altWert
Application.EnableEvents = False
If Not IsEmpty(Target) Then
If IsEmpty(altWert) And IsNumeric(Target.Value2) Then
altWert = Array(Target.Address, Target.Value2)
ElseIf Not IsEmpty(altWert) Then
If Target.Address = altWert(0) And IsNumeric(altWert(1)) Then
Select Case Target
Case String(Len(CStr(Target.Value2)), "+")
altWert(1) = altWert(1) + Len(CStr(Target.Value2)): Target = altWert(1)
Case String(Len(CStr(Target)), "-")
altWert(1) = altWert(1) - Len(CStr(Target.Value2)): Target = altWert(1)
Case Else
If IsNumeric(Target.Value2) Then altWert(1) = Target.Value2
End Select
ElseIf Target.Address = altWert(0) Then
Target = altWert(1)
Else: altWert = Array(Target.Address, Target.Value2)
End If
ElseIf IsNumeric(Target.Value2) Then
altWert = Array(Target.Address, Target.Value2)
End If
Else: altWert = Empty
End If
Application.EnableEvents = True
End Function
Die Datei muss dann als .xls, .xlsm oder .xlsb gespeichert wdn!
Morhn, Luc :-?