aus Prinzip nochmal drüber optimiert :-P
07.02.2013 14:47:49
Klaus
Hi,
diese Variante ist etwas performanter, da ich alle unnötigen Schleifen und Variablen rausgeworfen habe (ab einer Auswahl von ein paar Millionen Zellen merkt man vielleicht sogar den Unterschied ...)
Ausserdem hab ich noch eingebaut, das leere Zellen leer bleiben und nicht mit 0,00 gefüllt.
Nochmal danke an Matze für den Anstoß mit dem NumberFormat!
Sub MittelwertAusText()
Dim rCells As Range
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart 'Punkt durch Komma ersetzt
Selection.NumberFormat = "0.00" 'hier die Kommastellen anpassen
For Each rCells In Selection
If IsNumeric(rCells.Value) Then
If Not IsEmpty(rCells) Then rCells.Value = rCells.Value * 1
Else
rCells.Value = Application.WorksheetFunction.Average(VBA.Left(rCells.Value, Application. _
WorksheetFunction.Find("/", rCells.Value) - 1) * 1, VBA.Mid(rCells.Value, Application.WorksheetFunction.Find("/", rCells.Value) + 1, 99) * 1)
End If
Next rCells
End Sub