Ich komme bei diesem Fall nicht weiter und bitte Euch daher wieder um Hilfe!
In einer UserForm wird der Urlaub verplant. Die Arbeitsmappe besteht erst mal aus 3 Tabellen für eine Hilfstabelle mit dem Namen "Daten" und weiteren drei Tabellen für die ersten 2 Kalenderwochen.
Über die Combobox1 suche ich einen Mitarbeiter aus und über die Textbox 1 gebe ich das Datum ein.
In Textbox2 wird die Kalenderwoche ausgewiesen. Gleiches gilt für Textbox3 und TextBox4.
In TextBox5 wird die Anzahl der Urlaubtage angegeben. Als Beispiel sollte erst mal 02.01.2012 bis 05.01.2012 dienen, damit man einen einfachen Anfang hat, auf den man aufbauen kann.
Nachdem ich z. B. den Mitarbeiter "Mustermann" aus der ComboBox ausgesucht habe und die Textbox2 als Kalenderwoche 1 ausgibt, soll nun automatisch der Eintrag aus Textbox5 in der Tabelle "KW01" beim Mitarbeiter "Mustermann" aus ComboBox1 in Zelle E23 eingetragen werden. Wie so eine Art "SVERWEIS".
Gibt die TextBox2 z. B. KW 2 aus, so soll automatisch der Eintrag in Tabelle KW02 erfolgen, usw.
Mein Code funktioniert leider hier nicht. Ich habe ihn aus einer anderen Anweisung kopiert und abgeändert, aber leider ohne Erfolg.
Private Sub cmderfassen_Click()
Dim frm As UserForm
Dim index As Long
Dim Name As String
Dim Werte As Double
Dim Zelle As Range
Set frm = UserForm1
index = frm.ComboBox1.ListIndex
If index = -1 Then
MsgBox "Es wurde kein Mitarbeitername gewählt"
Exit Sub
End If
Name = frm.ComboBox1.List(index)
With frm.TextBox5
If IsNumeric(.Text) Then
Werte = CDbl(frm.TextBox5.Text)
Else
MsgBox "Für Werte dürfen nur Zahlen eingegeben werden!"
Exit Sub
End If
End With
Sheets("KW" & Format(TextBox2, "00")).Select
With Sheets("KW" & Format(TextBox2, "00")).Columns("B:B")
Set Zelle = .Find(What:=Name, After:=.Range("B17"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)
End With
If Zelle Is Nothing Then
MsgBox "Es konnte keine Mitarbeiter gefunden werden!"
Else
Set Zelle = Zelle.Offset(0, 3)
End If
End Sub
Folgende Anweisung funktioniert:
Sheets("KW" & Format(TextBox2, "00")).Select
lz = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row + 1
Cells(lz, "B") = ComboBox1
Aber irrsinnigerweise stehen in jeder Tabelle schon die ganzen Mitarbeiter, auch wenn sie in dieser KW
keinen Urlaub haben. Fragt mich nicht warum. Ich hoffe, ihr könnt mir helfen!
Zum besseren Verständnis noch der Link zum Download
https://www.herber.de/bbs/user/80457.zip