Office: (Office 2010) Excel VBA Ferien und Feiertage aus dem Netz laden und darstellen

Helfe beim Thema Excel VBA Ferien und Feiertage aus dem Netz laden und darstellen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Mitstreiter, erst mal guten morgen und noch kann man es ja sagen, "Ich hoffe ihr seid gut reingerutscht" :-) Ich habe mal wieder ein VBA... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Andy1962, 24. Januar 2020.

  1. Andy1962 Erfahrener User

    Excel VBA Ferien und Feiertage aus dem Netz laden und darstellen


    Hallo Mitstreiter,

    erst mal guten morgen und noch kann man es ja sagen, "Ich hoffe ihr seid gut reingerutscht" :-)

    Ich habe mal wieder ein VBA Problem (und VBA wahrscheinlich auch langsam mit mir ;-))


    Ich habe eine Excel-Datei in der ich mitunter auch die Ferien und Feiertage aus dem Netz geladen und darstellen werden.

    mit dem Makro werden die jeweils gültigen Daten in das Tabellenblatt "Tabelle18" dargestellt.

    die so generierten Daten werden dann über Formeln in die Tabellenblätter "01 bis 12" in den jeweiligen Kalendertagen in den Spalten "f, h, j, l, n, p, r, t, v, x, z, ab, ad, af, ah, aj, al, an, ap, ar, at, av, ax, az, bb, bd, bf, bh, bj, bl, bn" in der Spalte 29 bei entsprechender Gültigkeit farblich markiert. Das ist die mir eingefallene Lösung, damit ich die Tabellenblätter "01 bis 12" weiterhin sperren kann. Da die Tabellenblätter einiges an Formeln besitzt, ist das auch notwendig, da sonst die Gefahr zu groß wäre, dass man versehentlich Formeln löscht.

    Meine Frage an euch
    Habt ihr eine Idee, wie ich das Macro so umschreiben kann, dass die Ferien und Feiertage in den Geschützten Tabellenblättern übergeben werden können?


    PHP:
    Option Explicit
    Sub KommentarErstellen
    (ByVal rZelle As RangeByVal sText As StringByRef rUnionRange As Range)
    Dim nComment As Comment

    If sText <> "" And rZelle 0 Then
        Set nComment 
    rZelle.AddComment(sText)
        
    nComment.Shape.DrawingObject.AutoSize True
        
        
    If rUnionRange Is Nothing Then
         Set rUnionRange 
    rZelle
        
    Else
         
    Set rUnionRange Union(rZellerUnionRange)
        
    End If
    End If
    End Sub

    Sub FeiertageErstellen
    ()
    Dim Bereich As RangeUnionRange As Range
    Dim tempBereich 
    As Range
    Dim Feiertag 
    As Date
    Dim sWelcher 
    As String
    Dim FerienTemine
    UnionFerien As RangeFerienComment As Comment
    Dim AusgabeFerien 
    As Range
    Dim A 
    As Long

    Application
    .ScreenUpdating False

    With Sheets
    ("Tabelle18")
        
    'Kalenterbereich Datum
        Set Bereich = .Range("C4:AG4,C8:AG8,C12:AG12,C16:AG16,C20:AG20,C24:AG24,C28:AG28,C32:AG32,C36:AG36,C40:AG40,C44:AG44,C48:AG48")
        '
    Kalenderbereich Ausgabe Ferienbeide müssen die selbe größe aufweisen
        Set AusgabeFerien 
    = .Range("C5:AG5,C9:AG9,C13:AG13,C17:AG17,C21:AG21,C25:AG25,C29:AG29,C33:AG33,C37:AG37,C41:AG41,C45:AG45,C49:AG49")
         
         
    'Kommentare löschen
         On Error Resume Next
          Bereich.ClearComments
          AusgabeFerien.ClearComments
         On Error GoTo 0
         '
    Bedingte Formatierung löschen
            Bereich
    .FormatConditions.Delete
            AusgabeFerien
    .FormatConditions.Delete
        
       
    If .Range("O1").Text <> "" And .Range("H1").Text <> "" Then
            FerienAbfrage 
    .Range("O1").Text, .Range("H1").TextFerienTemine
                
    If FerienTemine(11) <> "Error Abfrage" Then
                     
    For Each tempBereich In Bereich

                        
    If tempBereich <> "" Then
                            
    For 1 To UBound(FerienTemine)
                                If 
    Not IsEmpty(FerienTemine(A3)) Then
                                  
    If tempBereich.Value >= FerienTemine(A3Then
                                   
    If tempBereich.Value <= FerienTemine(A4Then
        
                                        
    If UnionFerien Is Nothing Then
                                         Set UnionFerien 
    tempBereich.Offset(10)
                                        Else
                                         
    Set UnionFerien Union(UnionFerientempBereich.Offset(10))
                                        
    End If
        
                                         
    Set FerienComment tempBereich.Offset(10).AddComment(FerienTemine(A1))
                                         
    FerienComment.Shape.DrawingObject.AutoSize True
                                   
                                   End 
    If
                                  
    End If
                                 
    End If
                            
    Next A
                         End 
    If
                     
    Next tempBereich
                End 
    If
       
    End If



        If .
    Range("O1").Text <> "" Then
        
    For Each Bereich In Bereich
         
    If Bereich <> "" Then
            Date_Feiertag Bereich
    sWelcherRange("O1").Text
            KommentarErstellen Bereich
    sWelcherUnionRange
         End 
    If
        
    Next Bereich

        
    'Farben Erstellen
        If Not UnionRange Is Nothing Then
            UnionRange.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=0"
            UnionRange.FormatConditions(1).Interior.ColorIndex = 15
        End If
      End If
      
      If .Range("H1").Text <> "" And FerienTemine(1, 1) <> "Error Abfrage" Then
            UnionFerien.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=0"
            UnionFerien.FormatConditions(1).Interior.ColorIndex = 4
      End If
      If FerienTemine(1, 1) = "Error Abfrage" Then
       MsgBox "Ferientermine '" & Range("
    O1") & " " & Range("H1") & "' konnten nicht ermittelt werden!"
      End If
    End With
    Application.ScreenUpdating = True
    End Sub
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    Andy1962, 24. Januar 2020
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    wenn es darum geht, wie man per VBA für ein Arbeitsblatt den Blattschutz einschaltet bzw. wieder aufhebt:
    Code:
    '…
    'Einschalten fürs aktive Arbeitsblatt:
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    '...
    'Ausschalten fürs aktive Arbeitsblatt:
    ActiveSheet.Unprotect
    '...
    '...
    'Einschalten fürs aktive Arbeitsblatt mit Passwort "BlaBla":
    ActiveSheet.Protect Password:="BlaBla", DrawingObjects:=True, Contents:=True, Scenarios:=True
    '...
    'Ausschalten fürs aktive Arbeitsblatt mit Passwort "BlaBla":
    ActiveSheet.Unprotect Password:="BlaBla"
    
     
    Exl121150, 24. Januar 2020
    #2
Thema:

Excel VBA Ferien und Feiertage aus dem Netz laden und darstellen

Die Seite wird geladen...
  1. Excel VBA Ferien und Feiertage aus dem Netz laden und darstellen - Similar Threads - Excel VBA Ferien

  2. Excel VBA blattschutz Problem

    in Microsoft Excel Hilfe
    Excel VBA blattschutz Problem: Hallo. Ich habe seit ein paar tagen folgendes Problem. Ich habe eine excel tabelle mit mehreren Tabellenblättern. Die Tabellenblätter sind mit einem Blattschutz versehen. Der Blattschutz wurde...
  3. Blattschutz VBA mit PW und Bedingungen

    in Microsoft Excel Hilfe
    Blattschutz VBA mit PW und Bedingungen: Hallo VBA'ler Kenne mich nicht wirklich mit VBA aus, habe es aber geschafft, eine mit PW geschützte Tabelle via Button zu entsperren und wieder zu sperren. Der Button dient dazu, die gesetzten...
  4. VBA Lösung für Excel Formel

    in Microsoft Access Hilfe
    VBA Lösung für Excel Formel: Ich habe in einer Access Datenbank u.a. einen(!) Datensatz mit 4 Feldern, die je nach der Höhe deren Inhalt in einem 2. Feld unterschiedlich bewertet werden sollen. Beispiel: Feld1 = 150, Feld2 =...
  5. VBA - Worksheet.Copy übernimmt Farben nicht

    in Microsoft Excel Hilfe
    VBA - Worksheet.Copy übernimmt Farben nicht: Hallo alle zusammen, in meinem aktuellen Makro kopiere ich eine Tabelle mit der Worksheet.Copy - Funktion. Dadurch wird das Arbeitsblatt in einer neuen Mappe geöffnet. Die Regeln und alles andere...
  6. Excel-Adressliste mit Bild

    in Microsoft Excel Hilfe
    Excel-Adressliste mit Bild: Halten Sie die Adressliste mit den Bildern der Kontakte für hilfreich? Ich habe ein Benutzerformular erstellt, um Informationen wie Name, Telefonnummer und Adresse von Personen zu speichern....
  7. Frage zu Tutorial "Excel - Auswertung von farbigen Zellen"

    in Microsoft Excel Hilfe
    Frage zu Tutorial "Excel - Auswertung von farbigen Zellen": Hallo, sorry, ich war leider zu schnell... konnte das "Problem" jetzt selber lösen. Weiß aber leider nicht, wie man einen Beitrag wieder löscht. gestern bin ich mit der 1. VBA Variante super...
  8. EXCEL Horizontale Achse schneidet - Wert mit Zellbezug mittels VBA

    in Microsoft Excel Hilfe
    EXCEL Horizontale Achse schneidet - Wert mit Zellbezug mittels VBA: Hallo zusammen, als VBA-Neuling stehe ich vor einer für mich großen Herausforderung:confused:. Für ein Dashboard muss ich verschiedene Diagramme mit spezifischen Achsenwert (Horizontale Achse...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden