Thema Datum  Von Nutzer Rating
Antwort
Rot Probleme 2 Bedingungen zu kombinieren
08.02.2012 20:55:16 Christian
Solved
09.02.2012 08:25:51 Sino
NotSolved

Ansicht des Beitrags:
Von:
Christian
Datum:
08.02.2012 20:55:16
Views:
1557
Rating: Antwort:
 Nein
Thema:
Probleme 2 Bedingungen zu kombinieren

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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Probleme 2 Bedingungen zu kombinieren
08.02.2012 20:55:16 Christian
Solved
09.02.2012 08:25:51 Sino
NotSolved