Thema Datum  Von Nutzer Rating
Antwort
23.04.2015 12:05:28 viktoriaV
Solved
Blau Abfrage Datum/Ausgabe fürs Jahr rückwirkend
23.04.2015 14:55:26 Gast71626
*****
Solved
23.04.2015 15:52:09 Gast5715
NotSolved
23.04.2015 15:57:31 Gast71626
*****
NotSolved
24.04.2015 09:21:32 viktoriaV
NotSolved
24.04.2015 12:49:51 Gast92453
NotSolved

Ansicht des Beitrags:
Von:
Gast71626
Datum:
23.04.2015 14:55:26
Views:
1115
Rating: Antwort:
 Nein
Thema:
Abfrage Datum/Ausgabe fürs Jahr rückwirkend

Hi viktoriaV,

im Grunde bist du schon auf dem richtigen Weg.

Der Trick ist eigentlich der, dass man mit der Zählvariable (hier i) die Monate entsprechend pro Schleifendurchgang ändert.

 

Man kann es z.B. wie folgt lösen:

Option Explicit

Sub MonatsAbfrage()
  
  Dim dtmFrom As Date
  Dim retVal  As String
  Dim i       As Long
  
  retVal = InputBox("Für welchen Monat (z.B. April 2015) soll ein Bericht erstellt werden?")
  
  If retVal = "" Then 'Abbruch durch Nutzer?
    Exit Sub
  ElseIf IsDate(retVal) Then
    dtmFrom = CDate(retVal)
  Else
    Call MsgBox("Ungültige Eingabe", vbExclamation)
    Exit Sub
  End If
  
  For i = 1 To 12 '12 Monate
    With report.Sheets("Orders")
    'Spalte: Monat
      .Cells(1 + i, "A").NumberFormat = "mmm yy"
      .Cells(1 + i, "A").Value = DateSerial(Year(dtmFrom) - 1, Month(dtmFrom) + i - 1, 1)
      'Spalte: Von
      .Cells(1 + i, "B").Value = DateSerial(Year(dtmFrom) - 1, Month(dtmFrom) + i - 1, 1)
      'Spalte: Bis
      .Cells(1 + i, "C").Value = DateSerial(Year(dtmFrom) - 1, Month(dtmFrom) - i + 2, 0)
    End With
  Next
  
End Sub

 

Anmerkung:

DateSerial(Year(dtmFrom) - 1, Month(dtmFrom) - i + 2, 0)

Hier wird ...

... mit i=1 der Monat um 1 erhöht;

... mit i=2 der Monat um 0 (= -2+2) erhöht;

... mit i=3 der Monat um -1 (= -3+2) erhöht (passender formuliert: erniedrigt);

... usw.

Der dritte Parameter erhält das Argument Null (0) und dieses bewirkt das nicht der Tag des im zweiten Parameter angebenen Monats zurückgegeben wird, sondern der des Monats davor (im Prinzip wird hier ein wenig getrickst, man muss es halt wissen dass es das gibt).

 

PS: In Dialogen wird i.d.R. die indirekte Anrede verwenden. Der Nutzer erstellt die Liste ja nicht, sie wird für ihn erstellt. ;o)

 

Gruß


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
23.04.2015 12:05:28 viktoriaV
Solved
Blau Abfrage Datum/Ausgabe fürs Jahr rückwirkend
23.04.2015 14:55:26 Gast71626
*****
Solved
23.04.2015 15:52:09 Gast5715
NotSolved
23.04.2015 15:57:31 Gast71626
*****
NotSolved
24.04.2015 09:21:32 viktoriaV
NotSolved
24.04.2015 12:49:51 Gast92453
NotSolved