Guten Tag,
ich bin derzeit dabei mir einen Laufplan mit einigen Extras zu erstellen. Da ich immer offen für neues bin, habe ich mich mal an Excel in Kombination mit VBA gewagt.
In dem Laufplan trage ich immer meine gelaufenen Kilometer inklusive Zeit ein. Das realisiere ich über eine UserForm. Dieser Wert wird dann auf dem Tabellenblatt "Laufplan" eingetragen.
Um mein Anliegen besser erklären zu können ein kleiner Screenshot meiner Eingabemaske.
http://s14.directupload.net/file/d/2794/c5nj26fm_jpg.htm
Jetzt habe ich noch die Felder "Wettkampf?" und eine Combobox hinzugefügt. Wenn meine gelaufene Zeit, gleichzeitig ein Wettkampf ist soll er diesen Wert neben dem Eintrag in Tabelle "Laufplan" ebenfalls auf ein Tabellenblatt "Ergebnisse" eintragen.
Dazu soll man ein Häckchen bei "Wettkampf?" machen und die Wettkampfart dann auswählen.
Ich habe mich schonmal in einer separaten ExcelDatei damit auseinander gesetzt. Also Über Userform eintragen und per Commandbutton in die Tabelle übertragen:
Private Sub Eintragen_Click()
Dim rngSuchbegriff As Range
Dim erste_freie_Zeile As Integer
Dim datDatum As Date
'Wenn in Textbox1 kein Datum steht, Prozedur verlassen
If IsDate(UserForm1.TextBox1.Text) = False Then Exit Sub
datDatum = CDate(UserForm1.TextBox1.Text)
'Datum aus Textbox1 in Spalte A (1) suchen
Set rngSuchbegriff = Worksheets("Laufplan").Columns(1).Find(datDatum, lookat:=xlWhole)
If rngSuchbegriff Is Nothing Then
'Wenn Datum nicht gefunden wurde
MsgBox "Datum wurde nicht gefunden!"
Else
'In Spalte B den Wert aus Textbox2 einlesen
Sheets("Laufplan").Select
Cells(rngSuchbegriff.Row, 3).Value = UserForm1.TextBox2.Text
'In Spalte C den Wert aus Textbox3 einlesen
Cells(rngSuchbegriff.Row, 4).Value = UserForm1.TextBox3.Text
If ComboBox1.Value = True And ComboBox1.Value = "5" Then
erste_freie_Zeile = Sheets("Ergebnisse").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 2) = UserForm1.TextBox2.Text
Else
If ComboBox1.Value = True And ComboBox1.Value = "10" Then
erste_freie_Zeile = Sheets("Ergebnisse").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 3) = UserForm1.TextBox2.Text
Else
If ComboBox1.Value = True And ComboBox1.Value = "21" Then
erste_freie_Zeile = Sheets("Ergebnisse").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 4) = UserForm1.TextBox2.Text
Else
If ComboBox1.Value = True And ComboBox1.Value = "26" Then
erste_freie_Zeile = Sheets("Ergebnisse").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
Sheets("Ergebnisse").Cells(erste_freie_Zeile, 5) = UserForm1.TextBox2.Text
End If
End If
End If
End If
End If
Unload Me
End Sub
Wie man sehen kann soll er diesen Wert in die erste Freie Zeile eintragen, danach muss er wissen in welche Spalte er gehen soll, was durch die Wettkampfart entschieden wird. Leider geht er garnicht auf die ComboBox1 ein, der Wert wird immer eingetragen, egal ob ComboBox1 True/false
Noch ein kleines Problem war, das ich es nur mit Zahlen in der ComboBox realisieren konnte, auf einen Text hat er nicht reagiert. Eigentich soll in zur Auswahl stehen "5km,10,Halbmarathon oder Triathlon"
Aber darüber habe ich erstmal weg gesehen und diese versucht in meine originale Datei einzuplegen
Es kommt keine Fehlermeldung aber er reagiert auf diese "Wenn/Dann" bedingung garnicht. Ich bin da echt ratlos wie ich diese da einpflegen soll
Einbinden will ich sie hier:
Private Sub Eintragen_Click()
Dim rngSuchbegriff As Range
Dim erste_freie_Zeile As Integer
Dim datDatum As Date
'Wenn in Textbox1 kein Datum steht, Prozedur verlassen
If IsDate(UserForm1.TextBox1.Text) = False Then Exit Sub
datDatum = CDate(UserForm1.TextBox1.Text)
'Datum aus Textbox1 in Spalte A (1) suchen
Set rngSuchbegriff = Worksheets("Laufplan").Columns(1).Find(datDatum, lookat:=xlWhole)
If rngSuchbegriff Is Nothing Then
'Wenn Datum nicht gefunden wurde
MsgBox "Datum wurde nicht gefunden!"
Else
'In Spalte B den Wert aus Textbox2 einlesen
Sheets("Laufplan").Select
Cells(rngSuchbegriff.Row, 3).Value = UserForm1.TextBox2.Text
'In Spalte C den Wert aus Textbox3 einlesen
Cells(rngSuchbegriff.Row, 4).Value = UserForm1.TextBox3.Text
End If
Unload Me
End Sub
Hier nochmal ein paar Bilder zu Verdeutlichung:
So sieht die Tabelle "Laufplan" aus
http://s1.directupload.net/file/d/2794/cmrjpj2w_jpg.htm
und so die Tabelle "Ergebnisse"
http://s7.directupload.net/file/d/2794/j8zzne3a_jpg.htm
Ich hoffe ich konnte mein Anliegen halbwegs gut dar legen und freue mich über jede Hilfe.
Danke schonmal im voraus.
Gruß
Christian
|