Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

VBA Einträge auf Monatstage beschränken

VBA Einträge auf Monatstage beschränken
Sascha
Hallo Experten,
Ich habe folgenden Code:

If Sheets("MSW4").Range("P30") = "" Then
Sheets("MSW4").Range("P30").Value = 0
End If
If Sheets("MSW4").Range("P31") = "" Then
Sheets("MSW4").Range("P31").Value = 0
End If
If Sheets("MSW4").Range("P32") = "" Then
Sheets("MSW4").Range("P32").Value = 0
End If
If Sheets("MSW4").Range("P33") = "" Then
Sheets("MSW4").Range("P33").Value = 0
End If
Die Zelle P30 ist für den 28. im Monat
Die Zelle P31 für den 29. im Monat
Die Zelle P32 für den 30.
Die Zelle P33 für den 31. im Monat
Ist es möglich, dass wenn der Monat z.B. nur 30 Tage hat, dass dann der Code mit P33 nicht ausgeführt wird?
Und wenn der Monat nur 28 oder 29 Tage hat (Februar) dass dann die Codes P31-P33 nicht ausgeführt werden?
Wie kann ich das realisieren?
LG Sascha
Wo steht den die Monatsangabe? o.T.
15.10.2011 20:28:20
Josef
« Gruß Sepp »

AW: Wo steht den die Monatsangabe? o.T.
15.10.2011 20:39:37
Sascha
Hallo Sepp,
Ich habe im Sheet ("Hilf") in der Zelle "F2" diese Formel:

=HEUTE()-TAG(HEUTE())+1
Und in jedem Blatt in "G1" steht der Monat im Bezug auf diese Zelle im Blatt Hilf
Gruss Sascha
AW: Wo steht den die Monatsangabe? o.T.
15.10.2011 21:05:23
Josef

Hallo Sascha,
probiere es mal so.

Sub sascha()
  Dim lngRow As Long
  
  With Sheets("MSW4")
    For lngRow = 2 To Day(DateSerial(Year(Now), .Range("G1") + 1, -1))
      If .Cells(lngRow, 16) = "" Then .Cells(lngRow, 16) = 0
    Next
  End With
  
End Sub



« Gruß Sepp »

Anzeige
AW: Wo steht den die Monatsangabe? o.T.
15.10.2011 21:13:15
Sascha
Es kommt Laufzeitfehler 6:
For lngRow = 2 To Day(DateSerial(Year(Now), .Range("G1") + 1, -1))
wird gelb markiert
Dann steht in G1 nicht das Monat! o.T.
15.10.2011 21:16:36
Josef
« Gruß Sepp »

AW: Dann steht in G1 nicht das Monat! o.T.
15.10.2011 21:21:01
Sascha
Es ist eine verbundene Zelle G1:I1 mit dem Benutzerdefiniert MMMM YY
Hab den Monat mal nur in G1 geschrieben, aber gleicher Fehler
AW: Dann steht in G1 nicht das Monat! o.T.
15.10.2011 21:22:41
Josef

Hallo Sascha,
dann steht in G1 das Datum und nicht das Monat als Zahl!


Sub sascha()
  Dim lngRow As Long
  
  With Sheets("MSW4")
    For lngRow = 2 To Day(DateSerial(Year(Now), Month(.Range("G1")) + 1, -1))
      If .Cells(lngRow, 16) = "" Then .Cells(lngRow, 16) = 0
    Next
  End With
  
End Sub



« Gruß Sepp »

Anzeige
AW: Dann steht in G1 nicht das Monat! o.T.
15.10.2011 21:30:33
Sascha
Super, jetzt kommt kein Fehler mehr.
leider noch ein aber...
ich habe jetzt den Monat Oktober. Die Nullen schreibt es aber anstatt in alle 31 Tage nur in die Tage 1 - 28
Die letzten 3 Tage fehlen.
ich habe noch vergessen zu erwähnen dass der Tag 1 erst in der Zeile 3 anfängt...
Gruss Sascha
AW: Dann steht in G1 nicht das Monat! o.T.
15.10.2011 21:37:40
Josef

Hallo,
dann halt so.

Sub sascha()
  Dim lngRow As Long
  
  With Sheets("MSW4")
    For lngRow = 3 To Day(DateSerial(Year(Now), Month(.Range("G1")) + 1, -1)) + 2
      If .Cells(lngRow, 16) = "" Then .Cells(lngRow, 16) = 0
    Next
  End With
  
End Sub



« Gruß Sepp »

Anzeige
AW: Dann steht in G1 nicht das Monat! o.T.
15.10.2011 21:47:53
Sascha
Super. DU bist mein Held...
Hab hinten +3 gemacht, jetzt stimmts... :-))

Sub sascha()
Call SchutzAus
Dim lngRow As Long
With Sheets("MSW4")
For lngRow = 3 To Day(DateSerial(Year(Now), Month(.Range("G1")) + 1, -1)) + 3
If .Cells(lngRow, 16) = "" Then .Cells(lngRow, 16) = 0
Next
End With
End Sub
Vielen lieben Dank Sepp und gute Nacht

176 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige