Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Monate in Zeitraum ermitteln

VBA Monate in Zeitraum ermitteln
14.03.2007 09:20:29
Robert
Guten Morgen Excellers,
Ich kann wieder mal Hilfe gebrauchen. Ist es vielleicht möglich anhand Zeitraum angabe in Zelle A2(Von) und B2(Bis) In Spalte C alle Monate in diesem Zeitraum untereinand auf zu listen
Beispiel
Zelle A2 hat der Wert:31/01/2007
Zelle B2 hat der Wert:31/05/2007
In Spalte C möchte ich jetzt folgende Werte sehen.
31/01/2007
28/02/2007
31/03/2007
30/04/2007
31/05/2007
Wichtig ist dass eine Lösung mit VBA zustande kommt.
Besten Dank schon mal für eure Hilfe.
Gruss
Robert
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Monate in Zeitraum ermitteln
14.03.2007 09:37:00
Erich
Hallo Robert,
in deinem Beispiel sind in A2 und B2 jeweils Monatsletzte angegeben. Ist das immer so?
Wenn nicht, was soll dann ausgegeben werden - z.B. bei A2=20.01.2007 und B2=10.05.2007 ?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: VBA Monate in Zeitraum ermitteln
14.03.2007 09:43:14
Rudi
Hallo,

Sub tt()
Dim i As Long
For i = Range("A2") To Range("B2")
If Format(i, "MMYYYY")  Format(i + 1, "MMYYYY") Then
Cells(65536, 3).End(xlUp).Offset(1, 0) = DateSerial(Year(i), Month(i) + 1, 0)
End If
Next i
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Anzeige
AW: VBA Monate in Zeitraum ermitteln
14.03.2007 23:58:03
Robert
Guten Abend Allen,
Ich danke wieder mal für eure Hilfe. Rudi, deine Lösung ist einfach aber für mich genau richtig.
Besten Dank und Grüsse,
Robert
AW: VBA Monate in Zeitraum ermitteln
14.03.2007 09:43:18
Oberschlumpf
Hi Robert
Meinst du so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:B2")) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
Dim liStartM As Integer, liEndeM As Integer, liDurchlauf As Integer, liZeile As Integer
Application.EnableEvents = False
liStartM = Month(Range("A2").Value)
liEndeM = Month(Range("B2").Value)
Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row).Value = ""
liZeile = 1
For liDurchlauf = liStartM To liEndeM - liStartM + 1
Select Case liDurchlauf
Case 1
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
Case 2
Range("C" & liZeile).Value = CDate("28." & liDurchlauf & ".2007")
Case 3
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
Case 4
Range("C" & liZeile).Value = CDate("30." & liDurchlauf & ".2007")
Case 5
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
Case 6
Range("C" & liZeile).Value = CDate("30." & liDurchlauf & ".2007")
Case 7
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
Case 8
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
Case 9
Range("C" & liZeile).Value = CDate("30." & liDurchlauf & ".2007")
Case 10
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
Case 11
Range("C" & liZeile).Value = CDate("30." & liDurchlauf & ".2007")
Case 12
Range("C" & liZeile).Value = CDate("31." & liDurchlauf & ".2007")
End Select
liZeile = liZeile + 1
Next
Application.EnableEvents = True
End Sub
Bin jetzt mal von nur 2007 ausgegangen. Kannst du ja bei Bedarf noch anpassen.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: VBA Monate in Zeitraum ermitteln
14.03.2007 14:23:00
Peter
Hallo Robert,
das ist z. B. so möglich:


Public Sub Monate()
Dim lZeile  As Long
Dim dDatum  As Date
   If IsDate(Range("A2").Value) And _
      IsDate(Range("B2").Value) Then
      dDatum = CDate(Range("A2").Value)
    Else
      MsgBox "In Zelle A2/B2 ist kein richtiges Datum enthalten.", _
         48, "   Hinweis für " & Application.UserName
      Exit Sub
   End If
   lZeile = 2
   Do
      Range("C" & lZeile).Value = DateSerial(Year(dDatum), Month(dDatum), _
         Day(DateSerial(Year(dDatum), Month(dDatum) + 1, 0)))
      lZeile = lZeile + 1
      dDatum = DateSerial(Year(dDatum), Month(dDatum) + 1, 1)
   Loop Until dDatum > CDate(Range("B2").Value)
End Sub 


Gruß Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige