Office: UserForm Daten speichern. Registry oder externe Datei?

Helfe beim Thema UserForm Daten speichern. Registry oder externe Datei? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Aber dann wäre es ja am sinnvollsten, wenn ich die UF zusätzlich noch in ein verstecktes Tabellenblatt maschinenlesbar auslese, mit der ich die UF... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Boerni610, 2. Dezember 2017.

  1. UserForm Daten speichern. Registry oder externe Datei?


    Genau. Die Struktur einer Datenspeicherung müssen nur die Maschine und der Entwickler verstehen. Für eine Ansicht zum Lesen/Ausdrucken für einen User erzeugt man eine Extra-Ausgabe.
    Im Datenbankwesen (wo ich beheimatet bin) ist das üblich. In Tabellen, wo gespeichert wird, hat ein User nichts zu suchen, er bekommt diese auch nicht zu sehen und kann daher auch nicht durch Eigenkreativität und Unverstand Unordnung stiften.

    Stell Dir vor, Deine fettgedruckten Inhalte (Art, Kategorie, Ziel usw.) sind Spaltenüberschriften. Die ausgewählten Inhalte laut Anmeldung schreibst Du dann jeweils in die Zellen unterhalb der Überschrift. Die genannte Spalte G war nur willkürlich.

    Was ich mich so nebenfrei frage: Muss man nach Deiner sehr umfangreichen Anmeldung noch arbeiten, oder ist die Anmeldung die eigentliche Arbeit ...?
     
  2. Ja wunderbar, dann mach ich es so, dass ich in dem verstecken Tabellenblatt für jedes Control eine neue Spalte mache. Ist ja auch nur logisch so wie du das sagst in Bezug auf das Datenbankwesen.
    Für den Menschen bleibt die schönere Version dann sichtbar.

    Dein Code funktioniert auch wunderbar.
    So habe ich das jetzt verstanden wenn ich weitere Controls ergänze:
    Code:
    Zwei Unklarheiten habe ich jedoch aktuell.
    - Wie integriere ich in dem Array die Mehrfachauswahl der Listbox?
    - Wenn ich eine Checkbox mit in den Array nehme, dann ist bei Start der UF immer ein Haken gesetzt (obwohl Value auf False gesetzt ist) allerdings grau hinterlegt, wie wenn sie deaktiviert ist. Wenn ich dann darauf klicke, ist der Haken ganz normal gesetzt.

    Gibt es eigentlich Möglichkeiten die Inhalte eines Arrays auch mehrzeilig zu schreiben? Also wenn ich da jetzt 30 Controls reinschreibe wird das halt bisschen lang.


    Diese Datei ist an sich zur Dokumentation.
    Wenn die Anmeldung durchgeführt wird, wird das "schöne" Excelblatt automatisch per E-Mail verschickt und einzelne Outlooktermine zur Erinnerung gesetzt. Sobald das passiert ist, werden alle Controls auf der Seite Anmeldung gesperrt, so dass keine Änderungen mehr möglich sind.
    Dann wird das angemeldete Projekt durchgeführt.
    Bei Projekt-Ende wird die Abmeldung gemacht. Hier werden einzelne Werte in die Abmeldung übernommen und Controls zur Eingabe freigeschaltet, je nachdem ob ein Eintrag in der Anmeldung vorhanden ist.
    Die Abmeldung wird dann wieder "schön" in ein Blatt geschrieben und ebenfalls wieder per Mail verschickt
     
    Boerni610, 5. Dezember 2017
    #17
  3. Hey Leute,

    vor lauter Freude, über die Hilfe, habe ich gar nicht gecheckt, dass ich in meiner letzten Antwort die Antworten an ebs17 und EarlFred völlig vermischt habe. Tut mir leid.

    @EarlFred:
    Könntest du mir eventuell noch bei deinem Code weiterhelfen? So wie ich schon geschrieben habe, habe ich noch Probleme:
    Wäre cool! Danke
     
    Boerni610, 7. Dezember 2017
    #18
  4. UserForm Daten speichern. Registry oder externe Datei?

    Hallo,

    das Verhalten mit der Checkbox kann ich nicht nachvollziehen.

    Um eine Mehrfachauswahl festzuhalten gibt es verschiedene Ansätze, wie ich schrieb. Das erfordert also eine Beschreibung von Dir, was Du nun brauchst. Von alleine kann ich das nicht raten.
    In den "Einzeler" wirst Du das allerdings nicht direkt bekommen, dafür brauchst Du eine Schleife über alle Elemente der Listbox mit Prüfung auf Selected.

    Grüße
    EarlFred
     
    EarlFred, 7. Dezember 2017
    #19
  5. Oh, das habe ich irgendwie übersehen.
    Also letztendlich reicht es, wenn ich nur die Auswahl mit in das versteckte Tabellenblatt schreibe und nur diese beim erneuten Start der UserForm wieder in die ListBox eingetragen wird.

    Eine Schleife habe ich schon, da ich ja in das "schön" lesbare Blatt auch nur die Auswahl schreibe.
    Bleibt nur die Frage wie ich es mit deiner Variante mache, dass ich die wieder in die UF bekomme.
    Code:
    Grüße, Boerni
     
    Boerni610, 7. Dezember 2017
    #20
  6. Hallo,

    Die Begrenzung auf 65536 Zeilen ist schon lange aufgehoben. Ich hatte in meinem Code eine universelle Methode gezeigt, warum verwendest Du die nicht? Findest Du meine Codes so schlecht?

    Ich stelle auch keine Fragen, weil ich Dich damit ärgern will, sondern weil ich sie für den Lösungsvorschlag für notwendig erachte. Gerne kannst Du diese Rückfragen ignorieren, dann tu ich das mit Deinen Fragen zukünftig aber auch.

    Letzte Hilfe:
    Code:
    Geh sorgsamer mit der Zeit der Menschen um, die Dir kostenlos helfen!

    Grüße
    EarlFred
     
    EarlFred, 7. Dezember 2017
    #21
  7. Mir war nicht klar, dass das grundsätzlich die Methode mit 65536 Zeilen ersetzen soll. Hab auch nicht gesehen, dass du meintest man sollte das immer so machen. Ich war der Meinung, dass man es so oder so machen kann. Kannte weder Vor- noch Nachteile jeder Version.
    Wenn du mir empfiehlst das künftig wegzulassen, dann nehme ich diese Empfehlung gerne an.
    Absolut nicht, sonst würde ich nicht sowas schreiben wie:
    "Dein Code funktioniert auch wunderbar" oder "vor lauter Freude, über die Hilfe...".
    Aber ich werde an meiner Ausdrucksweise arbeiten.
    Das ist mir doch klar und ich war der Meinung tatsächlich auf alles zu reagieren was gefragt wird. Das mit der Listbox hatte ich versemmelt.
    Ich gebe wirklich mein Bestes, möglichst wenig nachzufragen, da mir das tatsächlich auch unangenehm wird! Weil ich genau das nämlich auch denke, dass ich niemanden belästigen will, aber eben sooo gerne diese Datei programmieren will, weil ich es absolut toll finde was man alles machen kann, wenn man es kann *Smilie.
    Deshalb versuche ich auch von Anfang an alles möglichst genau aber nicht zu lang, dennoch übersichtlich zu beschreiben.

    Also tut mir echt leid, wenn es falsch rüber kommt, aber ich bin sehr dankbar!

    Danke für das Code-Update!
    Leider habe ich noch ein Problem.
    Wenn ich die UserForm das zweite mal starten will bekomme ich den "Laufzeitfehler 380. Eigenschaft Selected konnte nicht gesetzt werden. Ungültiger Eigenschaftenwert"
    Betreffende Zeile ist diese hier: Me.ListBox1.Selected(fAuswahl(i)) = True
     
    Boerni610, 7. Dezember 2017
    #22
  8. UserForm Daten speichern. Registry oder externe Datei?

    Es ist nicht die Ausdrucksweise, die Du ändern musst.
    Gerade dann, wenn Du die Vor- und Nachteile der verschiedenen Codevarianten nicht kennst, ist es doch nicht sinnvoll, die Codes zu ändern, die Du hier als Hilfe erhältst. Wenn Du etwas nicht verstehst, dann frage nach, warum das einer so und nicht anders macht.

    nachzufragen ist das beste und sinnvollste, was Du machen kannst. Ich will, dass die Hilfesuchenden nicht nur Code abpinseln, sondern ihn verstehen, damit sie was lernen und demnächst nicht mehr fragen müssen, weil sie sich selbst helfen können.
    Ich erwarte aber, dass Du zuerst selbst versuchst, das Problem zu ergründen.
    Das reine posten des LZF und der betreffenden Codezeile ist zwar eine gute Methode, wenn man eine Lösung vorgekaut bekommen will, aber da Du selbst etwas am Code tun willst, wie Deine Kreativität zeigt, ist es der falsche Weg, weil Du dabei nichts lernst.

    1) Welchen Wert hat fAuswahl(i), wenn der Fehler auftritt?
    2) Welchen Index hat das 1. Element der Listbox?
    3) Auf welches Element der Listbox verweist fAuswahl(i) und welchen Wert hat es?

    Beantworte die Fragen, dann erkennst Du das Problem.
     
    EarlFred, 7. Dezember 2017
    #23
  9. Tu ich eigentlich nicht, zumindest ist es mir in dem Fall gerade gar nicht bewusst.
    Die Schleife für die Listbox (die du in dem Fall ja angesprochen hast) war kein Code von dir, den hatte ich schon und da habe ich das immer so gemacht mit 65536 Zeilen.

    Genau, ich will ihn auch verstehen um das künftig allein hinzubekommen. Hatte nur noch keine Idee was ich falsch gemacht habe, deshalb habe ich den LZF genannt.
    Ich habe am Wochenende nicht ganz so viel Zeit aber werde mal rumbasteln und Bescheid geben, ob ich es lösen konnte.
    Deine Fragen dazu sind auf jeden Fall schon mal hilfreich! Danke!

    Schönes Wochenende!
    Grüße, Boerni
     
    Boerni610, 8. Dezember 2017
    #24
  10. Ich blicke leider nicht so durch wie ich es gern hätte. Ich verstehe die Zusammenhänge noch nicht so ganz.

    Ich kann einen Teil beantworten, komme aber trotzdem noch nicht weiter:
    1) Welchen Wert hat fAuswahl(i), wenn der Fehler auftritt?
    -> Da in das Blatt immer der Index geschrieben wird, hat fAuswahl(i) beim ersten Durchlauf der Schleife immer den Wert des Index des zuerst gewählten Eintrags.
    Also wenn in der Zelle 5;7;9 steht, dann beim ersten Durchlauf 5.
    2) Welchen Index hat das 1. Element der Listbox?
    -> Das 1. Element hat immer 0 als Index.
    3) Auf welches Element der Listbox verweist fAuswahl(i) und welchen Wert hat es?
    -> Es verweist immer auf den Index und hat den entsprechenden Index-Wert.

    Code:
    Verstehe ich so, dass alle Einträge in der Listbox die den entsprechenden Index haben, markiert werden. Sehe ich das falsch?
    Muss man vielleicht irgendwo bei 0 das Zählen beginnen?
     
    Boerni610, 11. Dezember 2017
    #25
  11. das beantwortet die Frage doch nicht.

    Welchen Wert hat denn nun fAuswahl(i) genau zu dem Zeitpunkt, wenn der Fehler auftritt? "5, 7 oder 9" kann ja unmöglich die Antwort sein.
    Und genau dafür ist der Debugger da: Dass man eine Momentaufnahme des Codes analysieren kann - und zwar des Moments, an dem einem die Sauce um die Ohren fliegt.

    auch diese Frage solltest Du Dir beantworten bezogen auf den Moment, wenn der Code mit Fehler abbricht.
     
  12. Also gut, die Zahlen entsprechen ja "i", also wäre der Wert dann "i".
    Wenn das nicht das ist auf was du hinaus willst, dann weiß ich es nicht.

    Der Code bricht immer ab, wenn er diese Zeile erreicht. Gehe das ja Schritt für Schritt über den Debugger durch. Und laut der MsgBox die ich vor die Zeile gesetzt habe, ist i dann immer der erste Wert der im Tabellenblatt steht.
    Ich steh gerade voll auf dem Schlauch. Habe mal versucht das von Grund auf anzugehen und einfach nur einzelne Einträge zu markieren ohne Schleife. Also z.B. so: LB_Thema.Selected(1) = True
    Geht aber auch nicht!

    Selected ist eine Eigenschaft die der Listbox zugeordnet wird. Laut LZF kann diese Eigenschaft aber nicht gesetzt werden.
    Ich checke nicht was ich falsch mache. Ahh
     
    Boerni610, 11. Dezember 2017
    #27
  13. UserForm Daten speichern. Registry oder externe Datei?

    Das war doch alles nicht die Frage. Es interessiert nur der Moment, wenn der Fehler auftritt. Nicht 2 Schleifendurchläufe davor oder danach oder generell. Sondern der Wert, wenn es kracht. Wie schwer kann es sein, das einfach mal mitzuteilen? Und dann mal zu schauen, welchen Eintrag in der Liste Du ansprechen würdest. *rolleyes.gif*

    Bei mir tritt der Fehler z. B. auf, wenn ich ein Element ansprechen will, dessen Index es gar nicht gibt, also z. B. Element 33, wenn die Liste nur 4 Elemente hat.

    Wenn Dir das auch nicht weiterhilft, dann weiß ich auch nicht, wie ich dir helfen soll.
     
  14. Das war das Schlagwort. Oh man, ich bin so ein Horst. So ein banaler Leichtsinnsfehler!
    Mein Fehler lag darin, dass ich den Code zur Definition des Inhalts der ListBox weiter unten stehen hatte. Da kann das natürlich nicht gehen, wenn erst später definiert wird, was überhaupt in der Box ist.

    Danke für deine Hilfe und Geduld!!! Jetzt läuft's!

    Ich hätte noch zwei Fragen zu Array, was ich in einem früheren Beitrag zum Teil schon mal erwähnt habe. Soll ich ein neues Thema aufmachen oder ist das nicht so schlimm wenn ich das hier mit frage?
     
    Boerni610, 11. Dezember 2017
    #29
Thema:

UserForm Daten speichern. Registry oder externe Datei?

Die Seite wird geladen...
  1. UserForm Daten speichern. Registry oder externe Datei? - Similar Threads - UserForm Daten speichern

  2. Daten aus UserForm in Tabellenblatt übertragen

    in Microsoft Excel Hilfe
    Daten aus UserForm in Tabellenblatt übertragen: Hallo zusammen, wieder eine Anfängerfrage. Ich habe eine Userform, deren Daten über einen CommandButton zum Teil in zwei Tabellenblätter übertragen werden. Wie kann ich es verhindern, dass dabei...
  3. Excel VBA Userform Daten aus Tabelle Auslesen "sverweis"

    in Microsoft Excel Hilfe
    Excel VBA Userform Daten aus Tabelle Auslesen "sverweis": Hallo zusammen, ich lerne umständlich ein wenig VBA. Ich benötige mal einen Code von einem Profi, der mir Anregungen gibt zum Üben und Probieren. Eine Tabelle hat in Spalte A eindeutige numerische...
  4. Daten per Userform in Datenbank einlesen

    in Microsoft Excel Hilfe
    Daten per Userform in Datenbank einlesen: Guten Tag zusammen, Ich bräuchte erneut eure Hilfe beim lösen einer Excel Aufgabe. Und zwar geht es darum eine Datenbank in Excel aufzubauen mit der man Daten sammeln kann um diese langfristig...
  5. Daten in Userform einlesen, ändern und zurückschreiben

    in Microsoft Excel Hilfe
    Daten in Userform einlesen, ändern und zurückschreiben: Hallo Zusammen, ich stolpere über einen Fehler, den ich nicht sehe. Ausgang: Tabelle mit 10 Spalten Userform mit 1 ListBox und 7 Textboxen Was funktioniert: In der Listbox werden die Daten der...
  6. daten von userform in tabelle übertragen

    in Microsoft Excel Hilfe
    daten von userform in tabelle übertragen: Hallo zusammen ich möchte von einer userform daten in eine tabelle übergeben. in dieser tabelle wird dann anhand der daten eine distanz berechnet. wenn ich die daten von hand in die tabelle tippe...
  7. Userform Daten ändern / Speichern

    in Microsoft Excel Hilfe
    Userform Daten ändern / Speichern: Hallo zusammen, anbei habe ich meine Datei angehängt. Soweit so gut - wenn ich allerdings einen Datensatz in der Userform auswähle (mit Doppelklick) wird dieser Datensatz nicht entsprechend...
  8. Daten aus Tabelle in Userform und zurück speichern

    in Microsoft Excel Hilfe
    Daten aus Tabelle in Userform und zurück speichern: Hallo an die fleißigen Helfer. Erst einmal ein Dankeschön an alle, die mir bis jetzt geholfen haben. Nun habe ich da ein Problem und komme wirklich nicht weiter. Ich habe hier eine Excel-Datei...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden