Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

jeweil. Tagesdatum in Pulldown - VBA

jeweil. Tagesdatum in Pulldown - VBA
18.09.2006 21:33:07
Wolfgang
Hallo,
in einem Pulldownmenü würde ich gerne das jeweils aktuelle Tagesdatum erscheinen lassen. Nur wenn es aktiviert wurde, soll das jeweilige Datum, an dem das Pulldownmenü in der jeweiligen Zelle aktiviert wurde und gespeichert wurde, bestehen bleiben. Anbei ein Auszug aus meinem Code zur Datumseinstellung. Das Problem ist, dass momentan immer nur das Datum erscheint, an dem das Tabellenblatt generiert wurde bzw. abgespeichert wurde. Was mache ich da falsch? Auch hier wäre ich für eine Hilfestellung aus dem Forum sehr dankbar.
Herzliche Grüße
Wolfgang
'Für Pulldown die erforderlichen Daten in W1 bis W 2 schreiben, danach in O3 bis Q 200

Sub Nur_ein_Datum()
Range("W1").Value = "Ja" & " " & Date
Range("W2").Value = "Nein" & " " & Date
Range("W1:W2").Select
Selection.Font.ColorIndex = 2
Range("O3:Q200").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$W$1:$W$2"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Auweia"
.InputMessage = ""
.ErrorMessage = _
"Hier können Sie bitte nur das Listenfeld mit den Vorgaben nutzen."
.ShowInput = True
.ShowError = True
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: jeweil. Tagesdatum in Pulldown - VBA
18.09.2006 22:41:21
Josef
Hallo Wolfgang!
Kopiere diesen Code in das Modul der entspechenden Tabelle.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strList As String
Dim rng As Range

Set rng = Range("O2:Q200")
rng.Validation.Delete

If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, rng) Is Nothing Then
  strList = "Ja " & Date & Chr(44) & "Nein " & Date
  With Target.Validation
    .Add Type:=xlValidateList, _
      AlertStyle:=xlValidAlertStop, _
      Operator:=xlBetween, _
      Formula1:=strList
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = "Auweia"
    .InputMessage = ""
    .ErrorMessage = _
      "Hier können Sie bitte nur das Listenfeld mit den Vorgaben nutzen."
    .ShowInput = True
    .ShowError = True
  End With
  'Application.SendKeys "%{DOWN}"
End If

End Sub


Gruß Sepp

Anzeige
AW: jeweil. Tagesdatum in Pulldown - VBA
19.09.2006 06:22:03
Wolfgang
Hallo Josef,
zunächst recht herzlichen Dank für Deine Rückmeldung. Nachdem die Arbeitsmappe mehrere Tabellenblätter haben kann, die per Schaltfläche generiert werden, erlaube ich mir die Frage, ob es eine Möglichkeit gibt, den Code so anzulegen, dass er für jedes Tabellenblatt, außer "Start" und "Daten" Anwendung finden kann, ohne ihn jeweils einzeln hinter ein Tabellenblatt zu kopieren? - Danke schon jetzt wieder recht herzlich für Deine Rückmeldung.
Gruß - Wolfgang
AW: jeweil. Tagesdatum in Pulldown - VBA
19.09.2006 12:44:29
Josef
Hallo Wolfgang!
Lösche den Code aus der Tabelle und kopiere diesen Code in das Modul "DieseArbeitsmappe".
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim strList As String
Dim rng As Range

If Not Sh.Name = "Start" And Not Sh.Name = "Daten" Then
  Set rng = Sh.Range("O2:Q200")
  rng.Validation.Delete
  
  If Target.Count > 1 Then Exit Sub
  
  If Not Intersect(Target, rng) Is Nothing Then
    strList = "Ja " & Date & Chr(44) & "Nein " & Date
    With Target.Validation
      .Add Type:=xlValidateList, _
        AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, _
        Formula1:=strList
      .IgnoreBlank = True
      .InCellDropdown = True
      .InputTitle = ""
      .ErrorTitle = "Auweia"
      .InputMessage = ""
      .ErrorMessage = _
        "Hier können Sie bitte nur das Listenfeld mit den Vorgaben nutzen."
      .ShowInput = True
      .ShowError = True
    End With
    'Application.SendKeys "%{DOWN}"
  End If
  Set rng = Nothing
End If
End Sub


Gruß Sepp

Anzeige
Danke Josef - klappt super !
19.09.2006 15:37:18
Wolfgang
Hallo Josef,
ich habe Deinen geänderten Code "eingebaut"; Es klappt super, soweit ich erkennen kann. Dafür recht herzlichen Dank. Sollte ich noch weitere Fragen hierzu haben, darf ich mich sicherlich noch erneut melden.
Herzliche Grüße - Wolfgang

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige