Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1268to1272
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
Userform mit 2 Comboboxen
Matthias
Hallo Forumsgemeinde,
ich stehe wieder mal am Berg und hoffe jemand hilft mir diesen zu erklimmen:
Ich habe eine Arbeitsmappe "Kassenjournal" mit 12 Tabellen (Januar - Dezember). Ich möchte via Userform die Daten der Einnahmen und Ausgaben eintragen. Das hab ich hingekriegt für den Januar.
Code:
Private Sub CommandButton1_Click()
'Variable deklarieren
Dim erste_freie_Zeile As Integer
'erste freie Zeile in Blatt "Januar" ermitteln
'und in Variable "erste_freie_Zeile" schreiben
erste_freie_Zeile = Sheets("Januar").Range("A65536").End(xlUp).Offset(1, 0).Row
'In Blatt "Januar"
'With Sheets("Januar")
'Spalte A, erste freie Zeile das Datum im Datumsformat übertragen
Sheets("Januar").Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
'Spalte B, erste freie Zeile den Text eintragen
Sheets("Januar").Cells(erste_freie_Zeile, 2) = TextBox2.Text
'Spalte C, erste freie Zeile die Beleg-Nummer eintragen
Sheets("Januar").Cells(erste_freie_Zeile, 3) = Format(TextBox7.Value, "0000")
'Spalte D, erste freie Zeile das ausgewählte Konto übertragen
Sheets("Januar").Cells(erste_freie_Zeile, 4) = Format(TextBox3.Value, "0000")
'Spalte E, erste freie Zeile die ausgewählte Kostenstelle übertragen
Sheets("Januar").Cells(erste_freie_Zeile, 5) = Format(TextBox4.Value, "0000")
'Spalte F, erste freie Zeile Einnahmen eingeben
Sheets("Januar").Cells(erste_freie_Zeile, 6) = Format(TextBox5.Value, "0.00")
'Spalte G, erste freie Zeile Ausgaben eingeben
Sheets("Januar").Cells(erste_freie_Zeile, 7) = Format(TextBox6.Value, "0.00")
'End With
End Sub
Der User soll nun via Combobox den Monat auswählen und damit die richtige Tabelle aktivieren. (1 Bsp.:
User wählt März und dann soll die Tabelle März aktiviert werden)
(Die Einträge der Monate in der Combobox habe ich mittels Hilfstabelle geschafft).
Denke da dieser Code für Tabelle Januar gilt sollte dieser mit active Worksheet abgeändert werden sobald der User den Monat ausgewählt hat. Wie stelle ich den Code um damit er active.Worksheet nimmt statt "Januar"?
In der 2ten Combobox soll der User die Filiale auswählen (Die Filialen stehen ebenfalls in der Combobox die mittels Hilfstabelle eingetragen sind).
Die Auswahl soll dann in Zelle B1 von der Tabelle Januar eingetragen werden.
Sobald ein Wert in B1 vom Januar steht sollte diese Combobox inaktiv werden, (oder grau eingefärbt werden.)
Für Eure Hilfe jetzt schon ein dickes Dankeschön.
Lg.
Matthias

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform mit 2 Comboboxen
25.06.2012 16:12:09
Rudi
Hallo,
anstatt Sheets("Januar") Sheets(Combobox1)
Das Verfahren mit 12 Tabellen finde ich extrem unpraktisch. Ich würde alles in eine Tabelle schreiben.
Gruß
Rudi
AW: Userform mit 2 Comboboxen
25.06.2012 17:11:34
Matthias
Hallo Rudi,
aus der Sicht eines Buchhalters sind Monatskassenjournale sehr komfortabel ;).
Danke für den Tipp.
Lg.
Matthias
AW: Userform mit 2 Comboboxen
25.06.2012 17:20:30
robert
Hi,
ich war auch Buchhalter, aber ich vertrete die Meinung von Rudi.
Wieviele Zeilen und Spalten hat eine Tabelle?
Und dann 12 Blätter-wozu?
Monatsauswertungen kann man auch aus "einer" Tabelle erstellen.
Meine Meinung........
Gruß
robert
AW: Userform mit 2 Comboboxen
25.06.2012 17:32:10
Matthias
Hallo robert,
Es gibt wohl verschiedene Auffassungen von einem Kassenjournal. Wenn ich aber in einem Monat für eine Filiale ca. 800 Einträge habe, denke ich sind 12 Tabellen (für jeden Monat eine) doch noch übersichtlicher als wenn ich im Dezember Rund 10'000 Einträge habe.
Da ich in einem staatlichen Betrieb arbeite wird das halt so gehandhabt.
Grüsse
Matthias
Anzeige
..naja, ich hab..
25.06.2012 17:55:58
robert
Hi Matthias,
..mir in der Zwischenzeit Deine Datei angesehen-
bei diesem Aufbau sind einzelne Monatsblätter sicher besser ;-)
Gruß
robert
staatlicher Betrieb
25.06.2012 22:50:36
Rudi
Hallo,
kein Wunder, dass im öffentlichen Bereich permanent Budgets um 100+% überschritten werden, wenn mit ungeeigneten Mitteln gearbeitet wird.
Eine richtikge Datenbank wäre da eher angesagt, als Excel.
Gruß
Rudi
AW: Userform mit 2 Comboboxen
25.06.2012 16:13:23
guentherh
Hallo Matthias,
ungetestet:
Private Sub CommandButton1_Click()
'Variable deklarieren
Dim MonatsBlatt as worksheet
Dim erste_freie_Zeile As Integer
'Januar!B1 belegen
Sheets("Januar").range("B1")=FilialeCombo.text
FilialeCombo.active=false
' Blatt für das ausgewählte Monat raussuchen
set Monatsblatt = sheets(MonatscomboboxEintrag)
with Monatsblatt
'erste freie Zeile in Blatt ermitteln
'und in Variable "erste_freie_Zeile" schreiben
erste_freie_Zeile = Sheets("Januar").Range("A65536").End(xlUp).Offset(1, 0).Row
'In Blatt aus der Combobox
'Spalte A, erste freie Zeile das Datum im Datumsformat übertragen
.Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
'Spalte B, erste freie Zeile den Text eintragen
.Cells(erste_freie_Zeile, 2) = TextBox2.Text
'Spalte C, erste freie Zeile die Beleg-Nummer eintragen
.ells(erste_freie_Zeile, 3) = Format(TextBox7.Value, "0000")
'Spalte D, erste freie Zeile das ausgewählte Konto übertragen
.Cells(erste_freie_Zeile, 4) = Format(TextBox3.Value, "0000")
'Spalte E, erste freie Zeile die ausgewählte Kostenstelle übertragen
.Cells(erste_freie_Zeile, 5) = Format(TextBox4.Value, "0000")
'Spalte F, erste freie Zeile Einnahmen eingeben
.Cells(erste_freie_Zeile, 6) = Format(TextBox5.Value, "0.00")
'Spalte G, erste freie Zeile Ausgaben eingeben
Cells(erste_freie_Zeile, 7) = Format(TextBox6.Value, "0.00")
End With
End Sub

Gruß,
Günther
Anzeige
AW: Userform mit 2 Comboboxen
25.06.2012 17:08:50
Matthias
Hallo Günther,
besten Dank für Deine Hilfe. Ich bekomme ein Fehler wenn ich die Maske CommandButton1 (Eingabe speichern) drücke.
FilialeCombo.active=false
Active ist blau markiert und Fehlermeldung lautet:
Fehler beim kompilieren: Methode oder Datenobjekt nicht gefunden.
Habe mal das aktuelle Excel File upgeloadet.
https://www.herber.de/bbs/user/80723.zip
Grüsse
Matthias
AW: Userform mit 2 Comboboxen
26.06.2012 08:27:34
guentherh
Hallo Matthias,
sorry, das richtige property lautet .enabled.
mit zwei weiteren Korrekturen bzgl with erhält man den Code unten
Die Zeile
erste_freie_Zeile = Sheets("Januar").Range("A65536").End(xlUp).Offset(1, 0).Row
halte ich für einen Fehler, allerdings sind die Felder A6 bei den anderen Blättern leer, so dass dort auch die falsche Zeile gefunden würde. Sollte es nicht so sein, dass die freie Zeile in dem blatt gesucht wird, und deshalb in jedem Monatsblatt A6 mit "x" belegt wird?
Gruß,
Günther
Private Sub CommandButton1_Click()
'Variable deklarieren
Dim MonatsBlatt As Worksheet
Dim erste_freie_Zeile As Integer
'Januar!B1 belegen
Sheets("Januar").Range("B1") = FilialeCombo.Text
FilialeCombo.Enabled = False
' Blatt für das ausgewählte Monat raussuchen
Set MonatsBlatt = Sheets(MonatscomboboxEintrag.Text)
With MonatsBlatt
'erste freie Zeile in Blatt ermitteln
'und in Variable "erste_freie_Zeile" schreiben
erste_freie_Zeile = Sheets("Januar").Range("A65536").End(xlUp).Offset(1, 0).Row
'In Blatt aus der Combobox
'Spalte A, erste freie Zeile das Datum im Datumsformat übertragen
.Cells(erste_freie_Zeile, 1) = CDate(TextBox1.Text)
'Spalte B, erste freie Zeile den Text eintragen
.Cells(erste_freie_Zeile, 2) = TextBox2.Text
'Spalte C, erste freie Zeile die Beleg-Nummer eintragen
.Cells(erste_freie_Zeile, 3) = Format(TextBox7.Value, "0000")
'Spalte D, erste freie Zeile das ausgewählte Konto übertragen
.Cells(erste_freie_Zeile, 4) = Format(TextBox3.Value, "0000")
'Spalte E, erste freie Zeile die ausgewählte Kostenstelle übertragen
.Cells(erste_freie_Zeile, 5) = Format(TextBox4.Value, "0000")
'Spalte F, erste freie Zeile Einnahmen eingeben
.Cells(erste_freie_Zeile, 6) = Format(TextBox5.Value, "0.00")
'Spalte G, erste freie Zeile Ausgaben eingeben
.Cells(erste_freie_Zeile, 7) = Format(TextBox6.Value, "0.00")
End With
End Sub

