|  
                                             
	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 
     |