Hallo Reinhard,
ich hatte diesen Beitrag an der falschen Stelle im Board. Habe dies nun berichtigt… *gg*
Nun bekomme ich ein durcheinander mit dem ganzen.
Ich habe die Mappe ziemlich geändert…
Ich fange nochmals an, alles zu erzählen, und füge danach auch
Deine tollen Ideen als Aufgaben ein.
Ausgangslage:
Wir haben in einem Raum einen PC installiert. Auf diesem wir
NUR diese Mappe geladen sein.
Jeder Fahrer kommt am Abend nach Hause und gibt seine Daten
ein. Pro Tag pro MSW, 1 Datensatz.
An jedem Tag, kein Wochenende, Feiertag?
Nein, An jedem Tag, da unsere Firma 365 Tage im Jahr arbeitet,
auch an Sonn- und Feiertagen.
Das mit nur jeweils den heutigen Tag editieren habe ich
hinbekommen…
Der PC läuft ständig. Am letzten Tag des Monats werde ich in
der Konfiguration einen neuen Monat erstellen.
Warum so umständlich? Was ist wenn du krank bist oder nicht
dran denkst o.ä.
Laß das doch Vba machen.
Das prüft bei jedem Start ob schon eine mappe für den
Folgemonat besteht, wenn nicht wird sie erstellet.
Bzw. prüft ab ob der Monat der Mappe dem Monat des
Öffungstages der mappe entspricht, wenn nicht wird eine neue
mappe erzeugt und die angezeigt.
Ja das wäre supertoll wenn Du das hinbekommst
D.h. Die Mappe
wird nur 1mal im Monat abgespeichert durch den VBA-Code
(besser wäre es nach jedem Datensatzeintrag um Datenverluste
zu vermeiden.)
Okay, mache ich.
Also immer wenn man in der Datenmaske auf speichern klickt,
sollte es die Mappe abspeichern, also nur den save-Befehl,
keine andere Datei erzeugen. Wie wenn ich von Hand af
„Datei-Speichern“ klicke.
Da es aber immer wieder zu Falscheinträgen kommen kann muss
ich diese Daten schnell korrigieren können. Deshalb wäre es
schön, die Korrektur direkt in der Maske auszuführen.
Kann ich machen aber mal eine andere idee, ich komm grad
durcheinander mit den ganzen mappenversionen, da gibts ja auch
paar die hast du noch gar nicht )
Jedenfalls war da so meine Idee, die fahrer können nur in der
UF Datensatz etwas eingeben, in den Blättern selbst können sie
nichts ändern.
Nur wer das passwort kennt nach Klick auf „ändern“ darf in den
Blättern direkt ändern.
Ich für mich kann mich viel schneller und übersichtlicher
direkt in den 31 Zeilen da bewegen und was ändern als mühsam
Satz für Satz durchzublättern.
Aber du entscheidest wie das laufen soll.
Genau. Das habe ich bereits gelöst. Ich kann nun auf Daten
ändern klicken, dann Passwort, dann den ausgewählten Tag
editieren. Funktioniert
Userform Datenmaske:
- Der oberste Eintrag „Tag“ hat das Format 0.0. Kann man dies
in 0 ändern, also ohne die Kommastelle?
Ja, ändere in Modul1 in der Prozedur „Fuellen“ die eine
If-Schleife so ab:
If Anz > 0 Then
UF.Controls(„TB1“).Value = Format(.Cells(Nr + 2, 1).Value,
„0“)
For Spa = 2 To 11
UF.Controls(„TB“ & Spa).Value = Format(.Cells(Nr + 2,
Spa).Value, „#,##0.0“)
Next Spa
End If
- Beim cmdButton „Neuer Datensatz“ kommt beim Mouseover ein
Hinweisfeld mit dem Verweis: "Hilf!C1 . Kann man das
wegmachen?
Ja, ich dachte mir „Hilfe/beschreibung“ ist vielleicht
sinnvoll.
klick mal im Editor auf "datenmaske sodaß du die UF siehst,
dann F4 und klicke auf den cmdButton.
Dann schau in den Eigenschaften zu „ControlTipText“
Damit könntest du zu jedem Button usw beim Mouseover einen
kleinen Hilfetext erscheinen lassen.
Oder aber man läßt das weg und baut einen Button „Hilfe“ ein,
der dann ein großes Textfeld anzeigt wo alle Buttons usw.
erläutert werden.
„ControlTipText“ habe ich gemacht. Bin mir nicht sicher ob es
eine Hilfe braucht. Ich kann da später einen „ControlTipText“
einfügen.
- Beim cmdButton „Speichern“ wäre es besser wenn die ganze
Arbeitsmappe abgespeichert wird. Vorbeugen von Datenverlust,
da diese Mappe nur immer am letzten Tag des Monats gespeichert
wird…
Okay, mache ich.
Wie oben schon beschrieben
- Habe einen cmdButton hinzugefügt. „Datensatz ändern“. Ist es
möglich nach Klick das Passwort aufzurufen und damit die
Datensätze in der Datenmaske direkt zu bearbeiten oder
korrigieren?
Ja, aber siehe was ich oben schrieb und sag mir wie es
ablaufen soll.
Habe ich bereits erledigt
- Es sollten NUR 31 Datensätze gespeichert werden dürfen, da
die Monate nicht mehr als 31 Tage haben. Jetzt kann man z.B.
Datensatz 32 eingeben, dieser landet dann auf Position 1 in
der Liste
Okay, ich korrigiere das, pro Monat kann man nur noch soviele
tage eingeben wie er Tage im Monat hat.
Ja das ist super. Ich habe das probiert in der Hilf Tabelle.
Habe aber nur mal den jetzigen Monat eingegeben. Keine Ahnung
wie ich das machen muss damit es IMMER automatisch
funktioniert!???
Habe dies bei MSW 2 auch so probiert. Nun Zeigt die Datenmaske
keine Daten mehr an obwohl alle Daten vorhanden sind.
Hab ich noch nicht geschaut nach in mSW2
- Besser wäre wenn jeder Datensatz seinen festen Platz hätte.
D.h. Satz 1 Reihe 3, Satz 2 Reihe 4 usw. Weil es jetzt möglich
ist, bei „Neuer Datensatz“ den Tag zu ändern.
Es gibt zwar den Vorschlag des nächsten Datensatzes (Was super
ist *gefällt mir*) diesen kann man aber ändern,
und somit stimmt die Reihenfolge nicht mehr. Oder aber das
Feld „Tag“ wird gesperrt, so dass man diesen nicht ändern
kann.
Füge bitte auch in Prozedur „Fuellen“ gleich nach dieser
Codezeile:
UF.Controls(„TB1“).Value = Application.Max(.Range(„A1:A34“)) +
1
dies Codezeile ein:
UF.Controls(„TB1“).Enabled=False
Habe ich irgendwie anders gelöst *gg* muss auch nachschauen,
funktioniert aber
Userform Auswahl_MSW:
Habe unten den Text lblkonfiguration eingefügt. Ich möchte die
Userform Konfig dort laden. Habe bei Private Sub
lblKonfiguration_Click() dies eingefügt:
Dim Pw
Pw = InputBox(„Passwort?“)
If Pw = „“ Then Exit Sub
If Pw = „imark“ Then
Konfig.Show 0
Else
MsgBox „falsches Passwort!!!“
End If
End Sub
Nun gibt es einen Fehler aus. Auch wenn ich Call
Konfiguration() eingebe kommt der Fehler. Was mache ich
falsch?
Das steht doch in der Fehlermeldung. Gebunden/ungebunden ist
die Art wie die UF angezeigt wird, das regelst äh steuerst du
mit dem Parameter/Argument nach
.Show
Zum einfachen Verständnis von gebunden, ungebunden, modal,
modeless.
Entweder kannst du wenn die UF sichtbar ist im Blatt
weiterarbeiten oder aber nicht, das geht erst wieder wenn die
UF weg ist.
Und, das ist daraus nicht so weiteres ersichtlich wenn
überhaupt, Excel läßt es nicht zu daß du durch Klick in eine
gebundene UF eine ungebundene UF aufrufst. (Oder umgekehrt,
grad bei Modal vergeig ich oft die 50/50 Chance *ggg*)
Ändere den oberen Teil der IF-Schleife so ab:
If Pw = „imark“ Then
Unload Auswahl_MSW
Konfig.Show 0
Else
Nun funktioniert es (glaub*)
Userform Konfig:
- Beim Klick auf Neuen Monat erstellen kommt die Abfrage:
„Soll die Mappe mit Datumsstempel gespeichert werden?“ Bei
Nein sollte Abbruch. Wollte dies noch nicht ändern,
da ich nicht genau weiss ob ich das darf oder ob dies an einen
speziellen Code gebunden ist.?
Natürlich darfst du in der Mappe alles.
Bei Nein, was genau soll geschehen?
Der Code dazu steht in Modul Konfig, „neuer_monat_klick“.
Bislang wird da nur „Ja“ codiert.
Bei Nein sollte es zurück zur Konfig UF
- Das Abspeichern funktioniert soweit super. habe das
Datumsformat und den Dateinamen angepasst. Bekomme keinen
Fehler…
Ja, dachte ich mir bzw. gehe davon aus deshalb auch meine
nachfrage nach der Version. Der Code ist an sich völlig okay,
läuft in XL 2002, Xl2003, XL2007 nur in meinem XL2000 nicht,
da passiert das was ich da im Excelbrett nachfragte.
Also ein Bug in XL2000, der aber hier keine Rolle spielt da du
kein XL 2000 benutzt.
Und mit den ganzen Mappenversionen, egal, einigen wir uns als
ab jetzt gültige Ausgangsbasis auf die Mappe die du grad in
diesem Beitrag gezeigt hast, also
kwmilch_dispo3.xls.
Die aktuellste Mappe, somit die Ausgangsbasis zu diesem
Beitrag findest Du hier:
http://www.uploadagent.de/show-177806-1316618142.html
Es geht um den Mappenamen. Wie soll eigentlich die Mappe heißen?
Milch_Dispo_2011_09.xls ?
Soll ich dann speichern unter
Milch_Dispo_2011_09.xls
oder
Milch_Dispo_2011_09_21.xls
oder beides?
Der Mappenname soll Milch_Dispo_09_2011.xls heissen (für den
Monat September)
- Es sollten NUR 31 Datensätze gespeichert werden dürfen, da
die Monate nicht mehr als 31 Tage haben. Jetzt kann man z.B.
Datensatz 32 eingeben, dieser landet dann auf Position 1 in
der Liste
Okay, ich korrigiere das, pro Monat kann man nur noch soviele
tage eingeben wie er Tage im Monat hat.
Obwohl, ich warte erstmal ab was du zum Punkt Wochende,auch esetzliche Feiertage sagst.
Je nach jahr kann da schon der höchste tag im Februar der 26te sein.
Habe dies bei MSW 2 auch so probiert. Nun Zeigt die Datenmaske
keine Daten mehr an obwohl alle Daten vorhanden sind.
Wie gesagt, wir arbeiten 365 Tage im Jahr
Ich habe da noch eine Idee. In der „neuen Mappe“ im 1. Teil
der Eingaben (Abladestellen), habe ich mal einen Button
„Zusatz1“ hinzugefügt.
Am schönsten wäre, wenn VBA im Excelblatt die grünen Zellen
ausliest und in der Datenmaske nur soviele Eingabefelder
anzeigt wie es grüne Spalten hat. Zusätzlich noch 3 solche
„Zusatz“-Buttons anzeigt.
Das Problem ist, das jeder LKW verschiedenviele Spalten hat
zum eintragen, jedoch der Fahrer im Stande sein sollte, eine
zusätzliche Spalte zu Beschriften und danach die Litermenge
dort einzugeben.
Also beim Klick auf Zusatz1 öffnet sich eine UF mit der
Abfrage des Spaltentitels (neuer Abladeort), danach schliesst
die UF und der Fahrer kann die Litermenge in der neu
generierten Spalte resp. in dieser Zelle am heutigen Tag
eingeben.
Wenn die Mappe Ende Monat neu abgespeichert und geöffnet wird,
sollte diese ZusatzSpalte aber wieder leer sein, so wie in der
Ausgangsmappe.
Ist das so möglich? Ich habe noch keine UF gezeichnet dafür,
da ich nicht weiss ob es Möglich ist…
Der 2. und 3. Teil der Datenmaske behandeln wir später…
So, nun die Zusammenfassung…
Zusammenfassung ausstehende Aufgaben Teil 1:
- Automatisch Ende Monat abspeichern und neue Mappe mit neuem
Monat generieren
- Wenn in der Datenmaske auf Speichern geklickt wird, die
Mappe Speichern
- Pro Monat nur so viele Datensätze eingeben wie der Monat
Tage hat
- Mappennamen monatlich mit Milch_Dispo_09_2011.xls
abspeichern
- In der Datenmaske die grünen Spalten auslesen und nur diese
zur Eingabe anzeigen. Zusätzlich 3 „Zusatz-Buttons“ anzeigen
lassen um 3 Zusätzliche Abladeorte selber zu generieren.
uiii, grosse Sache, Sorry, aber ich glaube so sollte vieles
klar sein.
Nochmals der Link zur aktuellen Mappe:
http://www.uploadagent.de/show-177806-1316618142.html
Vielen Dank und liebe Grüsse
Sascha