Von-Datum innerhalb von Zellen suchen
Betrifft: Von-Datum innerhalb von Zellen suchen
von: Werner
Geschrieben am: 17.10.2014 10:27:56
Hallo!
Für mein Problem finde ich trotz Suche keine Lösung...
Ich habe in einer Spalte viele Zellen, in denen Werte nach folgendem Muster stehen:
1x03003 (30.10.2013),
1x03040 (30.10.2013),
1x32006 (13.11.2013),
1x32042 (14.11.2013)
Das steht alles in der gleichen Zelle. Also nicht in 4 Zellen untereinander.
Ich benötige eine Möglichkeit, dass ich einer Userform ein Datum eintrage (z. B. 01.11.13) und das mir dann in den jeweiligen Zellen alle Werte die nach diesem Datum liegen fett markiert oder/und in die Nachbarzelle kopiert werden.
Also z. B.
1x03003 (30.10.2013),
1x03040 (30.10.2013),
1x32006 (13.11.2013),
1x32042 (14.11.2013)
oder
1x03003 (30.10.2013),
1x03040 (30.10.2013),
1x32006 (13.11.2013),
1x32042 (14.11.2013)
und in der Nachbarzelle steht dann auch noch
1x32006 (13.11.2013),
1x32042 (14.11.2013)
Das Ganze soll dann durch die ganze Spalte bis zur letzten beschriebenen Zelle geschehen.
Ist so was irgendwie machbar?
Danke für eure Hilfe!
Werner
 |
Betrifft: Das geht nur mit VBA, nämlich bspw der vbFkt ...
von: Luc:-?
Geschrieben am: 17.10.2014 16:12:17
…Split (als Voraussetzung für den DatumsVgl) und der Characters-Methode (für die TeilFormatierung der jeweiligen Zelle), Werner;
mit bspw BedingtFormat ist das nicht möglich (nur ganze Zellen).
Das nutzt dir jetzt zwar nichts, aber du hast mich auf einen neuen Gedanken gebracht → mal sehen, was draus wird… ;-)
Gruß, Luc :-?
Betrifft: Man kann allerdings auch ohne 'Split' ein ...
von: Luc:-?
Geschrieben am: 17.10.2014 16:18:51
…Datum in TextForm mit den Zellen vgln, allerdings dann nur zyklisch über alle ZellInhalte feststellen, welche Zeile(n) der Zelle (bei Trennung der Zeilen durch hartcodierte ZeilenUmbrüche) betroffen ist(/sind).
Luc :-?
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Daniel
Geschrieben am: 17.10.2014 16:35:49
Hi
wenn das Muster so stimmt (Datum immer 10-stellig in Klammern), dann probier mal folgendes:
Option Explicit
Sub Färben()
Dim DatumAb As Date
Dim Pos As Long
Dim Zelle As Range
Dim txt As String
DatumAb = DateValue("01.11.2013")
For Each Zelle In Columns(1).SpecialCells(xlCellTypeConstants, 2)
txt = Zelle.Value
Pos = 0
Do
Pos = InStr(Pos + 1, txt, "(")
If Pos = 0 Then Exit Do
If IsDate(Mid(txt, Pos + 1, 10)) Then
If CDate(Mid(txt, Pos + 1, 10)) >= DatumAb Then
Pos = InStrRev(txt, vbLf, Pos) + 1
Exit Do
End If
End If
Loop
If Pos > 0 Then
Zelle.Characters(Start:=Pos, Length:=Len(txt) - Pos).Font.FontStyle = "Fett"
End If
Next
End Sub
Gruß Daniel
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Peter Kloßek
Geschrieben am: 18.10.2014 01:33:45
Hallo zusammen,
habe den Makro von Daniel gerade ausprobiert. Es wird dabei die gesamte Zelle auf "Fett" eingestellt. Zunächst muss m. E. das Sammelsurium auf verschiedene Zellen verteilt werden, um alsdann die gewünschten Werte "FETT" zu formatieren.
Hier mein Beispiel:
https://www.herber.de/bbs/user/93224.xlsm
Auf einen Makro habe ich verzichtet, da solcher exakt auf die Mappenstruktur abgestellt werden müsste.
Mit freundlichem Gruß
Peter Kloßek
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Daniel
Geschrieben am: 18.10.2014 01:58:24
Hi Peter
mein Makro funktoniert schon.
du musst aber auch für den linken Begrenzer das richtige Zeichen bereitstellen, bzw verwenden.
in Werners Eingangsbeispiel waren die Daten so angeordnet:
1x03003 (30.10.2013),
1x03040 (30.10.2013),
1x32006 (13.11.2013),
1x32042 (14.11.2013),
dh mit einem Zeilenumbruch zwischen den einzehlen Datensätzen, daher habe ich diesen verwendet um die linke Begrenzung für den fetten bereich zu finden.
in deiner Beispieldatei hingegen sind die Daten so angeordnet (wenn man die Spaltenbreite etwas vergrössert):
1x03003 (30.10.2013), 1x03040 (30.10.2013), 1x32006 (13.11.2013), 1x32042 (14.11.2013)
dh ohne Zeilenumbruch. In deinem Fall musst du daher ein anderes Begrenzungszeichen finden, hier würde sich das Komma anbiegen.
Wenn deine Daten anders aufgebaut sind als in der Eingangsfrage, dann kann es schon vorkommen, dass du Anpassungen im Code vornehemen musst, damit der Code auch in deiner Datei läuft.
Erstze einfach in dieser Zeile:
Pos = InStrRev(txt, vbLf, Pos) + 1
den Zeilenumbruch vbLf durch das Komma:
Pos = InStrRev(txt, ",", Pos) + 1
dann funktioniert der Code mit deiner Datei.
Gruß Daniel
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Peter Kloßek
Geschrieben am: 18.10.2014 14:37:45
Hallo Daniel,
schönen Dank für Deinen Hinweis. Mit der Änderung klappt das ganz ausgezeichnet.
M.f.G. Peter Kloßek
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Werner
Geschrieben am: 20.10.2014 08:12:29
Guten Morgen!
Erst mal DANKE für die zahlreichen Beiträge.
Ich schaue heute danach und melde mich dann.
Gruß
Werner
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Werner
Geschrieben am: 20.10.2014 10:36:47
Hallo zusammen!
Soweit so genial. ;-)
Läuft prima.
Gibt es denn evtl. eine Möglichkeit, dass der "fette Text" in jeweils in die Nachbarzelle kopiert wird?
Gruß
Werner
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Daniel
Geschrieben am: 20.10.2014 10:59:50
Hi
dann ergänze mal im letzen IF-Block:
Zelle.Offset(0, 1).Value = Mid$(txt, Pos)
Gruß Daniel
Betrifft: AW: Von-Datum innerhalb von Zellen suchen
von: Werner
Geschrieben am: 20.10.2014 11:13:05
Jepp. Klappt.
Super!!!
Ich hoffe es ist nicht zu unerverschämt wenn ich noch eine Frage hinterher schiebe...
Kann man die Datumsangaben aus der Nachbarzelle entfernen?
Ich brauche für weitere Berechnungen nämlich dann "nur" die Daten wie in folgendem Beispiel:
Ergebnis in Nachbarzelle: 1x01410 (09.12.2013), 1x03230 (09.12.2013), 1x40224 (09.12.2013)
Datum mit Klammer kann jeweils weg.
Also "nur"
1x01410, 1x03230, 1x40224
Gruß und nochmals DANKE
Beiträge aus den Excel-Beispielen zum Thema "Von-Datum innerhalb von Zellen suchen"