Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Daten in jeweiligen Monat übertragen
14.12.2017 16:14:15
Kevin
Moin Moin! ;-)
Momentan schreibe ich eine kleine Excel-Datei in der über einen Click auf einen CommandButton eine Userform geöffnet wird. Dort können dann Einsatzdaten eingegeben werden und werden bei "Eingabe speichern" in ein Tabellenblatt eingefügt.
So weit, so gut: Es funktioniert. Allerdings werden die eingegebenen Daten bisher nur in ein bestimmtes Tabellenblatt eingefügt. Ziel ist es aber, ohne weitere Eingabe die Daten in das Tabellenblatt des jeweiligen Monats einzufügen - unten finden sich die 12 Monate als Tabellenblätter, diese wurden von einem blanko per Klick kopiert.
Die Daten sollen halt Monat für Monat seperat geführt werden. Zudem sollen die Daten dann auf einer "Statistik-Seite", einem extra Tabellenblatt, ausgewertet bzw. addiert werden. Ist das irgendwie möglich? Muss ich das in die einzelnen Programmierungen der Tabellenblätter legen, oder kann ich es mit dem Textfeld TextBox1 = Date bzw. der ComboBox1 = Month (now) verknüpfen`?
Ich komme einfach nicht dahinter und wäre dankbar für jede Hilfe ;-)
Lieben Gruß

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in jeweiligen Monat übertragen
14.12.2017 16:31:04
Hartmut_M
Hallo Kevin, so richtig verstehe ich die Fragestellung nicht.
Du hast 12 Tabellenblätter, für jeden Monat eines?
Aus dem Formular sollen die Daten, abhängig von einem Datum im Formular auf das Tabellenblatt des Monats übertragen werden?
Dann frage den Monat des Datumfeldes ab und ordne das Ergebnis dem entsprechenden Tabellenblatt zu.
Code könnte so aussehen:
dim varDatum as date, varMonat as byte
varDatum = TextBox 1
varMonat = Month(varDatum)
if varMonat = 1 then
Sheets("Januar") ...
end if
if varMonat = 2 then
Sheets("Februar") ...
end if
Gruß Hartmut
Anzeige
AW: Daten in jeweiligen Monat übertragen
14.12.2017 16:55:24
Kevin
Hallo Hartmut,
ganz genau. In der Leiste der Tabellenblätter gibt es die Reiter "Startseite", "Statistik", "Blanko" und folgend die 12 Monate. Auf der Startseite befinden sich CommandButton's wie "Neuer Einsatz", "Statistik einsehen" und "Speichern & schließen". Darüber soll dann alles bedient werden. Beim Klick auf "Neuer Einsatz" öffnet sich dann die UserForm mit den auszufüllenden Feldern, dort gibt es versch. Arten wie Combobox, ListBox etc. --- nur zum Verständnis :-P
Nun müsste ich doch in der UserForm die TextBox für den Monat einpflegen, bsp TextBox1 = month(now()) und den Wert dieser TextBox1 (bsp "Dezember") durch die u.g. Funktion übernehmen können.
'habe es etwas umgemodelt, könnte das so funktionieren?
dim varDatum as date, varMonat as byte
varMonat = TextBox1
if varMonat = Dezember then
Sheets("Dezember")
'und so weiter, für alle anderen Monate..
Es ist ja sicher variabel ob ich nun die Monate in Zahlen oder in Worten nehme, richtig? Muss ich ja oben nur entsprechend anpassen..
Anzeige
AW: Daten in jeweiligen Monat übertragen
14.12.2017 17:04:52
Werner
Hallo Kevin,
nimm doch für die Auswahl der Monatsblätter auf deiner Userform eine Listbox die du beim Start der Userform mit den Monatsnamen Januar bis Dezember befüllst.
Ansonsten kleiner Tip, Beispielmappe hochladen.
Gruß Werner
AW: Daten in jeweiligen Monat übertragen
14.12.2017 17:07:42
Kevin
Hallo Werner!
Ich würde die Datei gleich einfach mal hochladen, vielleicht ist es dann ein wenig einfacher. Ich habe schon eine ListBox mit den Monaten in der UF, möchte allerdings, dass man dort nicht extra noch etwas auswählen muss.
Gruß
AW: Daten in jeweiligen Monat übertragen
14.12.2017 17:13:58
Hartmut_M
Der Ausdruck "Month" gibt die Monatszahl zurück und nicht den Monatsnamen.
Es müsste also heißen:
if varMonat = 12 then
Sheets("Dezember")

Um den aktuellen Monat direkt anzeigen zu lassen nutze diesen Code:
Private Sub UserForm_Initialize()
TextBox1 = Month(Now())
End Sub

Anzeige
AW: Daten in jeweiligen Monat übertragen
14.12.2017 17:21:21
Kevin
https://www.herber.de/bbs/user/118345.xlsm
Das wäre dann die Datei zum testen / anschauen
Das neue Tabellenblatt mit dem gewünschten Monat bekommt man über einen Klick auf den ComBut. "Neuer Monat"
Schaut einfach mal rein :-)
AW: Daten in jeweiligen Monat übertragen
14.12.2017 17:52:28
Werner
Hallo Kevin,
da brauchst du doch jetzt schon nichts zu ändern, in der Combobox wird dir doch jetzt schon der aktuelle Monat angezeigt.
Das ansprechen des entsprechenden Tabellenblattes dann so (Code für deinen Speichern Button):
Private Sub Button_Eingabe_Click()
'Daten in Tabelle schreiben
With Worksheets(Me.ComboBox_Monat.Value)
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(Zeile, 1).Value = Me.TextBox_Datum.Value
.Cells(Zeile, 3).Value = Me.TextBox_ENR.Value
.Cells(Zeile, 2).Value = Me.ComboBox_Wache.Value
.Cells(Zeile, 4).Value = Me.TextBox_Patient.Value
.Cells(Zeile, 5).Value = Me.ComboBox_Einsatzort.Value
.Cells(Zeile, 6).Value = Me.ComboBox_Transportziel.Value
.Cells(Zeile, 7).Value = Me.ComboBox_Fahrer.Value
.Cells(Zeile, 8).Value = Me.ComboBox_Beifahrer.Value
.Cells(Zeile, 9).Value = Me.ComboBox_Notarzt.Value
.Cells(Zeile, 10).Value = Me.TextBox_Kilometer.Value
End With
Unload Me
End Sub
Gruß Werner
Anzeige
AW: Daten in jeweiligen Monat übertragen
14.12.2017 18:10:29
Kevin
Unglaublich! Es funktioniert natürlich... :D Danke, Danke, Danke!
Wener, Hartmut: Danke für die Antworten!
Nun habe ich noch zwei Dinge die ich ebenfalls schon seit Wochen probiere, allerdings nicht richtig hinbekomme - darf ich wohl noch diese beiden Dinge erfragen? ;-) Weiß leider nicht, ob ich dafür einen neuen Thread öffnen muss...
Gruß
Kevin
Frag doch einfach,....
14.12.2017 18:21:50
Werner
Hallo Kevin,
....wenn ich dir nicht weiterhelfen kann, kannst du ja immer noch einen neuen Beitrag eröffnen.
Gruß Werner
AW: Frag doch einfach,....
14.12.2017 18:27:42
Kevin
Stimmt auch wieder, danke schonmal!
Nun hast du ja die Datei gesehen. In der UserForm1 werden ja div. Daten eingegeben und manche sind schon vordefiniert. Nun ist das System bei uns nach "Wachen" aufgestellt. (siehe ListBox "Wache")
Beispiel dazu: Heute ist Wache III dran, morgen Wache I und übermorgen Wache II.
Noch müsste man diese Wachen ja händisch in der ListBox "Wache" i.d. UserForm auswählen. Gibt es eine Möglichkeit, dass man der Datei sagt "jeden 3. Tag ab Tag X Wache III"? Sodass man dann nicht mehr händisch die Wache eingeben bzw. auswählen muss... Dazu soll dann beim speichern, sofern das o.g. funktioniert, im Tabelleneintrag die Wachen unterschiedliche Schriftfarben haben.
Ich stelle Fragen.... :D
Anzeige
AW: Daten in jeweiligen Monat übertragen
14.12.2017 17:46:17
Kevin
lässt sich die Datei o. Probleme öffnen?
AW: Daten in jeweiligen Monat übertragen
15.12.2017 12:01:29
Hartmut_M
Zum automatischen Eintrag der Wache fällt mir dieses ein:
Dim varDatum1 As Date
varDatum1 = "1.12.2017"
Do While varDatum1 
Gruß Hartmut
AW: Daten in jeweiligen Monat übertragen
15.12.2017 12:13:52
Hartmut_M
Bezüglich Schriftfarbe vielleicht so:
Cells(Zeile, 2).Value = ComboBox_Wache.Value
If Cells(Zeile, 2).Value = "I" Then Font.Color = -16776961 'rot
If Cells(Zeile, 2).Value = "II" Then Font.Color = -11489280 'grün
If Cells(Zeile, 2).Value = "III" Then Font.Color = -4165632 'blau
Hab's jetzt nicht getestet.
AW: Daten in jeweiligen Monat übertragen
15.12.2017 17:45:22
Kevin
Funktioniert leider irgendwie nicht bei mir, kann aber auch sein, dass ich es falsch eingefügt habe. Nun würde ich erstmal kurzzeitig bei der ComboBox bleiben, später noch einmal nach dem Anliegen schauen. Danke Danke! :-)
Nun habe ich noch eine Frage:
Wenn bspw. in Zeile 6, Spalte B, quasi B6 nach einem neuen Eintrag über die UserForm ein bestimmtes Wort bzw. eine Zahl zw. 1-3 steht, ist es da möglich die jeweiligen Zeilen unterschiedlich zu färben, also ganz automatisch?
Beispiel:
B6 = 2
B7 = 2
B8 = 3
B9 = 1
B10 = 1
Ergebnis: B6 und B7 sind hellblau, B8 ist rot und B9 und B10 sind hellgrün. Vor dem Eintrag der Zahl waren die jeweiligen Zeilen weiß.
Geht sowas? Habe es schonmal in einem Programm gesehen, weiß aber den konkreten Lösungsweg leider nicht. :D
Gruß
Kevin
Anzeige
AW: Daten in jeweiligen Monat übertragen
16.12.2017 11:53:59
Werner
Hallo Kevin,
das geht doch völlig easy mit der bedingten Formatierung.
-in deinem entsprechenden Monatsblatt B3 bis B1403 markieren
-Start-Bedingte Formatierung-Neue Regel-Formel zur Ermittlung der zu formatierenden Zellen verwenden
-Formel im Formelfeld: =B3="I"
-Formatieren-Schrift-Farbe auswählen
Selbes Prozedere dann noch für "II" und für "III" entsprechend dann halt mit anderen Schriftfarben.
Für dein anderes Problem habe ich im Moment keine Zeit/Resourcen. Meine Internet-Verbindung ist im Moment down.
Sobald ich wieder online bin setze ich mich mal dran, hab da schon eine Idee.
Gruß Werner
Anzeige
Vorauswahl
16.12.2017 13:06:54
Werner
Hallo Kevin,
für die Vorauswahl der Wache:
Im Tabellenblatt "Startseite" Zelle I1 folgende Formel:
=WENN(H1="";"";WENN(H1="I";1;WENN(H1="II";2;WENN(H1="III";0;""))))
Im Tabellenblatt "Startseite" die Spalten H und I ausblenden.
Im Userform_Initialize am Ende, vor End Sub, einfügen:
With ComboBox_Wache
If Worksheets("Startseite").Range("I1")  "" Then
.ListIndex = Worksheets("Startseite").Range("I1")
End If
End With
Code für deinen Eingabe Speichern Button:
Private Sub Button_Eingabe_Click()
'Daten in Tabelle schreiben
With Worksheets(Me.ComboBox_Monat.Value)
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(Zeile, 1).Value = Me.TextBox_Datum.Value
.Cells(Zeile, 3).Value = Me.TextBox_ENR.Value
.Cells(Zeile, 2).Value = Me.ComboBox_Wache.Value
.Cells(Zeile, 4).Value = Me.TextBox_Patient.Value
.Cells(Zeile, 5).Value = Me.ComboBox_Einsatzort.Value
.Cells(Zeile, 6).Value = Me.ComboBox_Transportziel.Value
.Cells(Zeile, 7).Value = Me.ComboBox_Fahrer.Value
.Cells(Zeile, 8).Value = Me.ComboBox_Beifahrer.Value
.Cells(Zeile, 9).Value = Me.ComboBox_Notarzt.Value
.Cells(Zeile, 10).Value = Me.TextBox_Kilometer.Value
End With
Worksheets("Startseite").Range("H1") = Me.ComboBox_Wache
Unload Me
End Sub
Gruß Werner
Anzeige
AW: Daten in jeweiligen Monat übertragen
16.12.2017 14:24:22
Kevin
Hallo Werner!
Vielen Dank für die Antwort, ich konnte nach etwas Recherche das Anliegen gestern mittels bedingter Formatierung und div. Regeln lösen - klappt nun wunderbar!
Ich habe mich heute gegen die automatische Weiterstellung der Wachen 1-3 entschieden, damit die Angabe jeder selbst auswählen muss. Es wird sonst problematisch, da die jeweiligen Wachen bis 08:00 des Folgetages laufen, die autom. Einstellung allerdings nur bis 00:00 Uhr. So muss dann jeder eben ein Häkchen setzen, auch okay ;-)
Im großen und ganzen ist die Datei nun eigentlich fertig und wird noch mit einigen, kleinen und hilfreichen Funktionen für den Dienstbetrieb beschrieben - dann sollte es passen. Somit können wir theoretisch den Thread hier beenden. Es werden aber sicher noch fragen kommen, also werde ich dann wie gehabt zuerst hier einmal kurz anfragen. Vielen, vielen, vielen Dank für die schnelle und kompetente Hilfe, Hartmut und Werner! ;-)
Gruß
Anzeige
Gerne u.Danke für die Rückmeldung. o.w.T.
16.12.2017 14:29:31
Werner

155 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige