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

Feiertage in Excelkalender per VBA eintragen

Feiertage in Excelkalender per VBA eintragen
23.10.2018 09:39:52
Adam23
Hallo,
ich bin auf der Suche nach einer Möglichkeit, Feiertage in einem Kalender per VBA eintragen zu lassen.
Ich bin bereits auf ein Beitrag in dem Forum Archiv gestossen:
https://www.herber.de/forum/archiv/1128to1132/1130235_Feiertage_in_Kalender_eintragen_per_VBA.html
Dort wird auch gut auf das Problem eingegangen. Leider werden die Feiertage nur in der Spalte B ausgegeben.
Mein Kalender sieht folgendermaßen aus:
  • Spalte A: Datumbereich für Januar

  • Spalte B: Freies Feld für einen Eintrag bezogen auf das Datum aus Spalte A
    (auch für die Feiertage, die automatisch per VBA eingetragen werden sollen)

  • Spalte C: Datumbereich für Februar

  • Spalte D: Freies Feld für einen Eintrag bezogen auf das Datum aus Spalte C
    (auch für die Feiertage, die automatisch per VBA eingetragen werden sollen

  • .. usw. bis Dezember.
    Kann man dort die Funktion soweit erweitern/abändern, dass die jeweilige Ausgabe
    in der jeweiligen richtigen Spalte ausgegeben wird?
    Im Anhang ist die Datei aus dem Online-Archiv.
    https://www.herber.de/bbs/user/124822.xls
    Gruß
    Adam

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Feiertage in Excelkalender per VBA eintragen
    23.10.2018 13:38:32
    Adam23
    Hallo Community,
    hat denn keiner von den VBA Experten für mich eine Antwort?
    Ich akzeptiere auch ein "NEIN", wenn es halt nicht umsetzbar ist.
    ps. Ich möchte hiermit wirklich jetzt nicht drängeln oder hetzen.
    Lg
    Adam
    AW: Feiertage in Excelkalender per VBA eintragen
    23.10.2018 13:47:34
    Rob
    Hi Adam, wie lautet der Code für den Eintrag der Feiertage in Spalte B? Schön dass Du den Link zu dem Thread postest aber ich glaube niemand hat Lust die ganze Korrespondenz nachzuvollziehen.
    Außerdem; was ist bei Dir die "richtige Spalte" in der die jeweilige Ausgabe erfolgen soll?
    AW: Feiertage in Excelkalender per VBA eintragen
    23.10.2018 14:02:14
    Rob
    Ich würde an Deiner Stelle z.B. über die Excel-Funktion Daten/Externe Daten/Aus dem Web einen Kalender von z.B. www.kalender-uhrzeit.de importieren und dann mit Sverweis auf Deine Tabelle verlinken:
    Datum Wochentag Feiertag KW
    01.01.2018 Montag Neujahr KW 1
    06.01.2018 Samstag Heilige Drei Könige KW 1
    30.03.2018 Freitag Karfreitag KW 13
    02.04.2018 Montag Ostermontag KW 14
    01.05.2018 Dienstag Tag der Arbeit KW 18
    10.05.2018 Donnerstag Christi Himmelfahrt KW 19
    21.05.2018 Montag Pfingstmontag KW 21
    31.05.2018 Donnerstag Fronleichnam KW 22
    15.08.2018 Mittwoch Mariä Himmelfahrt KW 33
    03.10.2018 Mittwoch Tag der Deutschen Einheit KW 40
    31.10.2018 Mittwoch Reformationstag KW 44
    01.11.2018 Donnerstag Allerheiligen KW 44
    21.11.2018 Mittwoch Buß- und Bettag KW 47
    25.12. - 26.12.2018 Dienstag - Mittwoch Weihnachten KW 52
    Anzeige
    AW: Feiertage in Excelkalender per VBA eintragen
    23.10.2018 15:18:01
    Adam23
    Hallo Rob,
    Danke für deine Antwort.
    Ich möchte nicht in den Eingabefeldern (Spalte C,E,G, usw.) Formeln benutzen um Feiertage eintragen zu lassen sondern dies per VBA einfügen.
    Anbei meine Beispieldatei:
    https://www.herber.de/bbs/user/124837.xlsx
    In der Datei aus dem Forum Archiv: https://www.herber.de/bbs/user/124822.xls
    sind folgende Makros aktiv:
    Makro in Tabelle 1
    Sub n()
    'MsgBox WorksheetFunction.VLookup(ActiveCell.Value, Range("AC5:AD18"), 2, 0)
    MsgBox WorksheetFunction.VLookup(Cells(Target.Row, 1), Range("AC5:AD18"), 2, 0)
    End Sub
    Makro in Modul1
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
    If WorksheetFunction.CountIf(Range("AC5:AC18"), Cells(Target.Row, 1))  1 Then Exit Sub
    If Target.Value = "" Then Cells(Target.Row, Target.Column) = WorksheetFunction.VLookup(Cells(_
    Target.Row, 1), Range("AC5:AD18"), 2, 0)
    End If
    End Sub
    
    So wie ich das verstehe, werden die Feiertagseingaben in AC5 bis AD18 angegeben und die Ausgabe wird nur in Spalte B neben dem Datum ausgegeben.
    Für meinen Fall müssten die Angaben jeweils rechts neben dem Datum in verschiedenen Spalten ausgegeben werden.
    Kann man das Makro dahingehend verändern?
    Gruß
    Adam
    Anzeige
    AW: Feiertage in Excelkalender per VBA eintragen
    23.10.2018 21:26:42
    Rob
    Das geht schon aber sind paar Zeilen Code. Du müsstest die If-Schleife um die jeweiligen Spalten C, E, G, I, etc ergänzen:
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
    
    Außerdem ist das Suchkriterium des Sverweis auf Spalte 1 reduziert - müsste man auf die weiteren Spalten ergänzen:
    If Target.Value = "" Then Cells(Target.Row, Target.Column) = WorksheetFunction.VLookup(Cells(_
    Target.Row, 1), Range("AC5:AD18"), 2, 0)
    
    Also bestimmt machbar aber ist schon etwas Gehirnschmalz und Programmierung erforderlich. Ich frage mich auch, ob Du unbedingt einen Worksheet-Event für Deine Zwecke benötigst?!
    Anzeige

    306 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige