Datumsangabe innerhalb einer Zelle formatieren
#1
Hallo zusammen,

ich habe folgendes Problem:

Ich habe in einer Excel Datei Zellen, die mehrere Informationen enthalten. Die Zelle enthält Zahlen, Sonderzeichen und Buchstaben. 

Die Abfolge der Informationen in den Zellen ist immer gleich.

Am Ende der Zelle ist eine Datumsangabe im Format "TT.MM.JJ" angegeben.

Diese Datumsangabe soll mit dem tagesaktuellen Datum verglichen werden. 

Wenn das Datum in der Zelle bereits überschritten ist, soll ausschließlich das Datum in der Zelle fett markiert werden und die Schriftfarbe soll rot sein.

Meine Versuche dies in VBA anzuwenden sind leider kläglich gescheitert.

Hat da jemand vielleicht eine Idee?

Gruß und danke im Voraus.
Antworten Top
#2
Zitat:Meine Versuche

Ich sehe keine.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
VBA sagt mir: "Fehler beim Kompilieren: Argument ist nicht optional"

Option Explicit

Sub Datumsprüfung()
Dim Tx As String, pos As Integer
Dim c As Range
Dim dtHeute As Date
dtHeute = Date
For Each c In Range(Cells(1, 10), Cells(50, 10))
  Tx = c.Value
  If pos Then
      If Right(8) Like "##.##.##" And Right(8) <= dtHeute Then
          c.Characters(pos, 8).Font.Bold = True
          c.Characters(pos, 8).Font.Color = vbRed
      End If
  End If
Next c
End Sub
Antworten Top
#4
Bitte, verwende Code Tags !!

  z.B.
Code:
with Cells(14, 2).Characters(Len(Cells(14, 2)) - 8, 9).Font
   .Bold = True
   .ColorIndex = 6
end with
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Also dann hier noch mal mit Code Tag.
Code:
Option Explicit

Sub Datumsprüfung()
Dim Tx As String, pos As Integer
Dim c As Range
Dim dtHeute As Date
dtHeute = Date
For Each c In Range(Cells(1, 10), Cells(50, 10))
  Tx = c.Value
  If pos Then
      If Right(8) Like "##.##.##" And Right(8) <= dtHeute Then
          c.Characters(pos, 8).Font.Bold = True
          c.Characters(pos, 8).Font.Color = vbRed
      End If
  End If
Next c
End Sub
Weiter bin ich immer noch nicht. Wäre nett, wenn mir jemand sagen könnte wo der Fehler liegt.
Antworten Top
#6
Hallo, 19 

was läuft schief? Undecided

Right-Funktion...
Range.Characters-Eigenschaft (Excel)...

Hier mal ein Beispiel: 21
[attachment=47257]
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Marcel_K
Antworten Top
#7
Hallo,

Code:
Sub Datumspruefung()
  Dim lngPos As Long
  Dim rngC As Range
  Dim strTx As String
  For Each rngC In Range(Cells(1, 10), Cells(50, 10))
    strTx = Right(rngC.Value, 8)
    If strTx Like "##.##.##" Then
      If CDate(strTx) <= Date Then
        lngPos = Len(rngC.Value) - 7
        rngC.Characters(lngPos, 8).Font.Bold = True
        rngC.Characters(lngPos, 8).Font.Color = vbRed
      End If
    End If
  Next rngC
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Marcel_K
Antworten Top
#8
Vielen Dank für euren Code.
Ich wusste nicht so recht mir der Right-Funktion umzugehen.

Die Range habe ich noch entsprechend ausgeweitet
Code:
Option Explicit
Public Sub Datumspruefung()
    Dim rngCell As Range
    With Tabelle1
        For Each rngCell In Range(Cells(1, 10), Cells(100, 21))
            If Right(rngCell.Value, 8) Like "##.##.##" And Right(rngCell.Value, 8) <= CDate(Date) Then
                With rngCell.Characters(Len(rngCell) - 7, 8).Font
                    .Bold = True
                    .Color = vbRed
                End With
            End If
        Next rngCell
    End With
End Sub
Habe mich an @Case Code gehalten.
Ich muss mich auf jeden Fall mehr mit VBA beschäftigen. Bin noch neu in der Welt des codens.
Antworten Top
#9
Moin,

warum eigentlich überhaupt Textverarbeitung in einer Tabellenkalkulation. Wenn du ein Datum in den letzten 8 Stellen eines Textes hast, solltest du diese Information als Datum in ein neues Feld schreiben. Erst dann kannst du auswerten, filtern, sortieren, Termine berechnen etc. 
Spar dir also den Quatsch, Teilstrings in Zellen zu bearbeiten und fange mit Datenverarbeitung an.

Viele Grüße
derHöpp
[-] Folgende(r) 1 Nutzer sagt Danke an derHoepp für diesen Beitrag:
  • snb
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste