Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert suchen und falls durchgestrichen....

Forumthread: Wert suchen und falls durchgestrichen....

Wert suchen und falls durchgestrichen....
29.08.2013 13:43:43
Toumas
Hallo zusammen,
ich hatte heute eine Frage eingestellt, bin nun nebenher auf eine andere Idee der Lösungsmöglichkeit gekommen. Da ich mich mit VBA aber so gut wie gar nicht auskenne
wollte ich euch fragen wie man das am besten Umsetzen könnte und ob dies überhaupt ein realistischer Gedanke ist.
Ich habe in Spalte A (ab A2 - A10000) meine Aktenzeichen. Die Anzahl schwankt stetig, aber als grober Durchschnitt kann man von ca. 2000 Stück ausgehen.
Wenn die Zeile durchgestrichen ist, ist dieses Aktenzeichen gerade in Bearbeitung.
Nun kommen je Tag neue Daten hinzu, hierbei kann es vorkommen, dass das gleiche Aktenzeichen bereits vorhanden ist.
Was ich mir nun gedacht habe, wäre eine Prüfung der Aktenzeichen, welche doppelt (drei-, vierfach sind) und sobald eines davon durchgestrichen ist, sollen die Zeilen mit dem gleichen Aktenzeichen, ebenfalls durchgestrichen werden.
So stellen sich für mich folgende Fragen :
1.) Ist der Gedanke bei 2000 Aktenzeichen jedes zu überprüfen ob es doppelt ist oder nicht realistisch ?
Bei meiner anderen Frage, habe ich bereits aufgeführt, dass ich einen Art Dublettenfilter mittels einer Hilfsspalte (H) erstelle (in der
=WENN(A3=A2;1;0 usw. steht) und dann entsprechend nach der "1" Filtern lasse.
2.) Bräuchte ich eine VBA Lösung, mit ich
- nachschau ob das Aktenzeichen in Spalte A mehrfach vorhanden ist
- und kontrolliere ob eines der Zeichen davon durchgestrichen ist
- damit, wenn das Aktenzeichen mehrfach vorhanden und (eines mindestens) davon durchgestrichen ist, die Restlichen Zeilen mit dem jeweiligen Aktenzeichen auch durchgestrichen werden.
Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt, bin gerade ein wenig konfus.....
Vielen Dank im Voraus
Viele Grüße
Toumas

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
1. Ja, 2. Jein! Gruß owT
29.08.2013 14:44:09
Luc:-?
:-?

AW: 1. Ja, 2. Jein! Gruß owT
29.08.2013 15:07:25
Toumas
Hallo Luc
1.) finde ich schon gut, nicht das man bei so vielen Daten mittels VBA zu keinem Ergebnis kommt...
2.) Was ist in dem Fall JEIN ? Ja es gibt eine VBA-Lösung aber Nein nicht für dich
oder wie ? ;-)
Gruß
Toumas

AW war: 1. der Gedanke ist realistisch!, ...
29.08.2013 15:21:35
Luc:-?
…2. VBA⇒uneingeschränkt Ja (reagiert aber nicht auf FormatÄnderungen, weshalb bspw eine UDF volatil sein müsste!), aber wohl auch mit XLM-Fkt ZELLE.ZUORDNEN in benannter Fml, Toumas!
StandardFktt können nicht feststellen, ob ein Text durchgestrichen wurde, aber wahrscheinl diese alte XL4-Makro-Fkt (nur in .xlsm-Dateien!). Musst du mal alle InhaltCodes ausprobieren, ob einer so etwas wie durchgestrichen oder wohl eher nur WAHR liefert, wenn ein Text durchgestrichen ist.
Gruß Luc :-?

Anzeige
AW: AW war: 1. der Gedanke ist realistisch!, ...
29.08.2013 15:31:17
Toumas
Hallo Luc:-?
ich werd mich jetzt erst mal mit der Excel-Hilfe und ein Google hinsetzen und versuchen deine Antwort umzusetzen.
Ich dachte mir irgendwie dass ich nach Selection.Font.Strikethrough = True
suchen lassen kann und dann den Wert der dort dabei entsprechende Zeile A mit den anderen Werten aus A vergleiche und wenn mir VBA da gleiche Werte prästentiert, sollen die auch alle durchgestrichen werden...
Gruß
Toumas

Anzeige
Ja, so ungefähr kann das auch was wdn, ...
29.08.2013 18:39:35
Luc:-?
…Toumas;
dabei muss die Zelle aber nicht ausgewählt wdn!
Const adBer$ = "…" 'hier Bereichsadresse eintragen!
Dim Bereich As Range, xZ As Range
Set Bereich = Range(adBer)
For Each xZ In Bereich
If xZ.Font.StrikeThrough Then
xZ.Find …
While Not Is Nothing xZ
…
xZ.FindNext
Wend
End If
Next xZ
Set Bereich = Nothing
(Bin noch auf Linux, auch deshalb etwas rudimentär!)
Gruß Luc :-?

Anzeige
AW: Ja, so ungefähr kann das auch was wdn, ...
30.08.2013 08:32:26
Toumas
Hallo und Guten Morgen Luc
das mit dem auswählen bekomme ich wohl nicht so schnell raus *g* Ich werd es heute mal alles testen und versuchen und melde mich dann wieder.
Viele Grüße
Toumas

AW: Ja, so ungefähr kann das auch was wdn, ...
30.08.2013 11:00:24
Toumas
Nachtrag
ich hab noch die unten stehende Lösung versucht.
Da fängt er mit der Suche an, wenn er eine Zeile findet, die durchgestrichen ist. Leider
streicht er mir dann alle doppelten durch und nicht nur die, von der bereits eine durchgestrichen war.... ich weiß zwar auch, dass ich in der Schleife die Abfrage (oder so was) reinbauen sollte, ob der Wert, den er gefunden hat auch wirklich durchgestrichen ist, aber ich weiß leider nicht wie.
Sub Nummer_suchen_durchstreichen()
Dim rng As Range, Bereich As Range, f As Range
Dim arr As Variant
Dim r As Long, i As Long, c As Integer
Set Bereich = Range("A1:A10000")
arr = Bereich
For Each xZ In Bereich
If xZ.Font.Strikethrough Then
For c = 1 To UBound(arr, 2)
For r = 1 To UBound(arr, 1)
If Application.CountIf(Bereich, arr(r, c)) > 1 Then
If Bereich.Cells(r, c)  "" And _
Bereich.Cells(r, c).Offset(0, 2) = "" Then
Bereich.Cells(r, c).Font.Strikethrough = True
Set f = Bereich.Find(arr(r, c), after:=Bereich.Cells(r, c), _
lookat:=xlWhole)
Do
f.Font.Strikethrough = True
Set f = Bereich.FindNext(f)
Loop While f.Font.Strikethrough = False
Set f = Nothing
End If
End If
Next
Next
End If
Next xZ
End Sub

Anzeige
AW: Ja, so ungefähr kann das auch was wdn, ...
30.08.2013 10:55:30
Toumas
Hallo Luc,
ich dachte es mir jetzt so... aber mit meinen VBA-Kenntnissen ist das wohl eher ein stochern im Dunkeln.... ;-)
Sub Nummergestrichen()
Dim rng As Range, Bereich As Range, f As Range
Dim arr As Variant
Dim r As Long, i As Long, c As Integer
Set Bereich = Range("A1:A10000")
For Each xZ In Bereich
If xZ.Font.Strikethrough Then
xZ.Find (xZ), after:=xZ, lookat:=x1Whole     'hier bekomme ich meinen Laufzeitfehler 9 ( _
Index ausserhalb des gültigen Bereichs)
While xZ Is Nothing
xZ.Font.Strikethrough = True
xZ.FindNext
Wend
End If
Next xZ
Set Bereich = Nothing
End Sub

Anzeige
AW: Ja, so ungefähr kann das auch was wdn, ...
30.08.2013 12:28:38
Toumas
Habe nun eine andere Lösung gefunden...
ich lasse mir zuerst die Spalte aufsteigend sortieren und lösche dann von unten her alle doppelten Einträge.
Gruß
Toumas
;
Anzeige
Anzeige

Infobox / Tutorial

Aktenzeichen in Excel durchstreichen: Eine Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Aktenzeichen in der Spalte A (A2:A10000) eingetragen sind.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul einfügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere und füge den folgenden Code ein, um durchgestrichene Aktenzeichen zu finden und die entsprechenden Zeilen ebenfalls durchzustreichen:

    Sub DurchstreichenAktenzeichen()
       Dim Bereich As Range
       Dim xZ As Range
       Set Bereich = Range("A2:A10000")
    
       For Each xZ In Bereich
           If xZ.Font.Strikethrough Then
               ' Durchstreichen aller gleichen Aktenzeichen
               Dim c As Range
               For Each c In Bereich
                   If c.Value = xZ.Value Then
                       c.Font.Strikethrough = True
                   End If
               Next c
           End If
       Next xZ
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle DurchstreichenAktenzeichen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler 9 (Index außerhalb des gültigen Bereichs)
    Lösung: Überprüfe, ob der Bereich korrekt definiert ist und tatsächlich Daten enthält.

  • Fehler: Nichts passiert, wenn das Makro ausgeführt wird
    Lösung: Stelle sicher, dass mindestens ein Aktenzeichen in der Spalte durchgestrichen ist, bevor das Makro ausgeführt wird.


Alternative Methoden

  • Excel-Filter verwenden: Du kannst die durchgestrichenen Zellen filtern, indem du den Autofilter aktivierst und nur die durchgestrichenen Zellen anzeigst. Gehe zu Daten > Filter und wähle Benutzerdefiniert, um die durchgestrichenen Zellen zu filtern.

  • Bedingte Formatierung: Wenn du die durchgestrichenen Zellen visuell hervorheben möchtest, kannst du die bedingte Formatierung nutzen, um Zellen mit einem bestimmten Format zu kennzeichnen.


Praktische Beispiele

  1. Beispiel 1: Angenommen, du hast die Aktenzeichen A123, B456, und C789. Wenn A123 durchgestrichen ist, werden alle Vorkommen von A123 in der Liste ebenfalls durchgestrichen.

  2. Beispiel 2: Wenn du in einer Hilfsspalte die Formel =WENN(A2=A1;1;0) verwendest, kannst du Duplikate identifizieren und anschließend mit dem Filter excel filtern nach durchgestrichen arbeiten.


Tipps für Profis

  • Nutze die Funktion Application.ScreenUpdating = False zu Beginn deines Makros, um die Ausführung zu beschleunigen und das Flackern auf dem Bildschirm zu reduzieren.

  • Speichere deine Datei regelmäßig, besonders wenn du mit VBA arbeitest, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Was mache ich, wenn ich Excel nach durchgestrichen filtern möchte?
Du kannst den Autofilter aktivieren und dann die durchgestrichenen Zellen auswählen, um sie anzuzeigen.

2. Wie entferne ich die Durchstreichung von Zellen?
Setze die Font.Strikethrough-Eigenschaft der Zelle auf False:

xZ.Font.Strikethrough = False

3. Funktioniert dies in allen Excel-Versionen?
Ja, diese VBA-Lösungen sollten in den meisten gängigen Excel-Versionen, insbesondere ab Excel 2010, funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige