Supportnet / Forum / Tabellenkalkulation
Mit Textfeldeintrag in Userform Tabellenblatt aktivieren
Frage
Hallo Leute!
Ich brauche mal wieder eure Hilfe. Noch immer bin ich beim Entwurf einer Excel-TAbelle zu Fortbildungszwecken. Nunmehr tut sich folgendes Problem auf: Ich möchte eine Userform welche die Rahmendaten der monatlichen Fortbildung enthält(konkretes Datum, Ausbildername, Inhalt der Fortbildung). Diese Daten müssen dann irgendwie ins jeweilige Tabellenblatt des Monats. Z.B. im Januar gebe ich in meine Userform ein Datum im Januar ein, und möchte dann automatisch die Daten ins TAbellenblatt "Jan" eingetragen haben. Dies ist mein aktuelles Problem. Die nächsten bahnen sich schon an - aber seit ich das Supportnet kenne schaue ich wieder etwas zuversichtlicher in die Zukunft!
Gruß Nore
Antwort 1 von coros
Hi Nore,
da ich Deinen Aufbau Deiner UserForm nicht kenne, hier mal nur ein Beispiel.
Bei diesem Beispiel wird die Datumseingabe "tt.mm" in der TextBox1 ausgewertet. Wenn dort z.B. die Eingabe 30.01.2006 ist, dann wird in die Variable "Blattname" das Wort "Jan" eingetragen. Mit dieser Variablen kannst Du dann sagen Sheets(Blattname).... und es wird das Blatt mit dem Namen "Jan" angesprochen. Für die anderen Monate musst Du dann halt eine ähnliche Auswertung machen.
Ich hoffe, Du kannst damit etwas anfangen. Ansonsten melde Dich wieder bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
da ich Deinen Aufbau Deiner UserForm nicht kenne, hier mal nur ein Beispiel.
If Mid(TextBox1, 4, 2) = "01" Then Blattname = "Jan"Bei diesem Beispiel wird die Datumseingabe "tt.mm" in der TextBox1 ausgewertet. Wenn dort z.B. die Eingabe 30.01.2006 ist, dann wird in die Variable "Blattname" das Wort "Jan" eingetragen. Mit dieser Variablen kannst Du dann sagen Sheets(Blattname).... und es wird das Blatt mit dem Namen "Jan" angesprochen. Für die anderen Monate musst Du dann halt eine ähnliche Auswertung machen.
Ich hoffe, Du kannst damit etwas anfangen. Ansonsten melde Dich wieder bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Noreia
Hallo coros!
Also meine Userform besteht aus Textfeld1 = Datum, Textfeld2 = Name des Ausbilders und dann 6 Kontrollkästchen für entsprechende Fortbildungsinhalte. Ich habe dann noch 12 Tabellenblätter für den jeweiligen Monat.
Meine Eintragung bisher:
Private Sub CommandButton1_Click()
Range("B6") = TextBox1
Range("B8") = TextBox2
If CheckBox1.Enabled Then
Range("B12") = "x"
End If
If CheckBox2.Enabled Then
Range("B13") = "x"
End If
If CheckBox3.Enabled Then
Range("B14") = "x"
End If
If CheckBox4.Enabled Then
Range("B15") = "x"
End If
If CheckBox5.Enabled Then
Range("B16") = "x"
End If
If CheckBox6.Enabled Then
Range("B17") = "x"
End If
End Sub
Das ist alles was mein anfängerwissen hergibt. Nun möchte ich eben automatisiert die entsprechende monatstabelle aktivieren, wenn ich das aktuelle datum eingebe.
Gruß Nore
PS: Am schönsten wäre es, wenn die Eintragungen immer in der entsprechend letzten freien zelle der zeile gemacht werden würden, so dass mehrere Fortbildungen in einem Monat möglich wären. Bislang ist es ja starr festgelegt in welche Zelle die Eintragungen übernommen werden. Wenn diese beschrieben sind müsste der nächste eintrag in die nächste zelle rechts daneben. Ich hoffe ich konnte mein problem erklären - bin dir jedenfalls schon jetzt dankbar für die hilfe.
Also meine Userform besteht aus Textfeld1 = Datum, Textfeld2 = Name des Ausbilders und dann 6 Kontrollkästchen für entsprechende Fortbildungsinhalte. Ich habe dann noch 12 Tabellenblätter für den jeweiligen Monat.
Meine Eintragung bisher:
Private Sub CommandButton1_Click()
Range("B6") = TextBox1
Range("B8") = TextBox2
If CheckBox1.Enabled Then
Range("B12") = "x"
End If
If CheckBox2.Enabled Then
Range("B13") = "x"
End If
If CheckBox3.Enabled Then
Range("B14") = "x"
End If
If CheckBox4.Enabled Then
Range("B15") = "x"
End If
If CheckBox5.Enabled Then
Range("B16") = "x"
End If
If CheckBox6.Enabled Then
Range("B17") = "x"
End If
End Sub
Das ist alles was mein anfängerwissen hergibt. Nun möchte ich eben automatisiert die entsprechende monatstabelle aktivieren, wenn ich das aktuelle datum eingebe.
Gruß Nore
PS: Am schönsten wäre es, wenn die Eintragungen immer in der entsprechend letzten freien zelle der zeile gemacht werden würden, so dass mehrere Fortbildungen in einem Monat möglich wären. Bislang ist es ja starr festgelegt in welche Zelle die Eintragungen übernommen werden. Wenn diese beschrieben sind müsste der nächste eintrag in die nächste zelle rechts daneben. Ich hoffe ich konnte mein problem erklären - bin dir jedenfalls schon jetzt dankbar für die hilfe.
Antwort 3 von coros
Hi Nore,
nachfolgend erst mal den Code, der Dir die Daten in das Blatt mit dem entsprechenden Monatsnamen kopieren sollten.
Die Blattnamen musst Du eventuell noch anpassen. Dazu den Text in den Zeilen
Blattname = ""
der in den Anführungszeichen ("") steht je nach Monatszahl ändern.
Den Zusatz, den Du haben möchtest, verstehe ich noch nicht so ganz. Es sollen die Kreuze usw. in die Zeile, wie jetzt schon vorgegeben nur immer eine Spalte weiter nach rechts. Ist das richtig? Oder Ändern sich auch die Zeilennummern?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgend erst mal den Code, der Dir die Daten in das Blatt mit dem entsprechenden Monatsnamen kopieren sollten.
Private Sub CommandButton1_Click()
Dim Blattname As String
Select Case Mid(TextBox1, 4, 2)
Case "01"
Blattname = "Jan"
Case "02"
Blattname = "Feb"
Case "03"
Blattname = "Mrz"
Case "04"
Blattname = "Apr"
Case "05"
Blattname = "Mai"
Case "06"
Blattname = "Jun"
Case "07"
Blattname = "Jul"
Case "08"
Blattname = "Aug"
Case "09"
Blattname = "Sep"
Case "10"
Blattname = "Okt"
Case "11"
Blattname = "Nov"
Case "12"
Blattname = "Dez"
End Select
Sheets(Blattname).Range("B6") = TextBox1
Sheets(Blattname).Range("B8") = TextBox2
If CheckBox1.Enabled Then
Sheets(Blattname).Range("B12") = "x"
End If
If CheckBox2.Enabled Then
Sheets(Blattname).Range("B13") = "x"
End If
If CheckBox3.Enabled Then
Sheets(Blattname).Range("B14") = "x"
End If
If CheckBox4.Enabled Then
Sheets(Blattname).Range("B15") = "x"
End If
If CheckBox5.Enabled Then
Sheets(Blattname).Range("B16") = "x"
End If
If CheckBox6.Enabled Then
Sheets(Blattname).Range("B17") = "x"
End If
End SubDie Blattnamen musst Du eventuell noch anpassen. Dazu den Text in den Zeilen
Blattname = ""
der in den Anführungszeichen ("") steht je nach Monatszahl ändern.
Den Zusatz, den Du haben möchtest, verstehe ich noch nicht so ganz. Es sollen die Kreuze usw. in die Zeile, wie jetzt schon vorgegeben nur immer eine Spalte weiter nach rechts. Ist das richtig? Oder Ändern sich auch die Zeilennummern?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von Noreia
Rehi coros!
Du bist ja schneller als die polizei erlaubt..;-))! Kann ich hier irgendwie nen Screenshoot reinstellen?? So würde mein Problem wahrscheinlich deutlicher werden.
So wie mein code derzeit aussieht, werden die kreuze immer in eine fest definierte Zelle geschrieben. Gesetzt den FAll ich mache am 12.01. Fortbildung und am 23.01. Fortbildung, würden die Kreuze logischerweise überschrieben. Ich hätte es aber gern so, dass in spalte B unter dem DAtum 12.01 die entsprechenden Kreuze erscheinen und dann( weil Spalte B beschrieben ist) die spalte C in den entsprechenden Zeilen beschrieben wird für den 23.01.
Ich kann dir mein ganzes Tabellenwirrwarr gerne zur verdeutlichung zumailen??
Wenn es etwas gibt wie ich meinen Dank zeigen kann - sag bescheid, bin superfroh das netz hier gefunden zu haben.
Gruß Nore
Du bist ja schneller als die polizei erlaubt..;-))! Kann ich hier irgendwie nen Screenshoot reinstellen?? So würde mein Problem wahrscheinlich deutlicher werden.
So wie mein code derzeit aussieht, werden die kreuze immer in eine fest definierte Zelle geschrieben. Gesetzt den FAll ich mache am 12.01. Fortbildung und am 23.01. Fortbildung, würden die Kreuze logischerweise überschrieben. Ich hätte es aber gern so, dass in spalte B unter dem DAtum 12.01 die entsprechenden Kreuze erscheinen und dann( weil Spalte B beschrieben ist) die spalte C in den entsprechenden Zeilen beschrieben wird für den 23.01.
Ich kann dir mein ganzes Tabellenwirrwarr gerne zur verdeutlichung zumailen??
Wenn es etwas gibt wie ich meinen Dank zeigen kann - sag bescheid, bin superfroh das netz hier gefunden zu haben.
Gruß Nore
Antwort 5 von coros
Hi Nore,
einen Screenshot kannst Du hier nicht reinstellen. Aber Du kannst ihn mir per Mail oder wenn es geht, die gesamte Datei schicken. Meine E-Mailadresse findest Du auf meiner HP unter Anderem im Impressum. Binde in der Betreffzeile irgendwie das Wort "Supportnet" und den Namen (Nickname), unter dem Du hier gepostet hast mit ein, da ich alle Mails deren Absender ich nicht kenne, ungelesen lösche.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
einen Screenshot kannst Du hier nicht reinstellen. Aber Du kannst ihn mir per Mail oder wenn es geht, die gesamte Datei schicken. Meine E-Mailadresse findest Du auf meiner HP unter Anderem im Impressum. Binde in der Betreffzeile irgendwie das Wort "Supportnet" und den Namen (Nickname), unter dem Du hier gepostet hast mit ein, da ich alle Mails deren Absender ich nicht kenne, ungelesen lösche.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

