Markieren und Summe
#1
Hallo, 

wenn ich Zellen mit Zahlen markiere, dann bekomme ich, unten in der Statusleiste, die Summe. 

Wenn ich jedoch dazwischen eine Fehlermeldung etc. habe, dann bekomme ich keine Summe unten rechts in der Statusleiste. 

Gibt es eine Möglichkeit es zu ändern?
Top
#2
Hi Chrissy,

das kann man nicht ändern. Ich vermute, die Summenanzeige beruht intern auf
Code:
=SUMME(K2:K5)


Bei einer dazwischenliegenden Fehlermeldung gibt diese Formel ebenfalls nur eine Fehlermeldung aus; die Statusleiste nichts.

Arbeitsblatt mit dem Namen 'Tabelle1'
K
26
38
4#NV
514
6
7#NV

ZelleFormel
K7=SUMME(K2:K5)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Schade. 

Ich dachte es gibt einen Zusatztaste die man drücken kann, bevor man Zahlen markiert. Damit Fehlerzellen ignoriert werden etc..
Top
#4
Nö, no chance at all.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Hallöchen,

trotzdem gäbe es eine Lösung. Du ignorierst die Fehlerzellen selber Smile Markiere nur die Zellen ohne Fehler. …
(STRG + Klick)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
Hallo Chrissy,

mit einer vernünftigen Formel, entstehen keine Fehlerwerte.
Ein einfaches Beispiel, statt nur

Code:
=A2/B2

=8/0


Einen möglichen Fehler abfangen mit

Code:
=WENNFEHLER(A2/B2;0)

=WENNFEHLER(8/0;0)
Dann ensteht kein #DIV/0!, sondern 0 bei einem Berechnungsfehler der Formel und deine Statusleiste, liefert das gewünschte Ergebnis.
Gruß Karl
Top
#7
Hallo chrissy,

ich benutze sehr häufig die Summe von markierten Zellen, darum habe ich mir dieses Makro auf Taste F12 gelegt, das mir diese Summe in die Zwischenablage kopiert:
Sub SummeMarkierterZellen()
   
    Dim rngAktuell As Range
    Dim SummeMarkierterZellen As Double

    For Each rngAktuell In Selection.Cells
        If Rows(rngAktuell.Row).Hidden = False Then
            If IsNumeric(rngAktuell.Value) Then
                SummeMarkierterZellen = SummeMarkierterZellen + rngAktuell.Value
            End If
        End If
    Next

    SetClipboard (SummeMarkierterZellen)

End Sub

Um ein Makro auf eine Taste zu legen, gib Folgendes im VBA-Projekt in "DieseArbeitsmappe" ein:

Code:
Application.OnKey "{F12}", "SummeMarkierterZellen"
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#8
Hallöchen,

dem TE wird das Makro aber nix in die Zwischenablage befördern, denn ihm fehlt was Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
... upps ... stimmt. Die Clipboard-Funktionen liegen bei mir aus Übersichtsgründen in einem anderen Modul. Der Vollständigkeit halber:
Option Explicit

Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal wFormat As Long) As Long
Private Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long
Private Declare Function SetClipboardData Lib "user32.dll" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long

Public Sub SetClipboard(sUniText As String)
   
    Dim iStrPtr As Long
    Dim iLen As Long
    Dim iLock As Long
   
    Const GMEM_MOVEABLE As Long = &H2
    Const GMEM_ZEROINIT As Long = &H40
    Const CF_UNICODETEXT As Long = &HD
   
    OpenClipboard 0&
    EmptyClipboard
    iLen = LenB(sUniText) + 2&
    iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen)
    iLock = GlobalLock(iStrPtr)
    lstrcpy iLock, StrPtr(sUniText)
    GlobalUnlock iStrPtr
    SetClipboardData CF_UNICODETEXT, iStrPtr
    CloseClipboard

End Sub

Public Function GetClipboard() As String
   
    Dim iStrPtr As Long
    Dim iLen As Long
    Dim iLock As Long
    Dim sUniText As String
   
    Const CF_UNICODETEXT As Long = 13&

    OpenClipboard 0&
   
    If IsClipboardFormatAvailable(CF_UNICODETEXT) Then
        iStrPtr = GetClipboardData(CF_UNICODETEXT)
        If iStrPtr Then
            iLock = GlobalLock(iStrPtr)
            iLen = GlobalSize(iStrPtr)
            sUniText = String$(iLen \ 2& - 1&, vbNullChar)
            lstrcpy StrPtr(sUniText), iLock
            GlobalUnlock iStrPtr
        End If
        GetClipboard = sUniText
    End If
   
    CloseClipboard

End Function
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste