Live-Forum - Die aktuellen Beiträge
Datum
Titel
01.03.2024 22:49:01
01.03.2024 22:31:05
01.03.2024 19:13:27
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lagerbestand

Lagerbestand
04.01.2007 13:31:31
Stefan
Hallo zusammen,
ich möchte, um mir Arbeit zu sparen, ein kleines "Script" für Excel erstellen um den Lagerbestand unserer Bücher leichter erfassen zu können.
Ich benötige für jedes Buch ein eigenes Datenblatt (Diese sind angelegt). Nun möchte ich auf einer Hauptseite (sprich Tabelle) eine Eingabemaske haben, an der ich das entsprechende Buch (anhand eines Dropdowns) sowie die Anzahl der Abgänge bzw Zugänge sowie eine Rechnungsnummer mittels Textfeld eingeben kann.
Die eingegebenen Werte sollen dann in die entsprechenden Arbeitsblätter geschrieben werden.
Optional wäre noch immer das aktuelle Datum bzw. ein am Anfang definiertes Datum mit einzupflegen.
Es handelt sich um ca. 15 Bücher.
Ich erwarte keine Komplettlösung, aber vielleicht hat jemand ja einen Ansatz bzw. eine Vorlage mit der ich Arbeiten könnte.
MFG
Stefan

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lagerbestand
04.01.2007 13:50:56
Michael
Also wo genau sollen die Daten denn hin? Existiert eine Tabelle mit den Namen der Bücher, wo dahinter die Menge eingetragen werden soll?
Am besten wäre ein Muster der Start- und Zieldatei bzw. wie das Ganze aussehen soll. Gerne auch an meine E-Mail, dann tüftel ich mal etwas...
Gruss Michael
AW: Lagerbestand
04.01.2007 14:16:46
Andi
Hi,
ich werd mein gerade gepostetes Beispiel noch a bisserl an Deine Datei anpassen. meld mich gleich wieder...
noch ne Frage...
04.01.2007 14:22:30
Andi
... soll auf dem Übersichtsblatt nur die Anzahl der Abgäbge, oder die Anzahl der Zu- und Abgänge verbucht werden?
Anzeige
AW: und noch ne Frage...
04.01.2007 14:28:40
Andi
Hi,
und noch ne Frage:
Was soll in dem Buchblatt unter Anzahl stehen:
Die Abgänge bzw Zugänge, der Saldo aus beiden, oder der Bestand plus/minus den Salso aus beiden?
Schönen Gruß,
Andi
Und noch ne Antwort ;)
04.01.2007 14:51:57
Stefan
Hallo Andi,
vernachlässige bitte die Zugänge, das passiert eh nur 1x im Jahr! Wichtig sind die Abgänge.
Danke
Stefan
AW: Und noch ne Antwort ;)
04.01.2007 15:53:37
Stefan
Hallo,
schaut schon mal vielversprechend aus :) Danke schön.
4 Sachen hätte ich aber noch:
1.) Das die Textfelder nach dem Absenden wieder leer sind (Eingabemaske)
2.) Geht es, das man mit der Tab-Taste ins nächste Feld kommt? Oder muss ich jedes Mal meine Maus benutzen?
3.) Die Summe der Abgänge in der Übersicht errechnet sich nach jeder Eingabe? Allerdings nicht aus der Summe am Ende jedes Datenblattes, so das diese eigentlich gelöscht werden könnte, oder?
4.) Kann ich das Userform, also die Eingabemaske selber noch "bearbeiten"? Also etwas gestalten? (Bin leider net so firm in VBA)
Fragen über Fragen ;)
Danke dir für die Mühe :)
Stefan
Anzeige
AW: Und noch ne Antwort ;)
04.01.2007 16:39:57
Andi
Hi,
zu 1.:
Hab ich so gemacht, allerdings nicht für die Datums-Textbox; im ersten posting hattest Du geschrieben, dass das aktuelle Datum oder ein anderes eingetragen werden soll, deshalb steht jetzt als default-Wert immer das aktuelle in der TextBox. Wenn Du die auch lieber leer hättest, dann kannst Du das im Code leicht selbst ändern:
Geh ins Modul der Tabelle, ins Click-Ereignis des CommandButton und ändere in der per Pfeil markierten Zeile das Date auf "".
zu 2.:
Nachdem es sich nicht um ein UserForm handelt sondern um eine Tabelle, nicht ohne Umweg, weil Steuerelemente für Tabellen keinen TabStop-Index haben. Man muss also für jedes Steuerelement festlegen, was passiert, wenn der Tabulator gedrückt wird, in diesem Fall also, welches Element als nächstes bzw als vorheriges (Tab+Shift) dran ist. Ich hab das schon umgesetzt, ich schreib das hier nur, damit Du verstehst, was in den KeyDown-Ereignissen passiert.
zu 3.:
Da hatte ich noch nen kleinen Fehler drin, aber jetzt isses so wie Du schreibst. Die Abgänge werden in der Übersicht direkt aus der TextBox draufaddiert, ohne Umweg über die Summe auf dem Buch-Blatt. Wenn Du die also sonst für nix brauchst, kannst Du die Zeile auch löschen.
zu 4.:
Wie gesagt, is kein UserForm sondern ne Tabelle mit Steuerelementen.
Geh mal im VBA-Editor auf "Ausführen" und dann auf "Entwurfsmodus". Jetzt kannst Du in der Tabelle die Steuerlemente beliebig verschieben.
So, und zur fertigen Datei geht's hier:
https://www.herber.de/bbs/user/39380.xls
Schönen Gruß,
Andi
Anzeige
AW: Und noch ne Antwort ;)
04.01.2007 18:15:00
Stefan
Fast perfekt.
Echt klasse, dass das so schnell funktioniert.
Wenn jetzt noch der Absenden Button per Tag angesteuert werden kann und mittels Return auslöst hab ich alles was ich brauch...
Am Wochenende werde ich dann mal versuchen alles zu verstehen ;)
Gruß und 1000 x Danke
Stefan
AW: Und noch ne Antwort ;)
05.01.2007 10:01:57
Andi
Hi,
auch das habe ich noch eingebaut.
Nachdem CmdButtons in Tabellen normalerweise nicht auf die Entertaste reagieren, mussten wir auch hier dem Umweg über das KeyDown-Ereignis gehen. Weil das Eintragen ja nun in zwei Ereignissen passieren soll (KeyDown und Click) hab ich den entsprechenden Code in ein Standardmodul ausgelagert.
Nachdem Du schreibst, dass Du das alles auch verstehen willst, was da passiert, hab ich Dir den Code mal ein bisschen kommentiert.
https://www.herber.de/bbs/user/39400.xls
Schönen Gruß,
Andi
Anzeige
Eine Kleinigkeit
05.01.2007 11:09:04
Stefan
Hallo,
Funktioniert wunderbar, echt super das du nun auch alles kommentiert hast :) Vielen Dank.
Nun habe ich aber noch eine Kleinigkeit, was ist, wenn ich mich einmal vertippt habe, und nachträglich den Abgang in der entsprechenden Tabelle ändere. Dann müsste sich ja der Bestand auch ändern! Aber wie ich sehe, errechnet sich der Bestand nur bei jeder Eingabe.
Hast du eine Idee?
Gruß und nochmals vielen vielen Dank
Stefan
AW: Eine Kleinigkeit
05.01.2007 13:20:57
Andi
Hi,
also die einfachste Möglichkeit wäre, dass Du sowas mit einer erneuten Eingabe korrigierst; bei den Abgängen können auch negative Werte eingegeben werden, das wird dann auf den Bestand einfach draufgerechnet. Statt einer Rechnungsnummer könntest Du zB 'Korrektur' eingeben oder so.
Die nächste Möglichkeit wäre, dass man die Spalte G in der Übersicht eben doch per Verknüpfung über die Summenzeilen der Buch-Blätter ausfüllt. Dann müsstest Du im Modul1 in der Eintragen-Routine folgendes löschen:
With Sheets("Übersicht")
For zeile = 8 To .Range("A65536").End(xlUp).Row 'Schleife durchsucht die Übersicht nach der richtigen Zeile für das entsprechende Buch; Find-Methode geht hier nicht wegen verbundenen Zellen
If .Range("A" & zeile) = Sheets("Eingabemaske").ComboBox1.Value Then
.Range("G" & zeile) = .Range("G" & zeile) + Sheets("Eingabemaske").TextBox3.Value 'Abgänge werden in Spalte G draufaddiert
Exit For
End If
Next zeile
End With
Sicherlich gäbe es auch die Möglichkeit komplett per Makro mit dem Workbook_SheetChange-Ereignis die manuellen Änderungen abzufragen und entsprechend zu bearbeiten. Dies stellt aber nur einen Mehr-Aufwand gegenüber der zweiten Lösung dar, keinen Mehr-Wert.
Was mir noch aufgefallen ist:
In der ComboBox taucht auch das Übersichtsblatt auf; um das zu vermeiden, müsstest Du noch im Modul 'DieseArbeitsmappe' im Open-Ereignis die Schleife so ändern:
For a = 1 To Sheets.Count 'Schelife, die alle sheets außer der Eingabemaske und der Übersicht in die Combobox schreibt
If Sheets(a).Name "Eingabemaske" And Sheets(a).Name "Übersicht" Then Worksheets("Eingabemaske").ComboBox1.AddItem Sheets(a).Name
Next a
Schönen Gruß,
Andi
Anzeige
AW: Eine Kleinigkeit
08.01.2007 13:16:03
Stefan
Hallo Andi,
hat bislang alles wunderbar funktioniert. Habe nun auch schon alles soweit angepasst, wie ich es benötige. Leider funktioniert aber meine Summe nicht, da die einegegebenen Stückzahlen als Text formatiert sind. Kannst du mir noch auf die Sprünge helfen, was ich ändern muss? Eine Vorformatierung als Zahl hat nichts gebracht.
Liebe Grüße
Stefan
AW: Eine Kleinigkeit
08.01.2007 16:41:18
Andi
Hi,
so geht's:
https://www.herber.de/bbs/user/39486.xls
Der Trick ist folgender in der eintragen-Routine:
.Range("C" & zeile) = Val(Sheets("Eingabemaske").TextBox3)
statt
.Range("C" & zeile) = Sheets("Eingabemaske").TextBox3
Schönen Gruß,
Andi
Anzeige
AW: Lagerbestand
04.01.2007 14:08:58
Andi
Hi,
hab Dir mal ein Beispiel gebastelt:
https://www.herber.de/bbs/user/39368.xls
Standardmäßig ist immer das aktuelle Datum, es kann aber ein beliebiges anderes eingegeben werden.
Code ist in den Modulen "DieseArbeitsmappe" und "Hauptseite"
Sag bescheid, wenn da noch was angepasst werden muss.
Schönen Gruß,
Andi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige