Nur Montage anzeigen/auswählbar
#1
Hallo zusammen,

ich erstelle mir und meiner Auszubildenden ein kleines Hilfe Tool.
Ich habe eine UserForm in Excel. Dort möchte ich gern einen DTPicker einfügen, bei dem man aber nur Montage auswählen kann.

Ziel ist es, dass in der Excel Tabelle neben dem Montag das ausgewählte Datum steht.
Ich habe die Tabelle so programmiert, dass er die einzelnen Tage mit dem Datum versieht.

Beispiel:
A1=Montag   B1= "Wert aus DTPicker"
A2=Dienstag B2= "B1+1"
A3=Mittwoch B3= "B2+1"
usw.

Nun soll über den DTPicker UserForm ein Montag ausgewählt werden und die folgenden Zellen aktualisieren sich dann automatisch.
Wenn ich den DTPicker aber normal lasse, kann es passieren, das versehentlich ein Dienstag oder Mittwoch ausgewählt wird. Dann haut die Aktualisierung in B2, B3 usw. nicht mehr hin.

Ich habe es auch schon über eine Liste und Auswahlfeld versucht. Dann habe ich aber die ganzen bereits vergangen Montage in der Liste und muss ewig scrollen.

Ich hoffe ich habe es halbwegs verständlich ausgedrückt. Könnt ihr mir helfen?
Top
#2
Moin!
Nimm statt des DT-Pickers (der ohnehin nicht mehr im Standardumfang ist) lieber eine ComboBox.

Diese füllst Du mit allen Montagen des Jahres so:
Code:
ComboBox1.List = _
 [index(text(date(year(today()),1,4)-weekday(date(year(today()),1,4),2)+1+7*(row(1:53)-1),"ddd dd.mm.yyyy"),)]

Dieses und sehr viel anderes findest Du hier:
http://www.snb-vba.eu/VBA_Fill_combobox_listbox_en.html

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Matt87
Top
#3
Zitat:Ich habe es auch schon über eine Liste und Auswahlfeld versucht. Dann habe ich aber die ganzen bereits vergangen Montage in der Liste und muss ewig scrollen.
Dann wähle im Userform_Initialize doch einfach den nächsten Montag aus:
Code:
ComboBox1.ListIndex = WorksheetFunction.WeekNum(Date, 21)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Matt87
Top
#4
Hi,

vielleicht hilft Dir auch das?


Code:
Private Sub DTPicker1_Change()
   
   If Weekday(DTPicker1.Value, vbMonday) <> 1 Then
       MsgBox "Auswahl unzulässig. Bitte wählen sie einen Montag aus."
       DTPicker1.Value = Date
   Else
       Range("B1") = DTPicker1.Value
   End If

End Sub


Gruß
Ich
[-] Folgende(r) 1 Nutzer sagt Danke an IchBinIch für diesen Beitrag:
  • Matt87
Top
#5
Hallo,

warum eigentlich nicht mit Datengültigkeit die Eingabewerte beschränken???

[html]
Arbeitsblatt mit dem Namen 'Tabelle4'
 B
114.11.2016

ZelleGültigkeitstypOperatorWert1Wert2
B1Benutzerdefiniert =REST(B1;7)=2 
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
[/html]

oder die Namen dynamisch in eine Liste schreiben, ab der aktuellen Woche:

[html]
Arbeitsblatt mit dem Namen 'Tabelle4'
 BCDEF
114.11.2016   14.11.2016
2    21.11.2016
3    28.11.2016
4    05.12.2016
5    12.12.2016
6    19.12.2016
7    26.12.2016
8    02.01.2017
9    09.01.2017
10    16.01.2017

NameBezug
Montage=Tabelle4!$F$1:$F$10

ZelleFormel
F1=HEUTE()-REST(HEUTE();7)+2+(ZEILE(A1)-1)*7

ZelleGültigkeitstypOperatorWert1Wert2
B1Liste =Montage 
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
[/html]
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Matt87
Top
#6
Hallo,

vielen Dank. Ich habe die Variante von IchbinIch gewählt. Das ist genau das, was ich gesucht habe.
Vielen Dank euch allen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste