Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
608to612
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
608to612
608to612
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ausfüllen bis letzten Tag im Monat

ausfüllen bis letzten Tag im Monat
15.05.2005 00:01:09
Reinhard
Hallo Wissende,
ich häng hier gerade fest, es soll nur ausfgefüllt werden bis zum letzten tag im Monat, aber ich kriege es nicht hin :-(

Irgendwas ist an der If falsch.
monat = 2
Jahr=2005
For anz = 1 To 31
'If Month(CDate(anz & "." & monat & "." & Jahr) + z - 1) > monat Then Exit Sub
For z = 0 To 23
Cells((anz - 1) * 24 + z + 2, 1) = Right("00" & anz, 2) & "." & Right("00" & monat, 2) & "." & Jahr
Cells((anz - 1) * 24 + z + 2, 2) = Right("00" & z, 2) & ":00"
Next z
Next anz

Gruß
Reinhard

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ausfüllen bis letzten Tag im Monat
15.05.2005 00:14:47
Reinhard
Hallo
ich habe es jetzt so gelöst:

On Error GoTo Fehler
For anz = 1 To 31
x = CDate(anz & "." & monat & "." & Jahr)
For z = 0 To 23
Cells((anz - 1) * 24 + z + 2, 1) = Right("00" & anz, 2) & "." & Right("00" & monat, 2) & "." & Jahr
Cells((anz - 1) * 24 + z + 2, 2) = Right("00" & z, 2) & ":00"
Next z
Next anz
Fehler:
end sub
aber die On Error Lösung gefällt mir nicht unbedingt.
Gruß
Reinhard

ui, Februar hat 2005 & 2006 29 tage *g
15.05.2005 00:27:07
Reinhard
Hallo,
irgednwas scheint auch mit der Neuen Lösung faul zu sein, Krise kriege.
Gruß
Reinhard
hier der Gesamtcode, falls es daran liegt
15.05.2005 00:28:49
Reinhard
Hallo,

Sub MonatsblätterErstellen()
Call loesch
Jahr = InputBox("Jahr eingeben")
If Jahr = "" Then Exit Sub
For n = 1 To 12
For nn = 1 To ThisWorkbook.Worksheets.Count
If MonthName(Month("1." & Str(n) & "." & Jahr)) & "_" & Jahr = Worksheets(nn).Name Then vorh = True
Next nn
If vorhanden = False Then Call ausfüllen(n, Jahr)
Next n
End Sub


Sub loesch()
Application.DisplayAlerts = False
For nn = ThisWorkbook.Worksheets.Count To 1 Step -1
If Worksheets(nn).Name Like "*05" Or Worksheets(nn).Name Like "*06" Then Worksheets(nn).Delete
Next nn
Application.DisplayAlerts = True
End Sub


Sub ausfüllen(ByVal monat As Integer, ByVal Jahr As String)
On Error GoTo Fehler
Worksheets.Add
Columns("A:A").NumberFormat = "general"
Columns("B:B").NumberFormat = "general"
ActiveSheet.Name = MonthName(Month("1." & Str(monat) & "." & Jahr)) & "_" & Jahr
For anz = 1 To 31
x = CDate(anz & "." & monat & "." & Jahr)
For z = 0 To 23
Cells((anz - 1) * 24 + z + 2, 1) = Right("00" & anz, 2) & "." & Right("00" & monat, 2) & "." & Jahr
Cells((anz - 1) * 24 + z + 2, 2) = Right("00" & z, 2) & ":00"
Next z
Next anz
Fehler:
End Sub

Gruß
Reinhard
Anzeige
AW: hier der Gesamtcode, falls es daran liegt
15.05.2005 00:55:14
Bert
Hi,
gibt es einen Grund, warum das Datum als Text erzeugt wird?
mfg Bert
AW: hier der Gesamtcode, falls es daran liegt
15.05.2005 01:09:01
Reinhard
Hallo Bert,
im Prinzip ist mir das egal, brauche das Datum nicht als Datum.
Ich will da helfen:
<a href="https://www.herber.de/forum/messages/610813.html">https://www.herber.de/forum/messages/610813.html</a>
und machte mir so meine Gedanken, sein eigentliches priblem ging ich noch gar nicht an, bin noch dabei die Tabellen zu erstellen,
in der dann was eingelesen wird. Und du brauchst die Datei gar nicht zu öffnene,
hier die Aufgabe kurz geschildert, er will Txt Files auslesen, die so aufgebaut sind:
MessreiheC:\Verbrauch_08-04-2005_10-25-14.asc
Anzahl Kanäle5
Datum;Uhrzeit;Wert1;m         ;
15.04.2005;10:00:00;783586,69
15.04.2005;11:00:00;784144,56
15.04.2005;12:00:00;784653,06
15.04.2005;13:00:00;785156,69
15.04.2005;14:00:00;785502,56
folgen noch mehrere Blöcke für Wert2, Wert3 usw.
und die sollen dann so in Excel rein:
Datum	Uhrzeit	Wert1	Wert2	Wert3	Wert4	Wert5
01.04.05	00:00:00	740449,31	274,4	144,36	264,15	841,75
01.04.05	01:00:00	740879,19	281,55	147,2	269,08	842,75
01.04.05	02:00:00	741311	288,82	150,57	273,89	843,75
usw.
das trau ich mir inzwischen schon zu das Einlesen, aber häng noch daran die Tabs vorzubereiten.
Wie ersichtlich ist es egal was in A und B steht, ob Text oder Datum.
Gruß
Reinhard

Anzeige
AW: hier der Gesamtcode, falls es daran liegt
15.05.2005 01:16:01
Bert

Sub ausfüllen(monat As Integer, Jahr As Integer)
Dim a As Long, x As Date, z As Long, bis
On Error GoTo Fehler
bis = Day(DateSerial(Jahr, monat + 1, 0))
Worksheets.Add
Columns("A:B").NumberFormat = "General"
ActiveSheet.Name = MonthName(monat) & "_" & Jahr
For a = 1 To bis
x = DateSerial(Jahr, monat, a)
For z = 0 To 23
Cells((a - 1) * 24 + z + 2, 1) = Right("00" & a, 2) & "." & Right("00" & monat, 2) & "." & Jahr
Cells((a - 1) * 24 + z + 2, 2) = Right("00" & z, 2) & ":00"
Next
Next
Fehler:
End Sub

mfg Bert
Danke Bert & Christoph m.T.
15.05.2005 01:21:47
Reinhard
Hallo Bert,
ich musste die beiden Variablen anders deklarieren, also
Sub ausfüllen(ByVal monat As Integer, ByVal Jahr As Integer)
anstatt
Sub ausfüllen( monat As Integer, Jahr As Integer)
dann liefs
Merci
Gruß
Reinhard
Anzeige
AW: Danke Bert & Christoph m.T.
15.05.2005 01:38:25
Bert
Hi,
du solltest dir mal Option Explicit angewöhnen. Wenn du ByVal übergeben musst, stimmen die Datentypen nicht.
mfg Bert
AW: Danke Bert & Christoph m.T.
15.05.2005 01:43:49
Reinhard
Hallo Bert,
ach, daher kommt das, habe mich schon öfters sehr gewundert dass es mal klappt mal nicht.
Naja, ich und Option Explicit, irgendwie passen wir nicht zusammen.
Klar, bin immer schwer am Fluchen wenn was nicht klappt und es daran liegt dass z.B
letzte=Range("a65536").end(xlup).row wunderbar aussieht, aber die variable die ich später benutze, z.B.
lezte
nix da´von weiss was in letzte drinsteht :-)
Danke für die Info
Gruß
Reinhard
Anzeige
AW: Danke Bert & Christoph m.T.
15.05.2005 01:58:25
Bert
Hi,
war etwas anders gemeint. Wenn du Variable an eine Sub oder Function übergibst, müssen die Datentypen identisch sein.
Die Voreinstellung(muss nicht angegeben werden) ist ByRef.
mfg Bert
Tipp: DateSerial
15.05.2005 01:14:58
Christoph M
Hallo Reinhard,
ohne deinen Code jetzt im Detail nachzuvollziehen ... wenn ich dich im groben verstanden habe willst du den Monats-Letzten herausfinden. Untenstehender Code erzeugt 12 Monatstabellen und füllt diese bis zum Monats-Letzten.
Hierbei wird vom nächsten Monats-Ersten ein Tag abgezogen:
Bsp:
Option Explicit
Sub FillDate()
Dim wks As Worksheet
Dim intDay%, intMonth%, intYear%
intYear = InputBox("Jahr")
For intMonth = 1 To 12
Set wks = Sheets.Add(, Sheets(Sheets.Count))
wks.Name = Format(DateSerial(intYear, intMonth, 1), "MMM-YY")
For intDay = 1 To Day(DateSerial(intYear, intMonth + 1, 1) - 1)
Cells(intDay, 1) = intDay
Next
Next
End Sub
hoffe dir geholfen zu haben
Gruß
Christoph
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige