Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gültikkeit Datumsformat in meheren Sheets

Gültikkeit Datumsformat in meheren Sheets
Matze,Matthias
Hallo @All,
ich würde gerne eine VBA Lösung von euch Spezialisten in mein Vorhaben einbauen:
Ausgangspunkt ist die Zelle J8 im Sheet "SETUP" deren Inhalt die Jahreszahl enthalten soll.
Für die Sheets Januar bis Dezember möchte ich im Bereich $B$10-$B$40 eine Gültikeit vom 1. bis letzten Tag des jeweiligen Monatsblattes bekommen.
Es könnte auch eine Hilfstabelle eingebaut werden um eventuell mit Dropdowns zu arbeiten.
Bin für jeden Ansatz- oder Lösungsweg zu haben :-) .
Dank vorab ,..
LG Matze
Anzeige
AW: Gültikkeit Datumsformat in meheren Sheets
13.07.2012 22:25:13
Josef

Hallo Matthias,
ins Klassenmodul von "SETUP"
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lngIndex As Long, lngDay As Long
  Dim strTmp As String
  
  If Target.Address(0, 0) = "J8" Then
    If IsNumeric(Target) Then
      For lngIndex = 1 To 12
        strTmp = ""
        For lngDay = 1 To Day(DateSerial(Target, lngIndex + 1, 0))
          strTmp = strTmp & Format(DateSerial(Target, lngIndex, lngDay), "dd.MM.yyyy") & ","
        Next
        With Sheets(Format(DateSerial(1, lngIndex, 1), "MMMM")).Range("B10:B40").Validation
          .Delete
          .Add Type:=xlValidateList, _
            AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, _
            Formula1:=Left(strTmp, Len(strTmp) - 1)
        End With
      Next
    End If
  End If
  
End Sub



Die Listen werden bei einer Eingabe in J8 (SETUP) erstellt.
« Gruß Sepp »

Anzeige
@Josef - - bei Jahreswechsel will er nicht
13.07.2012 22:40:46
Matze,Matthias
Hallo Josef,
besten und herzlichen Dank für die Codezeilen.
...leider ist bei Jahreswechesl noch ein Wurm drin.
With Sheets(Format(DateSerial(1, lngIndex, 1), "MMMM")).Range("B10:B40").Validation
in dieser Zeile bleibt er stehen.
Matze
AW: @Josef - - bei Jahreswechsel will er nicht
13.07.2012 22:46:10
Josef

Hallo Matthias,
"in dieser Zeile bleibt er stehen."
Das ist keine gute Fehlerbeschreibung, wie lautet die Fehlermeldung?
Wahrscheinlich heißen deine Blätter dann nicht "Januar", "Februar", ...

« Gruß Sepp »

Anzeige
AW: @Josef - - bei Jahreswechsel will er nicht
13.07.2012 23:02:44
Matze,Matthias
Hallo josef,
laufzeitfehler 9 : Index ausserhalb des Bereichs:
Die Blätter sind Januar, Februar; Maerz,.... schon OK so.
lngindex hat den Wert 3
kann es sein das
For lngIndex = 1 To 12 'für die Sheets ist ?
For lngIndex = 2 To sheets.count ' wäre dies nicht besser da SETUP das erste Blatt ist?
Leider kann ich keine Musterdatei hochladen da will er die ExcelEndung nicht
Matze
Anzeige
AW: @Josef - - bei Jahreswechsel will er nicht
13.07.2012 23:17:28
Josef

Hallo Matthias,
März und Maerz ist aber wohl ein Unterschied!
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lngIndex As Long, lngDay As Long
  Dim strTmp As String
  
  If Target.Address(0, 0) = "J8" Then
    If IsNumeric(Target) Then
      For lngIndex = 1 To 12
        strTmp = ""
        For lngDay = 1 To Day(DateSerial(Target, lngIndex + 1, 0))
          strTmp = strTmp & Format(DateSerial(Target, lngIndex, lngDay), "dd.MM.yyyy") & ","
        Next
        With Sheets(Replace(Format(DateSerial(1, lngIndex, 1), "MMMM"), "ä", "ae")).Range("B10:B40").Validation
          .Delete
          .Add Type:=xlValidateList, _
            AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, _
            Formula1:=Left(strTmp, Len(strTmp) - 1)
        End With
      Next
    End If
  End If
  
End Sub


Und 1 to 12 stimmt schon, ist nicht der Tabellenindex sondern der Index für die Monte 1 bis 12.

« Gruß Sepp »

Anzeige
Asche auf mein Haupt - Lol..
13.07.2012 23:24:04
Matze,Matthias
Hallo Josef,
boah wie blind kann man sein,...Ok das war der Verursacher.
Klasse und besten Dank
Lg Matze
AW: @Josef - - bei Jahreswechsel will er nicht
13.07.2012 23:06:11
Matze,Matthias
noch etwas :
Nur im Blatt Januar und Februar sind die Gültigkeiten aktiv, ab Maerz nix.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige