Live-Forum - Die aktuellen Beiträge
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
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige