Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum anpassen in einer Datumsreihe

Datum anpassen in einer Datumsreihe
edie
Hallo zusammen,
ab der Zelle A4, nach unten variabel lang, stehen Zahlen und zwischen durch mal immer
wieder paarweise Zellen mit Datum. Dabei wird die Spalte A immer wieder neu erstellt d.h.
die Zahlen und Datum sind immer wieder neu. (siehe Bild)
Nun suche ich, bisweilen vergebens, nach einer Möglichkeit, das Jahr zu erhöhen beim unteren Datum, wenn der Monat kleiner ist wie der Monat oben.
Beispiel:
A20= 25.08.1970
A21 = 02.02.1970
Da das Datum 02.02.1970 kleiner ist als 25.08.1970 soll 02.02.1971 stehen.
Wie kann man das in einer Schleife abarbeiten?
 AB
4Datumsreihe 
51 
61 
71 
81 
91 
1002.06.1970 
1105.08.1970 
122 
132 
142 
152 
1613.06.1970 
1710.09.1970 
183 
193 
2025.08.1970 
2102.02.1970soll aber 1971
224 
234 
244 
254 
264 
2703.09.1970 
2813.05.1970soll aber 1971

Tabellendarstellung in Foren Version 5.5


Kan mir jemand dabei helfen?
Vielen Dank im Voraus.
Grüße
AW: Datum anpassen in einer Datumsreihe
28.01.2010 12:24:21
Ptonka
Hallo edie,
wie werden denn die Werte in Spalte A eingetragen? händisch? per Makro? per Kopierbefehl?
Das müsste man wissen.
Gruß,
Ptonka
AW: Datum anpassen in einer Datumsreihe
28.01.2010 13:03:20
edie
Hallo Ptonka,
die Daten werden per Makro kopiert.
Aber denkbar wäre eine Makro noch einmal durchlaufen lassen.
vielen Dank für die Hilfe.
Grüße edie
AW: Datum anpassen in einer Datumsreihe
28.01.2010 13:14:28
edie
Hallo,
es kann ja auch eine Formel sein die man nach unten kopieren kann.
Vorab vielen Dank.
Grüße edie
AW: Datum anpassen in einer Datumsreihe
28.01.2010 14:08:30
Ptonka
Hallo edie,
dann frag doch in dem Makro (vermutlich ist es eine Schleife) ab,
ob es sich bei dem zugewisenen Wert um ein Datum handelt.
Falls Ja, schreib den Monat in eine Variable.
Dann vergleichst Du den Monat mit dem Monat des vorherigen Wertes
(ebenfalls in einer Variable) und wenn Monat2 kleiner als Monat1 ist
dann erhöhe das Jahr um 1.
Dazu müsste man aber das Makro kennen, um diese Abfrage sinnvoll einzubauen.
Gruß,
Ptonka
Anzeige
AW: Datum anpassen in einer Datumsreihe
28.01.2010 14:20:42
Tino
Hallo,
ich habe es so versucht, kannst ja mal testen.
Sub test()
Dim meAR
Dim a&

meAR = Range("A2", Cells(Rows.Count, 1).End(xlUp))

For a = 1 To Ubound(meAR) - 1
 If IsDate(meAR(a, 1)) Then
  If IsDate(meAR(a + 1, 1)) Then
   If meAR(a, 1) > meAR(a + 1, 1) Then
    meAR(a + 1, 1) = DateSerial(Year(meAR(a, 1)) + 1, Month(meAR(a + 1, 1)), Day(meAR(a + 1, 1)))
    a = a + 1
   End If
  End If
 End If
Next a

Range("A2").Resize(Ubound(meAR)) = meAR
End Sub
Gruß Tino
Anzeige
AW: Datum anpassen in einer Datumsreihe
28.01.2010 14:44:47
edie
Hallo Ptonka,
Hallo Tino,
bin unendlich froh, es funktioniert einwandfrei.
Hätte es mit meinen Kenntnissen „VBA nur mit Macrorecorder“ nie geschafft.
Vielen herzlichen Dank.
Grüße edie
Was kann man gegen dd/mm/YYYY tun?
28.01.2010 22:16:43
edie
Hallo zusammen,
habe bereits festgestellt, dass wenn der Tag größer 12 ist, dann wird das Datum statt 20.06.2001
in die englische Schreibweise 06/20/2001 umgewandelt.
Kann man was dagegen tun?
Für jede Hilfe bin ich sehr dankbar.
Grüße edie
versuche es mal mit dieser Version...
31.01.2010 13:15:56
Tino
Hallo,
Sub Datum_Zelle(ByRef rngDatumZelle As Range, ByVal rngZelle As Range)
  If rngDatumZelle Is Nothing Then
   Set rngDatumZelle = rngZelle
  Else
   Set rngDatumZelle = Union(rngDatumZelle, rngZelle)
  End If
End Sub

Sub test()
Dim meAR
Dim a&
Dim rngDatumZelle As Range

meAR = Range("A2", Cells(Rows.Count, 1).End(xlUp))

For a = 1 To Ubound(meAR) - 1
 If IsDate(meAR(a, 1)) Then
  
  Datum_Zelle rngDatumZelle, Cells(a + 1, 1)
  
  If IsDate(meAR(a + 1, 1)) Then
   
   Datum_Zelle rngDatumZelle, Cells(a + 2, 1)
   
   If meAR(a, 1) > meAR(a + 1, 1) Then
        meAR(a + 1, 1) = DateSerial(Year(meAR(a, 1)) + 1, Month(meAR(a + 1, 1)), Day(meAR(a + 1, 1)))
        a = a + 1
   End If
  End If
 End If
Next a

Range("A2").Resize(Ubound(meAR)) = meAR
If Not rngDatumZelle Is Nothing Then
 rngDatumZelle.NumberFormat = "DD/MM/YYYY"
End If

End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige