In einem Bereich von mehreren Zeilen und Spalten habe ich Zahlen, wovon einige unterstrichen sein können. Ich möchte in einer Zelle die Anzahl der unterstrichenen Zahlen im Bereich ausgeben.
Für Eure Hilfe danke ich sehr.
Freundliche Grüsse
Beat
Option Explicit
Function My_UnderlineNone(Bereich As Range)
Dim Rng As Range, x&
Application.Volatile
...
oder du kombinierst die UDF in der Zellformel mit einer automatisch volatilen Funktion (naürlich ohne den Wert zu verändern):
=My_UnderlineNone(A1:A10)+0*Zufallszahl()
Volatile Funktionen in grosser Anzahl wirken sich negativ auf die Performance aus, weil sie bei jeder Änderung in Excel neu berechnet werden und damit sehr oft, auch wenn es nicht notwendig wäre.
If Rng.Font.Underline xlUnderlineStyleNone And Rng "" Then
Gruß Matthias
| B | C | D | E | F | |
| 3 | 94 | 48 | 2 | 18 | |
| 4 | 69 | 24 | 35 | 28 | |
| 5 | 76 | 33 | 89 | 11 | |
| 6 | 68 | 22 | 60 | 41 | |
| 7 | 93 | 95 | 42 | 32 | |
| 8 | 83 | 72 | 31 | 3 | |
| 9 | 28 | 18 | 35 | 62 | |
| 10 | 19 | 18 | 39 | 86 | |
| 11 | 85 | 60 | 90 | 46 | |
| 12 | |||||
| 13 | |||||
| 14 | 9 | ||||
| 15 | zum Aktulisieren klicke auf B14 | ||||
| 16 | |||||
| 17 | Control-Claculate | ||||
| 18 | 20.11.2014 15:38:00 |
| Formeln der Tabelle | ||||||
|
Um die Anzahl der unterstrichenen Zahlen in einem bestimmten Zellbereich in Excel zu zählen, kannst Du eine benutzerdefinierte Funktion (UDF) in VBA erstellen. Hier ist eine einfache Anleitung:
Öffne den VBA-Editor:
ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.Füge ein neues Modul hinzu:
Einfügen > Modul.Füge den folgenden Code ein:
Option Explicit
Function My_UnderlineNone(Bereich As Range) As Long
Dim Rng As Range
Dim x As Long
x = 0
For Each Rng In Bereich
If IsNumeric(Rng) Then
If Rng.Font.Underline <> xlUnderlineStyleNone Then
x = x + 1
End If
End If
Next Rng
My_UnderlineNone = x
End Function
Schließe den VBA-Editor:
Verwende die Funktion in einer Zelle:
=My_UnderlineNone(D3:G20)Fehler: Funktion gibt falsche Ergebnisse zurück
Lösung: Stelle sicher, dass die Zellen im gewählten Bereich tatsächlich Zahlen enthalten und richtig formatiert sind. Überprüfe auch, ob die Unterstreichung korrekt angewendet wurde.
Fehler: Funktion aktualisiert sich nicht
Lösung: Du kannst die Funktion Application.Volatile hinzufügen, um die Funktion bei jeder Änderung in der Arbeitsmappe zu aktualisieren. Füge diese Zeile direkt nach Dim Rng As Range hinzu.
Wenn Du keine VBA-Funktion verwenden möchtest, kannst Du die Anzahl der unterstrichenen Zahlen auch manuell zählen oder mit bedingten Formatierungen arbeiten, um die unterstrichenen Zellen hervorzuheben. Das ist jedoch weniger automatisiert und erfordert manuelle Eingaben.
Beispiel 1: Zähle unterstrichene Zahlen in einem benutzerdefinierten Bereich.
=My_UnderlineNone(B3:F11)Beispiel 2: Zähle unterstrichene Zahlen in mehreren nicht zusammenhängenden Bereichen.
=My_UnderlineNone((B3:C3;C5:C7))+0*JETZT() am Ende Deiner UDF, um sicherzustellen, dass die Berechnung aktualisiert wird, wenn Du Änderungen in anderen Zellen vornimmst.1. Frage
Wie kann ich die UDF für andere Formate anpassen?
Antwort: Du kannst die Bedingungen im Code ändern, um auch andere Formatierungen zu berücksichtigen, wie z.B. fett oder kursiv.
2. Frage
Kann ich die Funktion auch in Excel Online verwenden?
Antwort: Nein, benutzerdefinierte Funktionen in VBA sind nur in Desktop-Versionen von Excel verfügbar. In Excel Online musst Du alternative Methoden verwenden.
3. Frage
Wie kann ich die Funktion dynamisch machen?
Antwort: Füge Application.Volatile in Deine Funktion ein, um sicherzustellen, dass sie sich bei jeder Änderung in der Arbeitsmappe aktualisiert.