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

Code anpassen - Benutzerdef. Datum

Code anpassen - Benutzerdef. Datum
19.01.2009 11:01:00
Becker
Hallo Excel&VBA Profis,
Habe hier in Forum den Code "KalenderVertikal" gefunden.

Sub KalenderVertikal()
'fügt vertikal den Kalender ein
Dim intfrage As Integer
Dim monat As Integer
Dim tag As Integer
Range("A1:AE34").ClearContents
intfrage = InputBox("Welches Jahr?")
For monat = 1 To 12 Step 1
Cells(2, monat) = Format(DateSerial(intfrage, monat, 1), "MMMM")
For tag = 1 To Day(DateSerial(intfrage, monat + 1, 0))
Cells(tag + 3, monat) = Format(DateSerial(intfrage, monat, tag), "DD.MM.YY")
Next tag
Next monat
End Sub


Wie könnte man den Code so umbauen daß er mir in bestimmten Tabellenbläter und ab bestimmten Zeilen den Kalender einträgt?
Folgende Voraussetzungen sind:
-Alle Monats Tabellen haben selben Struktur.
-Monats Tabellen sind nummerisch; 01, 02, 03 usw. (01=Januar, 02=Februar, 03=März) beschfitet worden.
-In allen Monats Tabellen (01-12) in "P1" sthet immer das gewünschtes Jahr z.B. "2009"
(formatiert unter Standard).
"P1" ist eingentlich die Verknüpfung aus meine Master Tabelle.
D.h. der input Box soll das Jahr "intfrage = InputBox("Welches Jahr?")"
aus Master Tabelle (P1) oder aus Blattname "01" wo der Verknüpfung in (P1)ist, die Jahr auslesen können.
Dann in Tabellenbaltt 01 soll das Monat Januar ab Q2:BZ2 eingetragen werden;
Beispiel Q2-01.01.09, R2-02.01.09, S2-03.01.09 etc.
Der gefunden Code macht das nur in einem Blatt.
Wer konnte mir helfen die Variablen so anzupassen dass in Monats Tabellenblätter 01-12 den Kalender in Bestimmten Bereich "Q2:BZ2" eingetragern wird?
Binfür jede Hilfe sehr dankbar.
Netten Gruß Daniel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code anpassen - Benutzerdef. Datum
19.01.2009 11:13:00
Josef
Hallo Daniel,
ohne Prüfung ob das entsprechende Blatt vorhanden ist.
Sub Kalender()
    Dim rng As Range
    Dim intfrage As Integer
    Dim monat As Integer
    Dim tag As Integer
    
    For monat = 1 To 12
        With Sheets(Format(monat, "00"))
            Set rng = .Range("Q2:AU2")
            rng.ClearContents
            intfrage = .Range("P1").Value
            For tag = 1 To Day(DateSerial(intfrage, monat + 1, 0))
                rng.Cells(1, tag) = Format(DateSerial(intfrage, monat, tag), "DD.MM.YY")
            Next
        End With
    Next
    
    Set rng = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Code anpassen - Benutzerdef. Datum
19.01.2009 12:10:00
Becker
Hallo Sepp,
vielen Dank Meister für prommte und richtige Lösung.
Habe noch eine Frage zum den Code;
-wie ereicht man den Kalender Datum in allen Monatsblätter zwei mal einzutragen?
Sorry ich habe festgestellt das meine Beschreibung nicht richtig war;
-Dann in Tabellenbaltt 01 soll das Monat Januar ab Q2:BZ2 eingetragen werden;
Beispiel Q2-01.01.09, R2-02.01.09, S2-03.01.09 etc.

Also es solle gleiche Datum zwei mal eingetragen werden, z.B.:
Q2-01.01.09, R2-01.01.09, S2-02.01.09, T2-02.01.09 usw.
Habe leider nicht sehr viel Ahnung über VBA, probiert habe ich mit:
"Dim inZaehler As Integer" und "inZaehler = inZaehler + 1" und ich kriege es nicht leider hin.
Das hier ist wirklich der beste Forum für mich, dank Euer Hilfe.
Gruß Daniel
Anzeige
AW: Code anpassen - Benutzerdef. Datum
19.01.2009 12:21:57
Josef
Hallo Daniel,
dann so.
Sub Kalender()
    Dim rng As Range
    Dim intYear As Integer, intMonth As Integer, intDay As Integer, lngCol As Long
    
    For intMonth = 1 To 12
        With Sheets(Format(intMonth, "00"))
            Set rng = .Range("Q2:BZ2")
            rng.ClearContents
            intYear = .Range("P1").Value
            For intDay = 1 To Day(DateSerial(intYear, intMonth + 1, 0))
                lngCol = 1 + ((intDay - 1) * 2)
                rng.Cells(1, lngCol).Resize(1, 2) = Format(DateSerial(intYear, intMonth, intDay), "DD.MM.YY")
            Next
        End With
    Next
    
    Set rng = Nothing
End Sub

Gruß Sepp

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige