Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zuviel oder zu wenig
#1
Hi Leute,

ich weiß ich stell mich ein bisschen arg doof an gerade, aber ich bekomme es wirklich nicht hin.


Mir hat hier jemand gestern folgenden Code zur Datumsausgabe gegeben:

Private Sub CommandButton1_Click()

Dim loAnzahl As Long, loMonat As Long, i As Long

Columns(1).ClearContents
loMonat = Month(CDate("1." & Left(Trim(Cells(1, 3)), 3) & "." & Right(Trim(Cells(1, 3)), 4)))
Cells(1, 1) = DateSerial(Right(Trim(Cells(1, 3)), 4), loMonat, 1)
loAnzahl = Day(WorksheetFunction.EoMonth(Cells(1, 1), 0))

For i = 2 To loAnzahl
   Cells(i, 1) = Cells(i - 1, 1) + 1
Next i

End Sub

Funktioniert auch einwandfrei. Leider hat sich die Tabelle etwas geändert und die Ausgabe müsste von Zelle A10 bis A41
erfolgen. Ich bekomme es zwar hin, dass es ab Zelle A10 (i=10) los geht, aber es geht dann nur bis A22 und in A1 steht auch noch 
ein Datum.

Ich finde nicht die richtigen Zellenbezüge gerade.

Ich bedanke mich mal wieder für eure Hilfe.

LG

Basti
Antworten Top
#2
Hallo Basti,

mit der Info Cells(z, s) (z=zeile, s=spalte) findest Du sicher die codezeile für a1.

Die Sache mit dem i hast Du schon herausgefunden.


To bedeutet bis


Wenn Du also fest bis Zeile 41 gehen willst, solltest Du dort auch eine Zahl programmieren Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Ja passt soweit, nur jetzt gibt es mir immer das Jahr 1900 aus, soll aber ja im Oktober starten. (?)
Antworten Top
#4
hier ist mal die Probe Datei, es wir jetzt nur das Jahr 1900 angezeigt und
verändern bei einem Klick, tut es sich auch nicht mehr Sad

VG


Angehängte Dateien
.xlsm   Probe.xlsm (Größe: 19,95 KB / Downloads: 3)
Antworten Top
#5
Hab den Fehler gefunden Smile
Antworten Top
#6
Kann mir jemand sagen was ich falsch mache? Ich bin echt am verzweifeln, alles funzt nur zur Hälfte:

Wenn ich den Code nehme:

Private Sub CommandButton2_Click()

With Range("B1")
    .NumberFormat = "@"
    If IsDate(.Value) Then
      .Value = Format(CDate(.Value) + 31, "mmmm yyyy")
    Else
      .Value = Format(Date, "mmmm yyyy")
    End If
  End With
  
Dim loAnzahl As Long, loMonat As Long, i As Long

Columns(1).ClearContents
loMonat = Month(CDate("1." & Left(Trim(Cells(1, 2)), 3) & "." & Right(Trim(Cells(1, 2)), 4)))
Cells(10, 1) = DateSerial(Right(Trim(Cells(1, 2)), 4), loMonat, 1)
loAnzahl = Day(WorksheetFunction.EoMonth(Cells(10, 1), 0))

For i = 11 To 40
   Cells(i, 1) = Cells(i - 1, 1) + 1
Next i

End Sub

Dann wird mir in Zelle A40 immer der erste des folge Monats angezeigt, wenn dieser nur 30 Tage hat (bei Februar sogar 2 bis 3 Tage des Märzes).

Wenn ich:

[...]

For i = 11 to loAnzahl 

[...]

nehme, dann werden nur die Zellen A10 bis A31 angesprochen bzw. ausgefüllt. Die loAnzahl würde ja passen, wenn es A1 bis A31 wäre.

Weiß jemand wo ich die loAnzahl ändern kann?

nochmals danke und viele Grüße

der "traurige" Basti
Antworten Top
#7
Hallo Basti,

Deine Frage gehört ja noch zum anderen Thema, da hättest Du auch dran bleiben können. Ich schaue mal, ob ich das noch dran hänge.

Ich schrieb dort, wenn Du eine feste Zahl verwenden willst, dann nimmst Du diese.
Wenn Du nun aber die Anzahl der Tage eines Monats verarbeiten willst, dann musst Du damit arbeiten.


Dein i hast Du ja von 1 auf 10 hochgesetzt, weil Du weiter unten beginnen willst. Wenn Du das Ende auch um die 9 Zeilen verschieben willst, dann addierst Du einfach die 9 zu loAnzahl.


For i = 10 to loAnzahl + 9
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Passt - danke Wink
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste