Wert aus Markierung in Zw.Ablage b. geschützer Tab
01.02.2008 08:47:00
Peter
Nachfolgend genialer Code habe ich kürzlich erhalten, der es ermöglicht, die Summe (oder allenfalls der Mittelwert, die Anzahl, etc. ..) des markierten Bereiches in die Zwischenablage zu schreiben.
Klappt prima, solange die entsprechende Tabelle nicht geschützt ist. Wenn die Tabelle geschützt ist, kann die Case Auswertung nicht vorgenommen werden, die Ausführung des Codes stoppt bei "AutoVal ...." mit dem Hinweis, dass der Tabellschutz aufzuheben ist.
Gibt es allenfalls eine andere Lösung? Ich will ja keine Zelle ändern und deshalb sollte der Tabellenschutz nicht aufgehoben werden müssen.
Danke für jeden Hinweis.
Peter
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
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
Select Case intFormula
Case 2
AutoVal = AWF.Average(Selection.SpecialCells(xlCellTypeVisible))
Case 3
AutoVal = AWF.CountA(Selection.SpecialCells(xlCellTypeVisible))
Case 4
AutoVal = AWF.Count(Selection.SpecialCells(xlCellTypeVisible))
Case 5
AutoVal = AWF.Max(Selection.SpecialCells(xlCellTypeVisible))
Case 6
AutoVal = AWF.Min(Selection.SpecialCells(xlCellTypeVisible))
Case 7
AutoVal = AWF.Sum(Selection.SpecialCells(xlCellTypeVisible))
End Select
Obj.SetText AutoVal
Obj.PutInClipboard
Set Obj = Nothing
End Sub