Lösung für Faule in VBA
24.01.2016 19:56:04
Michael
Hi zusammen,
es gibt in VBA ja immer mehrere Möglichkeiten; WENN man das schon anwirft, kann man das Rechenergebnis auch gleich direkt in die Ergebniszelle schreiben, das ist weniger Aufwand, als eine Summenformel zu konstruieren - abgesehen davon tun's in dem Fall ja auch ein paar "+" Zeichen...
Beide Varianten bedienst (so, wie ich's jetzt programmiert habe) Du wie folgt: Du markierst alle zu summierenden und *zuletzt* die Ergebniszelle (Mehrfachmarkierung mit Strg-Taste, wie Du weißt).
Dann wirfst Du wahlweise eines der Makros an:
Option Explicit
Sub summerechnen()
Dim summe As Long
' auf double umstellen, falls doch noch
' Kommawerte auftauchen
Dim letzte As Long
Dim c As Range
Dim letzteAdresse As String
If Selection.Count > 1 Then
For Each c In Selection
letzte = c.Value
letzteAdresse = c.Address
summe = summe + letzte
Next
Range(letzteAdresse).Value = summe - letzte
End If
End Sub
Sub summeFormel()
Dim summe As Long
' auf double umstellen, falls doch noch
' Kommawerte auftauchen
Dim letzter As String
Dim c As Range
Dim letzteAdresse As String, formel As String
formel = "="
If Selection.Count > 1 Then
For Each c In Selection
letzter = c.Address
letzteAdresse = c.Address
formel = formel + letzter + "+"
Next
formel = Left(formel, Len(formel) - Len(letzter) - 2)
' MsgBox formel
Range(letzteAdresse).FormulaLocal = formel
End If
End Sub
Diese Lösung erfordert a) kein großes Gesuche in VBA (auch wenn man das in den jeweiligen Spalten mit .find in Formeln nach =Summe bla erledigen hätte können) und ist b) auch völlig flexibel, sowohl was die Positionen als auch die Anzahl der Summanden angeht.
Die Datei: https://www.herber.de/bbs/user/103000.xlsm
Schöne Grüße,
Michael