Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1312to1316
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
Inhaltsverzeichnis

Wert erhöhen

Wert erhöhen
31.05.2013 14:36:05
jasmin
Hallo,
ich hab ein Userform bei dem ich eine Kategorie auswähle und Tag und Monat angebe. Wenn ich zb. Klein auswähle soll in der Tabelle (s.Bild) im entsprechenden Monat und Tag der Wert um eins erhöht werden.
Userbild
Ich hab leider keine Idee wie ich das umsetzen könnte. Wäre nett wenn mir einer helfen könnte.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tipp: VBA - Ereignisse des TabBlattes ...
31.05.2013 15:11:57
Luc:-?
…(Worksheet_SelectionChange ) ansehen u/o recherchieren, Jasmin!
Gruß Luc :-?

AW: Tipp: VBA - Ereignisse des TabBlattes ...
31.05.2013 15:21:12
jasmin
das hilft mir leider nicht viel weiter, ich kenne mich dazu nicht gut genug aus mit vba

AW: Tipp: VBA - Ereignisse des TabBlattes ...
31.05.2013 15:25:36
Luschi
Hallo Jasmin,
und wir arbeiten viel lieber mit richtigen Excel-Test-Dateien (die man in diesem Forum UpLoaden kann als mit Bildern.
Gruß von Luschi
aus klein-Paris

Und wer hat dann die in der Mappe ...
31.05.2013 19:32:42
Luc:-?
…enthaltenen VBA-Programme geschrieben, Jasmin?
Melina? Dann richte ihr doch bitte aus, dass sie künftig Option Explicit verwenden soll (kann man im VBE einstellen), denn einige Variablen waren nicht deklariert, darunter im Druckprogramm gewaehlterTag, die auch sonst überhaupt nicht in den Pgmm vorkam.
Ich habe erstmal die Pgmm in eine besser leserliche Form gebracht, weiteres kann folgen, sobald ich verstanden habe, worum es eigentlich geht.
Gruß Luc :-?

Anzeige
AW: Und wer hat dann die in der Mappe ...
31.05.2013 19:41:08
jasmin
Das hab ich mit ihr zusammen gemacht. Und da weder ich noch sie richtige vba kenntnisse haben kommt so was dabei raus. Daher frage ich ja auch hier.
Es geht eigentlich darum, dass wenn ich das Formular ausgefüllt habe in der ersten Tabelle den Wert an dem angegeben Tag in dem Formular um eins erhöhen möchte.

Dafür habt ihr das aber gar nicht schlecht ...
01.06.2013 03:04:51
Luc:-?
…gemacht, Jasmin,
sogar eine Enumeration, wenn auch nicht ganz richtig angewendet (das ist auch nur eine GlobalVariable als Feld automatisch gebildeter Konstanten — ihr habt versucht, sie ähnlich wie einen benutzerdefinierten VarType einzusetzen; übrigens, in xlVBA wimmelt es geradezu von solchen MS-seitigen Enumerationen).
Eine lesbarere Form gewöhnt ihr euch sicher auch noch an (wenn ihr dann Cracks seid und nicht wollt, dass irgendein Plagiator, Kunde oder überschlauer Kollege eure Pgmm versteht, könnt ihr die ja anschließend obfuszieren → WikiPedia!). ;-)
Habe nicht allzuviel am Pgm geändert, ein paar Vorschläge (wollte nicht so tief eindringen) und Ergänzungen für die gewünschte Zählung (hoffe, das richtig verstanden zu haben!).
Im Erfassungsblatt habe ich die VerbundZellen mit den Monatsnamen mit etwas mehr Inhalt gefüllt, um sie sinnvoller zu machen — ist unten für einen Monat angegeben. Erläuterungen zu dieser speziellen „Pinselmethode“ findet ihr auch im Archiv (falls das eine Ausbildungsarbeit ist, könnte es durchaus sein, dass euer Lehrer die Methode gar nicht kennt, obwohl Ähnliches bei OOcalc Standard ist).
Auf weitere Raffinessen habe ich dann aber lieber verzichtet! ;-)
Habe euch eure Datei wieder hochgeladen!
Gruß Luc :-?
Besser informiert mit …

Anzeige
AW: Dafür habt ihr das aber gar nicht schlecht ...
01.06.2013 08:34:20
jasmin
Danke schön. Innerhalb von drei Wochen das zu können ist auch etwas viel verlangt finde ich.
Allerdings zählt bei mir nichts wenn ich etwas in das Formular eingebe.
Und dann hab ich noch eine Frage zu dem Datum das ich in dem Reg.Blatt habe. Das Datum steht immer auf dem selben Datum und wenn ich das in dem Code ändern möchte dann bringt es immer eine fehlermeldung egal was ich dort ändere.
lg

AW: Dafür habt ihr das aber gar nicht schlecht ...
01.06.2013 08:36:45
jasmin
Achso und zu dieser Enumeration muss man dort nicht die Angaben auflisten? In der Angabe stand nämlich drinne das wir das 0,1,2 setzen sollen deshalb haben wir das so geschrieben.

Anzeige
Muss man nicht! Deshalb ist das ja eine ...
01.06.2013 15:08:39
Luc:-?
Enumeration (Aufzählung), Jasmin;
das wäre nur erforderlich, wenn das ganz unterschiedliche Werte wären, aber dann könnte man auch Einzelkonstanten nehmen. Ggf gibt man bei lückenlos ganzzahliger Abfolge den Startwert an (im Prinzip so wie ihr das gemacht hattet), den Rest macht dann VBA automatisch. Ich verwende u.a. die selbstdefinierte zusätzliche Enumeration xlTriState (vbTriState und msoTriState gibt's schon): Enum xlTriState: xlTrue = -1: xlFalse: xlCTrue: End Enum
Allerdings ist der 2.Zweck auch eine Zusammenstellung unter einem Oberbegriff. Der VBE-Intellisense zeigt für eine so deklarierte Variable stets alle (ja vordefinierten) Wertmöglichkeiten an. Allerdings sind auch nicht vordefinierte Werte möglich, denn letztlich ist das alles Integer oder Long. U.U. kann es deshalb sinnvoll sein, die Werte per Rechenoperation auf die vordefinierten zu begrenzen.
Das Andere sehe ich mir noch mal an, denn bei mir ist am entsprd Tag in der gewählten Kategorie ein Schiff eingetragen worden, nachdem alle 3 oberen Felder in der UF eingestellt wurden.
Ich hätte das übrigens sicher anders gelöst, denn eure Variante halte ich für ziemlich praxisfremd. Aber, wenn's der Lehrer so will — ist ja wohl nur 'ne Übung… ;-)
Gruß + schöWE, Luc :-?

Anzeige
Erstmal zum Zähler, ...
01.06.2013 18:03:13
Luc:-?
…Jasmin;
das er bei euch nicht zählt, liegt sicher daran, dass ihr für Tag u.Monat ListBoxes verwendet und die auch noch so schmal eingestellt habt, dass man nur eine Zeile sieht. Die muss dann aber auch noch ausgewählt wdn, nicht nur sichtbar sein, das ist der Zweck einer solchen Box!
Nur die Schiffskategorie ist eine ComboBox, in der eure Auswahl auch automatisch ausgewählt wird, was durch farbliche Markierung angezeigt wird. Solange also nicht alle 3 Felder Werte liefern, wird auch nichts gezählt!
Nebenbei, es wäre sicher gut, in WertErhöhen nach der For-Schleife noch die Zeile Me.Schiffskategorie.Value = Empty einzufügen. Dadurch wird nach Zählereintrag der Wert der ComboBox gelöscht und die nächste Schiffsbewegung kann für den gleichen Tag sofort eingetragen wdn, egal, welcher Art sie ist.
Das mit dem Datum sehe ich mir später an.
Gruß Luc :-?

Anzeige
AW: Erstmal zum Zähler, ...
01.06.2013 18:30:43
jasmin
Wenn ich die Boxen auswähle beim datum das sie blau unterlegt sind funktioniert es auch bei mir. Kann man da andere wählen das es automatisch dann geht ohne das man die box auswählen muss?

Ja, kann man - ComboBox verwenden! ;-) owT
01.06.2013 18:44:48
Luc:-?
:-?

AW: Ja, kann man - ComboBox verwenden! ;-) owT
01.06.2013 19:41:12
jasmin
ok danke schön funktioniert jetzt alles wie es soll :)

Trotzdem noch ein paar Bemerkungen, ...
01.06.2013 20:22:40
Luc:-?
…Jasmin;
die von mir vorgeschlagene zusätzliche Löschzeile verhindert die sofortige Rechnungslegung. Ihr habt offensichtlich Zählung und Rechnung miteinander verknüpft. Das meinte ich mit praxisfremd. Wenn eure Aufgabe konkret so lautet, hat der Aufgabensteller noch nie eine Schleuse durchfahren. Die Benutzung kleiner Schleusen (für Sportboote u.ä.) ist entweder unentgeltlich, per Selbstbedienung oder auf Spendenbasis. Mittlere Schleusen (für Binnenfahrgast- bzw -lastschiffe) zählen zwar sicher den Verkehr, Rechnungen wdn aber bestimmt nicht unmittelbar für jedes einzelne Schiff an die jeweilige Reederei gestellt. Da wdn wahrscheinlich Benutzungsgebühren pauschal, auf Basis von Kontingenten, erhoben. Ansonsten dauert eine Schleusung lange genug, dass gleich kassiert wdn kann. Gebühren großer Schleusen (für Hochseeschiffe u.ä.) sind mit Sicherheit in den Kanalbenutzungsgebühren enthalten, die idR wohl vorab entrichtet wdn müssen. Da geht's dann sicher auch nach Wasserverdrängung. ;-)
Das erwähne ich nur, weil ich es für unzweckmäßig halte, die statistische Zählung mit der Rechnungslegung zu verbinden. Nun, für eine Übungsaufgabe mag das aber mal angehen, ist aber natürlich genauso fiktiv wie euer Schleusenbetrieb (was sich die IT-Trainer so alles ausdenken!).
Was mir noch auffiel: Ihr verwendet in Franz' (fcs) Select Case für varCell41_7 immer dieselbe Spalte im Statistik-Blatt. Hat das einen tieferen Sinn, der mir entgangen sein könnte?
Ansonsten, wenn man schon eine Enumeration anlegt, sollte man sie auch durchgängig verwenden (wenn das irgend möglich ist). Man könnte so den o.g. Löschbefehl auch beibehalten, wenn die entsprd Abfrage, die den Druck einleitet, auf fmDWahl(2) umgestellt würde. Wenn man ganz ordentlich vorgehen will, liest man den vor Druckbeginn in eine entsprd As mjSchiffKategorie deklarierte Variable der Druck-Prozedur ein. Gleichzeitig hat man so das Bereichszeilen-Offset für das Statistik-Blatt; Sheets("Statistik").Cells(39, 2).Offset(fmDWahl(2), 0)
Damit wäre das Select Case-Konstrukt eigentl überflüssig. Das Spalten-Offset sollte sich hier wohl nach dem Monat richten und nicht stets 0 sein.
Viel Erfolg! Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige