gibt es eine Möglichkeit auf Informationen der Statusleiste
in Excel zuzugreifen?
Mein Problem:
Häufig benötige ich die Summe numerischer Werte eines
markierten Bereiches (unterschiedliche Größe) in einer
Spalte. Die Summe wird in der Statusleise angezeigt.
Leider kann ich in der Makro-Hilfe keinen Befehl für z. B.
das Auslesen dieser Information in eine Variable oder die
Zwischenablage finden.
Es wäre schön, wenn jemand von Euch mir weiterhelfen könnte.
Als Alternative habe ich nachfolgendes Makro geschrieben:
Sub zellen_addieren()
'Es wird die Summe der markierten numerischen Werte in die
'Zwischenablage kopiert.
'Mit {strg-V} kann dieser Wert an eine beliebige Stelle
'in einer Excel-Tabelle oder in Word etc. eingefügt werden.
Dim Obj As New DataObject
Dim summe As Double
Dim zelle As Range
Dim wert As String
summe = 0
For Each zelle In Selection
wert = IsNumeric(zelle.Value)
If wert = True Then
summe = summe + zelle.Value
End If
Next
Obj.SetText summe
Obj.PutInClipboard
Set Obj = Nothing
End Sub
Gruß an alle
Manfred
--
Regards
Frank Kabel
Frankfurt, Germany
"Manfred Gutacker" <anon...@discussions.microsoft.com> schrieb im
Newsbeitrag news:1ca501c46fa7$8ccad0a0$a301...@phx.gbl...
Manfred Gutacker schrieb:
> gibt es eine Möglichkeit auf Informationen der Statusleiste
> in Excel zuzugreifen?
du meinst die Auto-Berechnung, in der man über einen Rechtsklick
verschiedene Funktionen (Mittelwert, Zählen, Anzahl....) einstellen kann.
Wenn mehrere Zellen im Tabellenblatt markiert sind, wird das
Ergebnis der eingstellten Funktion in der Statuszeile angezeigt.
Dieses PopUp-Menü gehört zu der Symbolleiste 'AutoCalculate'.
> Mein Problem:
> Häufig benötige ich die Summe numerischer Werte eines
> markierten Bereiches (unterschiedliche Größe) in einer
> Spalte. Die Summe wird in der Statusleise angezeigt.
> Leider kann ich in der Makro-Hilfe keinen Befehl für z. B.
> das Auslesen dieser Information in eine Variable oder die
> Zwischenablage finden.
>
> Es wäre schön, wenn jemand von Euch mir weiterhelfen könnte.>
> Als Alternative habe ich nachfolgendes Makro geschrieben:
[Snipp Code]
Es gibt keine Möglichkeit, den Wert der Statuszeile direkt auszulesen.
Du musst die Berechnung über das Worksheet-Function-Objekt nachbilden.
Deine Prozedur berücksichtigt nur die Summenfunktion der 'Auto-Berechnung'.
Wenn dir diese Funktion genügt, verwende folgende vereinfachte Prozedur
um das Ergebnis in die Zwischenablage zu speichern und mit 'Strg+V' einzufügen:
Dim objData As DataObject
Sub zellen_addieren()
Set objData = New DataObject
With objData
.SetText Application.WorksheetFunction.Sum(Selection)
.PutInClipboard
End With
End Sub
Wenn du allerdings das Ergebnis der eingestellten Funktion (s.o), wie es
in der Statuszeile angezeigt wird erhalten willst, müssen alle Schaltflächen
der 'AutoCalculate'-Symbolleiste durchlaufen werden. Dabei wird mit der
State-Eigenschaft geprüft, welche Schaltfläche aktiviert (Häckchen) ist.
Entsprechend dieser Information kannst du die Berechnung nachbilden:
Mittelwert= .Average(Selection)
Anzahl= .Count(Selection)
Zählen=.CountA(Selection)
...
und mit obiger Prozedur in die Zwischenablage speichern.
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
zunächst recht herzlichen Dank für die schnelle Antwort.
>-----Originalnachricht-----
>Hallo Manfred,
>
> Manfred Gutacker schrieb:
>> gibt es eine Möglichkeit auf Informationen der Statusleiste
>> in Excel zuzugreifen?
>
>du meinst die Auto-Berechnung, in der man über einen
Rechtsklick
>verschiedene Funktionen (Mittelwert, Zählen, Anzahl....)
einstellen kann.
>Wenn mehrere Zellen im Tabellenblatt markiert sind, wird das
>Ergebnis der eingstellten Funktion in der Statuszeile
angezeigt.
>Dieses PopUp-Menü gehört zu der Symbolleiste 'AutoCalculate'.
>
Wo finde ich diese 'AutoCalculate'-Symbolleiste ???
Gruß
Manfred
Manfred Gutacker schrieb:
>> du meinst die Auto-Berechnung, in der man über einen Rechtsklick
>> verschiedene Funktionen (Mittelwert, Zählen, Anzahl....) einstellen kann.
>> Wenn mehrere Zellen im Tabellenblatt markiert sind, wird das
>> Ergebnis der eingstellten Funktion in der Statuszeile angezeigt.
>> Dieses PopUp-Menü gehört zu der Symbolleiste 'AutoCalculate'.
>>
>
> Wo finde ich diese 'AutoCalculate'-Symbolleiste ???
in der CommandBars-Auflistung, man kann aber nur mit VBA darauf zugreifen:
Dim ctl As CommandBarControl
For Each ctl In Application.CommandBars("AutoCalculate").Controls
Debug.Print ctl.Caption; ctl.State
Next ctl
habe wieder etwas gelernt...
Danke und Gruß
Manfred
>-----Originalnachricht-----
>.
>
> Hallo Melanie,
>
> habe wieder etwas gelernt...
>
> Danke und Gruß
bittesehr, freut mich wenn ich helfen konnte :-)