Clever-Excel-Forum

Normale Version: Eingabemaske
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Moin Fred,

einfach mal als Einstieg in das Thema Set / Get / Edit-Data mit einer Userform, wirf doch mal einen Blick nach hier

Vielen der bisherigen Einwände der Kollegen stimme ich zu, besonders in Bezug auf Deine Datenstruktur. Allein eine Anonymisierung zwischen der Anzahl der erlegten Flöhe und den Namen der Stubentiger (bzw. ihrer Halter) würden mich veranlassen, diese Daten zu trennen, wofür Du dann schon kaum noch eine Userform benötigen würdest.

Aber es gibt m.E. durchaus sinnvolle Szenarien, in denen USF viel Ärger ersparen. Habe ich im Link oben beschrieben.

Schöne Grüße
@  d'r Bastler
Ich halt mich sonst eigentlich mit Anmerkungen sehr zurück, aber diesmal muss ich doch darauf reagieren, da du zu einem grundsätzlichen Denkfehler rätst/verleidest.
Hast du dir das Tabellenblatt mal angeschaut. Dort gibt es 2 Tabellen.
Da kommt man mit:
Code:
r = ActiveSheet.UsedRange.Rows.Count
nicht klar. Zumal auf Grund der zu erwartenden unterschiedlichen Zeilenzahl es so keinen Sinn macht.
Um eine sicher funktionierende Abgrenzung mit wenig Programmieraufwand zu erreichen funktioniert der Weg über formatierte (intelligente) Tabellen am besten.
Der Link ist sicherlich gut gemeint aber leider irreführend und macht nur bei einer Tabelle auf einem Tabellenblatt Sinn.
Ach ja, da du als Helfer nicht weißt wieviel Zeilen in einer Tabelle enthalten sind, sollte man solche (r) Variablen besser als Long deklarieren.
Besser ist es einfach zu so zu helfen, dass es einfach nur hilft - still und bescheiden.

Gruß Uwe
Hallo Uwe

Erstmal vielen Dank für deine Erweiterung von dem VBA Code.
Nun muss ich schauen ob ich noch die anderen besagten Punkte mit eingebunden bekomme, schauen was das Netz so her gibt.
Bin bisher noch nicht zum eigentlich gewolltem Ziel gekommen.
Ich gehe ja mal davon aus, dass Ivan 16 "eigentlich" der Threadersteller Fredl55 ist.
(mit den Accounts durcheinander gekommen?)

Uwes Beispiel macht exakt das, was Du(?) in der Threaderöffnung wolltest!
Meine Frage willst Du nicht beantworten?

Ich wiederhole sie:
Welche Nachteile erhoffst Du durch ein Userform zu verhindern?

Du bist auf dem besten Weg, bald bei #42 zu landen, ohne dass Du weiter bist.
Hallo Ralf

Zitat:Ich gehe ja mal davon aus, dass Ivan 16 "eigentlich" der Threadersteller Fredl55 ist.
(mit den Accounts durcheinander gekommen?)

Ein absolutes nein bin ich nicht!!
Mich hat dieses Thema gerade für mein Problem auch sehr interessiert.
Warum sollte man mehrere Thread mit dem fast genau gleichem Problem erstellen?
Moin Egon/Uwe,

Danke für die Rückmeldung, die deutlich macht, dass Du meine einleitenden Sätze "Einstieg" entweder überlesen oder nicht verstanden hast. Schade.

Ich hatte nicht vor, hier sofort eine komplette Lösung einer zwei Tabellen-Mappe zu liefern, sondern einen allgemein verwendbaren Zugang zu set = Schreibe Daten + get = Hole Daten + edit = Bearbeite Daten. In meinem Beispiel-Code beziehe ich mich deshalb exemplarisch und bewusst nur auf zwei Spalten und eine Tabelle.

Mit entsprechenden Bezügen kann man für jede beliebige Tabelle mit UsedRange.Rows.Count (und/oder auch .Columns.Count) die richtige Zielzelle ermitteln. Ob man das dann mit Worksheets("Katzen").Activate oder Public wsF as Worksheet und Set wsF = Worksheets("Flöhe") oder = Worksheets("Juckreiz") macht, ist letztlich egal.

Zur Ermittlung der ersten freien Zeile oder Spalte kannst Du da mal hier noch einmal nachschauen/...denken. Dort übrigens auch ein Hinweis auf Long/Integer...

In aller Bescheidenheit: Schönen Abend noch!
@RPP63

Zitat:Welche Nachteile erhoffst Du durch ein Userform zu verhindern?

Moin Ralf,

vielleicht für die aktuelle Anfrage nicht zutreffend, aber allgemein: man nehme z.B. eine Tabelle, in der die Zählerstände für alle verfügbaren Energiekosten in einem Mehrfamilienhaus erfasst werden und zur Laufzeit per einer Phalanx von Formeln  berechnet werden. 

Die Eingabe erfolgt über eine USF, die sich beim Öffnen des Workbooks automatisch mit aktuellem Datum, Zeit und Benutzer vorbelegt öffnet, eine Combobox mit den Zählern enthält, die nur noch ausgewählt werden muss (eventuell sogar auch pro Benutzer vorbelegt) und schon wird per CommandButton der neue Zählerstand, der, irgendwo in Spalte mitte/links und Zeile unterhalb der Gürtellinie eingetragen werden soll und die (die Energiewirtschaft nennt das Projektion) errechnet, wie der Verbrauch in diesem Gebäude sich wohl entwickeln wird, ob eine Partei eher eine Erstattung oder eine Nachforderung erwarten darf.

Normaluser tendieren bekanntlich eher zu unpfleglichem Umgang mit solch komplexen Tabellenstrukturen. Jetzt hat der Kollege ITler die Wahl: Alles Zellenweise ausblenden, schützen und verstecken oder einfach der Tabelle einmal den Weg nach hidden zu weisen und den Benutzern eine komfortable Userform vor die Nase zu setzen.

Dies Beispiel ist einer der Gründe, warum ich USF durchaus mag ...  21

Schöne Grüße und einen ebensolchen Abend!
@d'r Bastler:
selbst in deinem genannten Beispiel sehe ich keinen Grund eine Userform einzusetzen. Wenn ich Zählerstände erfassen will, kann ich das wunderbar mit einer gewöhnlichen Tabelle machen (ev. auch mit einer intelligenten Tabelle, da das Formeln idR vereinfacht). Die Auswertung erfolgt dann auf einem eigenen Blatt.

Der Vorteil der einfachen Tabelle: ich kann ohne großes Mausgedöns und sinnloses Rumgeklicke wunderbar meine Daten pflegen. So nach dem Motto, "oha, gestern habe ich wohl aus versehen vergessen einen Zählerstand einzutragen - hole och mal kurz nach" oder "am Monatsanfang ist offensichtlich statt 12345 123455 eingegeben worden - korrigiere ich mal schnell". Unter anderem fallen solche Fehler in einer kompakten Eingabeliste viel besser auf, als wenn man für jeden Datensatz erst mal in die Userform gehen muss (da die Liste zu unübersichtlich ist).

Außerdem ist es mit einer gewöhnlichen Excel-Zelle viel einfacher Eingaben auf Plausibilität bzw. Korrektheit (Stichwort Datenüberprüfung) zu prüfen.

Also zumindest ist mir bisher noch keine einzige Excel-Datei untergekommen, in der eine Userform zur Dateneingabe(!) besser gewesen wäre als ein ganz normales Excel-Blatt (ev. unterstützt durch VBA-Programmierung für z.B. Zeitstempel). Für andere Dinge wie z.B. Abfragen nach dem Motto "wie viele Seiten sollen in welchem Format gedruckt werden" oder "wo soll gespeichert werden" sieht das sicherlich anders aus. Wobei ich bei diesen beiden Beispielen dann eher auf die Standard-Dialoge zurückgreifen würde. Aber das Prinzip sollte klar sein.

Und von wegen "unbedarfte User sollen geleitet werden und keine Fehler machen können": Wir haben viele Erfassungslisten für Auswertungen bei uns in der Fertigung im Einsatz. Diese werden auch von Arbeitern ausgefüllt, die überhaupt keine Ahnung von Excel haben. Denen zeigt man einmal, wie man das Programm aufruft und beendet und wie man die Werte eingibt und schon läuft es. Die Listen müssen nur verständlich und durchdacht sein.
Einhellige Meinung unserer User: Ist viel besser so, als wenn ich erst einen Button drücken muss und dann jedes Feld mit der Maus anklicken muss. Und dann nochmals auf OK klicken muss.
Ja, ich weiss, man kann die Felder auch mit der TAB-Taste anwählen, aber bis du es schaffst, das den Leuten beizubringen, hast du denen längst den Umgang mit einer normalen Excel-Tabelle beigebracht.

Meine persönliche Erfahrung: schreibe alles, was du an Textboxen in einer geplanten Userform zur Datenerfassung benötigst, in benachbarte Spalten einer (intelligenten) Tabelle und lass die Leute direkt damit arbeiten. Dies ist wesentlich effizienter als jegliche Userform.
Hallo Helmut,

in diesem konkreten Beispiel teile Ich deine Auffassung zum Thema UserForms durchaus. Sehe das aber nicht so grundsätzlich. Ganz gerne verwende ich sie, um bestimmte Eingaben zu erzwingen (bzw. zu erleichtern), gut kann man auch mit Datenüberprüfungen machen. Der Aufwand so etwas zu programmieren sollte schon in einem Verhältnis zum Nutzen stehen. 
Bezogen auf dieses Anfrage verweise ich auf meine Antwort unter #2. Zwei Listen auf einem Tabellenblatt, das geht gar nicht, kann man auch mit einem Userform nicht verbessern, das ist einfach nur Murks.
Moin allerseits!

Schön, dass sich hier eine Diskussion entwickelt. Lässt sie doch dem Fragesteller die (qualifizierte) Möglichkeit aus mehreren Herangehensweisen die für ihn passende zu wählen.

Dankeschön!
Seiten: 1 2 3 4