Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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

Numberformat

Numberformat
02.12.2019 10:01:58
Brettkopf
Hallo Liebe Exelgemeinde,
ich habe eine Aktive Zelle mit folgendem Numberformat:
Zelle = "#,##0.0 [$" & kuerzel & " | " & "21.12.2019" & "];-#,##0.00 [$" & kuerzel & " | " & "21.12.2019" & "]"
Ich möchte nun alle Zellen mit diesem Numberformat suchen. Das klappt auch soweit. Nun will ich allerdings auch zellen suchen, die ein etwas anderes Numberformat haben. Also um genau zu sein soll das Datum dabei egal sein. Gibt es eine Möglichkeit nach solchen Zellen zu suchen? Zum Beispiel, dass ich sage gibt mir nur die Zellen raus, die kuerzel enthalten.
Vielen lieben Dank im Voraus!

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Numberformat
02.12.2019 10:21:05
Torsten
Hallo,
If Zelle Like "*" & kuerzel & "*" Then
Gruss
AW: Numberformat
02.12.2019 10:42:58
Brettkopf
Hey, also der Ersatz des Datums funktioniert super. Leider nimmt er auch alle anderen Zellen, egal ob dort kuerzell steht oder nicht.
Also konkreter: bei mir soll er diese Zellen löschen. Nun löscht er allerdings auch Zellen mit dem Format:
Zelle = "#,##0.0 [$" & Hallo & " | " & "21.12.2019" & "];-#,##0.00 [$" & Hallo & " | " & "21.12.2019" & "]"
AW: Numberformat
02.12.2019 11:21:53
Brettkopf
Also theoretisch würde es mir schon reichen, wenn er nach kuerzel sucht.
If Zelle like "kuerzel" funktioniert aber leider nicht...
Anzeige
AW: Numberformat
02.12.2019 11:22:59
Torsten
Hast du auch die Sternchen mit eingesetzt. Sonst funktioniert like nicht
AW: Numberformat
02.12.2019 11:33:37
Brettkopf
Tschuldigung, das habe ich hier falsch geschrieben. Funtioniert aber auch mit *Text* nicht. Ich glaube das Problem liegt darin, dass like sich eventuell nicht auf mein Numberformat bezieht sondern nur auf den Text in der Zelle?
AW: Numberformat
02.12.2019 11:36:45
Torsten
Was willst du denn genau machen, wenn der Code eine Zelle findet, die kuerzel enthaelt? Kannst du eine Beispieldatei hochladen mit fiktiven Daten?
AW: Numberformat
02.12.2019 11:45:34
Daniel
hi
wenn du Zellen mit einem bestimmten Zahlenformat finden willst, musst du auch nach dem Zahlenformat suchen.
dim Zelle as Range
Dim Ergebnis as Range
dim Kürzel as string
Kürzel = "*deinSuchtext*"
for each Zelle in ActiveSheet.Usedrange
if Zelle.Numberformat like Kürzel then
if Ergebnis is Nothing then
set Ergebnis = Zelle
else
set Ergebnis = union(Ergebnis, Zelle)
end if
end if
next
if Ergebnis is Nothing then
msgbox "nichts gefunden"
else
Ergebnis.Select
Msgbox "das Zahlenformat dieser Zellen enthält: " & Kürzel
end if
Gruß Daniel
Anzeige
AW: Numberformat
02.12.2019 11:50:59
Brettkopf
Danke Daniel, das funktioniert!
@ Thorsten auch dir vielen lieben Dank, dass du dich mit meinem Problem beschäftigt hast!
AW: Numberformat
02.12.2019 11:58:50
Brettkopf
AChso, eine Kleinigkeit noch. Wenn kuerzel jetzt als Array definiert ist, wie kann ich ihm sagen, dass er kuerzel(2) zum Beispiel suchen soll.
AW: Numberformat
02.12.2019 12:19:08
Daniel
naja, die Antwort hast du dir doch schon selber gegeben: Kürzel(2) statt Kürzel
wenn die Sternen im Array noch nicht vorhanden sind, musst du sie halt noch beim Like hinzufügen:
… Like "*" & Kürzel(2) & "*"
Gruß Daniel
AW: Numberformat
02.12.2019 12:52:13
Brettkopf
Danke!
RegEx Ausflug
02.12.2019 13:15:29
ChrisL
Hi
Wenn das Kürzel im Voraus bekannt ist und wenn es keine anderen NumberFormats gibt, welche das Kürzel ebenfalls enthalten, dann passt der Lösungsvorschlag und ich würde daran auch nichts mehr ändern.
Trotzdem hier eine Variante mit RegEx (regulärer Ausdruck). Die Suche nach dem Ausdruck könnte man bei Bedarf noch genauer definieren z.B. Anzahl Zeichen des Kürzels etc. Je exakter man das Muster kennt, desto präziser kann man den Pattern definieren.
Im Moment wird nach " | " gefolgt von Datum und gefolgt von "]" gesucht. Das Jahr ist auf 1900 - 2099 eingeschränkt d.h. in 80 Jahren müsste man den Code überarbeiten :)
Sub ttt()
Dim regAusdr As Variant
Dim Uebereinstimmung As Variant
Dim Uebereinstimmungen As Variant
Dim c As Range
Set regAusdr = CreateObject("Vbscript.regexp")
regAusdr.Pattern = "\s*\W*( | 3[01]|[12][0-9]|0?[1-9])\.(1[012]|0?[1-9])\.((?:19|20)\d{2})]\s*"
regAusdr.IgnoreCase = True
regAusdr.Global = True
For Each c In ActiveSheet.UsedRange
Set Uebereinstimmungen = regAusdr.Execute(c.NumberFormat)
For Each Uebereinstimmung In Uebereinstimmungen
MsgBox "gefunden in Zelle " & c.Address(0, 0)
Exit For
Next Uebereinstimmung
Next c
End Sub
Userbild
cu
Chris
Anzeige
AW: RegEx Ausflug
02.12.2019 20:00:44
ChrisL
Der Pattern von vorhin, prüft das Datum relativ genau z.B.
01.1.2019 OK
01.13.2019 Nicht-OK
Im vorliegenden Fall wird aber das Datum vermutlich per VBA-Code (somit validiert) übergeben, weshalb ich den Pattern in Bezug auf das Datum abkürzen würde. Im Gegenzug könnte man dafür noch "[$kürzel" mitberücksichtigen.
regAusdr.Pattern = "(\[\$\w*)\W*( | \d{2}\.\d{2}\.\d{4})]"

Zerpflückt:
Eckige Klammer: (\[
Dollarzeichen: \$
Wort unbekannter Länge: \w*)
Neues Wort \W*
Leerzeichen Strich Leerzeichen: ( |
2 Ziffern: \d{2}
Punkt: \.
2 Ziffern: \d{2}
Punkt: \.
4 Ziffern: \d{4})
Eckige Klammer: ]
Userbild
Anzeige
AW: RegEx Ausflug
02.12.2019 20:09:26
ChrisL
So ist noch besser :)
regAusdr.Pattern = "\[\$\w* \| \d{2}\.\d{2}\.\d{4}]"
Der Strich | wird normalerweise als ODER interpretiert. Daher braucht es den Backslah, um daraus einen Charakter zu machen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige