Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten 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
Antworten 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
Antworten 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
Antworten 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
Antworten 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.
Antworten Top


Gehe zu:


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