Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1328to1332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige