Mit untenstehendem Code konnte ich in der Vergangenheit die Summe eines markierten Bereiches in die Zwischenablage übernehmen und mit Ctl+V in eine neue Zelle einsetzen.
Jetzt erhalte ich mit diesem Vorgehen nur 2 Sonderzeichen: �� (ich habe eine normale Schriftart eingestellt)
Was mache ich falsch?
Gruss, Peter
Option Explicit
Public Sub CopyStatusFunction()
'Code via Herber.de erhalten von Kl@us-M. am 29. Januar 2008
'Code von T.Ramel - im VBA Menu Extras muss Verweis auf Forms 2.0 Object Library eingestellt _
sein
Dim Obj As New DataObject
Dim ctl As CommandBarControl
Dim AWF As Object
Dim AutoVal As Double
Dim intFormula As Integer
Dim c As Range
Set AWF = Application.WorksheetFunction
intFormula = 0
For Each ctl In Application.CommandBars("AutoCalculate").Controls
intFormula = intFormula + 1
If ctl.State 0 Then
Exit For
End If
Next ctl
If ActiveSheet.ProtectContents = False Then
Set c = Selection.SpecialCells(xlCellTypeVisible)
Else
Set c = Selection
MsgBox "Da Tabelle geschützt ist, werden" & vbCrLf & _
"auch Werte aus allfällig ausge-" & vbCrLf & _
"blendeten Zellen innerhalb der" & vbCrLf & _
"Markierung mitberücksichtigt."
End If
Select Case intFormula
Case 2
AutoVal = AWF.Average(c)
Case 3
AutoVal = AWF.CountA(c)
Case 4
AutoVal = AWF.Count(c)
Case 5
AutoVal = AWF.Max(c)
Case 6
AutoVal = AWF.Min(c)
Case 7
AutoVal = AWF.Sum(c)
AutoVal = Round(AutoVal, 2)
End Select
Obj.SetText AutoVal
Obj.PutInClipboard
Set Obj = Nothing
Debug.Print AutoVal
End Sub