Thema Datum  Von Nutzer Rating
Antwort
Rot In Datum umwandeln und Wert addieren
03.05.2011 08:39:50 Minako
NotSolved
04.05.2011 21:13:05 vbMichel
NotSolved

Ansicht des Beitrags:
Von:
Minako
Datum:
03.05.2011 08:39:50
Views:
1697
Rating: Antwort:
  Ja
Thema:
In Datum umwandeln und Wert addieren

Hey leute,

ich hab in einer Spalte Werte stehen in folgender Form:

Spalte M
Datum + 3 Tage
Date+2Wochen
Datum
Date
Datum+ 3 month
usw

Wie ihr seht stehen manchmal Leerzeichen drin und manchmal nicht, das Wort Datum kann auch in Englisch sein, sowie Tag, Monat, Jahr...

jetzt möchte ich ein Makro, dass diese Spalte durchläuft und immer das Wort Datum und Date mit dem aktuellen Datum ersetzt, und dann den Wert der dahinter steht auf das aktuelle Datum addiert und dann in der gleiche Zelle diese einzelne Datum ausgibt.

Also wenn in der Zelle stand: Date+ 4 Monate
soll heute drin stehen: 03.09.2011

hab das ganze mal probiert in eine Form zu bringen, aber das mit der Schleife klappt nicht ganz. Er nimmt nur die erste Zelle, wandelt diese richtig um und springt dann raus, bzw das Makro ist dann beendet und er geht die anderen Zellen nicht mehr durch.

Sieht jmd das Problem an meiner Schleife?

 

Sub Datum() 

Dim c As Range 
Dim a As Range 
Dim b As Range 
Dim d As Range 
Dim e As Range 
Dim f As Range 
Dim anzMonat As Long 
Dim i As Long 
    i = 0 

With Worksheets("Datum").Columns(13) 
Set c = .Find(what:="Datum", lookat:=xlPart) 
Set f = .Find(what:="Date", lookat:=xlPart) 
Set a = .Find(what:="*mo*", lookat:=xlPart) 
Set b = .Find(what:="*w*", lookat:=xlPart) 
Set d = .Find(what:="*ta*", lookat:=xlPart) 
Set e = .Find(what:="*da*", lookat:=xlPart) 

If Not IsEmpty(c) Or Not IsEmpty(f) Then 

Do 
If Not c Is Nothing Then 

Do 
  If Len(c) < 3 Then 
  c.Value = Date 
  Else 
  For i = 3 To Len(c) 
        If IsNumeric(Mid(c, i, 1)) Then 
            
                anzMonat = Mid(c, i, 1) 
                
            If Not a Is Nothing Then 
                c.Value = DateAdd("m", CDbl(anzMonat), Date) 
            Else 
                If Not b Is Nothing Then 
                    c.Value = DateAdd("ww", CDbl(anzMonat), Date) 
                Else 
                    If Not c Is noting Then 
                        c.Value = DateAdd("d", CDbl(anzMonat), Date) 
                    Else 
                        If Not d Is Nothing Then 
                            c.Value = DateAdd("d", CDbl(anzMonat), Date) 
                        Else 
                            c.Value = DateAdd("d", CDbl(anzMonat), Date) 
                        End If 
                    End If 
                End If 
            End If 
            Exit For 
        End If 
    Next 
    End If 

  Set c = .FindNext(c) 
  
Loop Until c Is Nothing 
End If 

If Not f Is Nothing Then 

Do 
  If Len(f) < 3 Then 
  f.Value = Date 
  Else 
  For i = 3 To Len(f) 
        If IsNumeric(Mid(f, i, 1)) Then 
            
                anzMonat = Mid(f, i, 1) 
                
            If Not a Is Nothing Then 
                f.Value = DateAdd("m", CDbl(anzMonat), Date) 
            Else 
                If Not b Is Nothing Then 
                    f.Value = DateAdd("ww", CDbl(anzMonat), Date) 
                Else 
                    If Not c Is noting Then 
                        f.Value = DateAdd("d", CDbl(anzMonat), Date) 
                    Else 
                        If Not d Is Nothing Then 
                            f.Value = DateAdd("d", CDbl(anzMonat), Date) 
                        Else 
                            f.Value = DateAdd("d", CDbl(anzMonat), Date) 
                        End If 
                    End If 
                End If 
            End If 
            Exit For 
        End If 
    Next 
    End If 

  Set f = .FindNext(f) 
  
Loop Until f Is Nothing 
End If 

Loop Until c Is Nothing Or f Is Nothing 
End If 

End With 
End Sub

wär sau cool wenn mir jmd helfen könnte.
Thx, Mina


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot In Datum umwandeln und Wert addieren
03.05.2011 08:39:50 Minako
NotSolved
04.05.2011 21:13:05 vbMichel
NotSolved