Anzeige
AW: Userform mit 2 Comboboxen
26.06.2012 09:53:27
Matthias
Hallo Günther
okay jetzt klappts schon mal.
Du hast Recht eigentlich sollte der erste Eintrag der Bewegungen erst ab Range A7 sein. Dies sollte ich aber hinkriegen.
Bei der Selektion der Filiale hab ich noch ein Problem. Solange die Maske aktiv ist bleibt das Feld ja inaktiv, was ja gewünscht ist. Doch beim nächsten Start ist das Feld wieder frei. Filiale und Saldo Vorjahr sollten aber nur einmal eingetragen werden (jeweils Anfangs Januar wenn die Filialen mit dem Neuen Kassenjournal beginnen) Beim erneuten Start der Maske sollte der Eintrag (inaktiv in der Maske) angezeigt bleiben, der in den Felder Sheets "Januar" B2 und F5 vorliegt. Das Feld Saldo Vorjahr habe ich noch nicht im Beispiel drin.
Überlege mir ob ich diese 2 Felder in einer separaten Maske einfügen sollte welche mit einem Button in der Erfassungsmaske aufgerufen werden kann, dort einmal erfasst und danach die 2 Felder permament inaktiv bleiben solange ein Wert in diesen 2 Felder drin ist. Hier benötige ich noch Hilfe.
Ach ja noch was, wäre es möglich sobald der Monat ausgesucht ist, dass Excel mir das ausgewählte Tabellenblatt dann auch im Hintergrund der Maske anzeigt? Jetzt bleibt es auf dem Blatt "Daten" stehen.
Lg.
Matthias
Anzeige
AW: Userform mit 2 Comboboxen
26.06.2012 11:12:32
guentherh
Hallo Matthias,
Bei der Selektion der Filiale hab ich noch ein Problem....

kam mir gleich komisch vor...
Du kannst z.B. in Deiner Initialisierungsprozedur
If Sheets("Januar").Range("B1") "Hier Auswahl treffen" Then
FilialeCombo.Enabled = False
FilialeCombo.text = Sheets("Januar").Range("B1").text
end if
schreiben.
die anderen Felder sind nicht so leicht zu belegen; hier könntest Du die ControlSource der Eingabe-Elemente auf Felder im Blatt Daten verbinden.
...
With MonatsBlatt
.activate
...
sollte das Blatt im Hintergrund anzeigen
Gruß,
günther
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige