Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

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"