Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Eingabemaske für Tabelle via VBA ?

Betrifft: Eingabemaske für Tabelle via VBA ? von: kiwi279
Geschrieben am: 13.08.2008 21:10:33

Hi Ihr,

habe eine größere Adressdatenbank als Excel-Datei.

Der Inhalt sind normale Adressen, zu denen in jeder Spalte separat bestimmte Informationen (Nachname, Vorname, Email, Geburtstag, Beruf etc.) abgelegt sind.

Da die Datensätze immer wieder ergänzt und aktualisiert werden, ist das Suchen mit STRG + F und zellweise Eintragen aus meiner Sicht etwas mühsam und umständlich.

Gibt es über VBA evtl. die Möglichkeit, eine Art Such- u. Eingabemaske zu basteln, die Datensätze aus der Tabelle aufruft u. evtl. Änderungen in die Tabelle übernimmt, ähnlich wie in einer Access-Datenbank ???

Leider haben nicht alle Anwender der Datei Access, so dass ich mich hier mit Excel allein auskommen muss... :-)

Das Hauptblatt der Datei habe ich im Anhang mal mit dazu gepackt (aus Datenschutzgründen wurden die persönlichen Daten auf jeweils einen Buchstaben / eine Zahl reduziert)...:

https://www.herber.de/bbs/user/54588.zip

VG u. vielen Dank Euch für jeden Tipp !
Micha

  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: Herby
Geschrieben am: 13.08.2008 21:36:14

Hallo Micha,


mit dem Befehl

Worksheets(1).ShowDataForm

kannst du die Datenmaske von Excel in dein Makro einbinden.
Er entspricht im Menü dem Befehl: Daten - Maske. Ist zur Datenerfassung
etwas einfacher für einen unbedarften Anwender.

Viele Grüße

Herby


  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: kiwi279
Geschrieben am: 13.08.2008 22:24:17

Hi Herby,

vielen Dank für die schnelle und so simple Lösung - das ist fast schon das, wonach ich gesucht habe: :-)

Kann man diese Maske auch so abändern, dass man beim Aufruf mehrerer Datensätze bei Bedarf auch gleich in jedem Änderungen vornehmen und speichern kann ?

Wenn ich die Standard-Maske verwende, gelingt mir das immer nur bei einem Datensatz, während beim Springen zum nächsten die Änderungen am vorherigen und anschließendem Schließen der Maske nicht übernommen werden.

Hoffe, Du verstehst, was ich meine...?! :-)

VG u. einen schönen Abend,
Micha


  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: Ramses
Geschrieben am: 13.08.2008 22:29:38

Hallo

"..beim Aufruf mehrerer Datensätze bei Bedarf auch gleich in jedem Änderungen vornehmen und speichern..."

Ich glaube du musst hier nochmal über die Bücher.
Mit jeder Maske wird immer nur EIN Datensatz bearbeitet.

":...Hoffe, Du verstehst, was ich meine...?! :-)..."
Ja, tue ich. Allerdings werde ich mich hüten sowas zu programmieren :-)

Gruss Rainer


  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: Herby
Geschrieben am: 13.08.2008 22:53:47

Hallo Micha,

dazu ist die Datenmaske von Excel leider zu unflexibel. Eine
flexiblere Lösung findest du als AddIn auf dieser Seite:


http://spreadsheetpage.com/index.php/dataform/home

Allerdings löst sie dein Problem, mehrere Datensätze gleichzeitig
anzuzeigen und zu bearbeiten auch nicht auf dem direkten Weg.
Sie zeigt allerdings auch den gerade in der Datenmaske ausgewählten
Datensatz in der Exceltabelle unterlegt an. So ist es dann ein
leichtes, dort den nachfolgenden bzw. vorhergehenden Satz zu
ändern.

Wenns allerdings eine individuelle Lösung sein soll, dann führt an einer
aufwendigen Programmierung kein Weg vorbei.

Viele Grüße

Herby


  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: Uduuh
Geschrieben am: 13.08.2008 21:41:55

Hallo,
glaubst du, das sich das jemand ernsthaft anschaut? Makros in einem geschützten Projekt.
Normales Verfahren bei fremden Dateien: Mit deaktivierten Makros öffnen, nachschauen was passieren kann und dann evtl wieder öffnen.

Deine Absicht kann man verwirklichen, ist aber recht aufwändig.

Gruß aus’m Pott
Udo



  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: kiwi279
Geschrieben am: 13.08.2008 22:19:44

Hallo Udo,

die Datei war nur dafür gedacht, den Aufbau der Spalten zu zeigen - natürlich kann ich den Schutz aber auch rausnehmen...:

https://www.herber.de/bbs/user/54590.zip

VG,
Micha


  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: hary
Geschrieben am: 13.08.2008 22:49:38

Hallo Kiwi
Habe mir auch mal sowas zusammengebastelt. Mit Bild anzeige usw.
Hab ein Beispiel geladen, aber wie Udo sagte...: Deine Absicht kann man verwirklichen, ist aber recht aufwändig.

https://www.herber.de/bbs/user/54591.xls
Gruss Hary


  

Betrifft: AW: Eingabemaske für Tabelle via VBA ? von: kiwi279
Geschrieben am: 13.08.2008 22:58:54

Hi Hary,

vielen Dank für die Datei !

Das wäre genau das, wonach ich gesucht habe (ohne das Bild, da bei mir nur reine Daten)...!

Ist klar, dass Du das nicht einfach mal so schnell schnell für andre programmieren kannst - mir wäre schon riesig geholfen, wenn ich Deinen Code mit ein wenig Hilfe dazu bekommen könnte, ich würde dann einfach probieren, es auf meine Tabelle hin anzupassen...

VG u. einen schönen Abend Dir,
Micha


  

Betrifft: AW: an alle !! von: hary
Geschrieben am: 14.08.2008 18:24:52

Hallo Micha
Habe leider erst am WE Zeit. Vieleicht kann in der Zeit jemand anders helfen. Deshalb Frage offen.Mein VBA-Level liegt ungefaehr bei 3-, deshalb dauert es bei mir durch Rueckschlaege etwas laenger ;-))
Meine Code wird Dir nix nuetzen, da ich diese Userform plus anderen Code unter anderen Bedingungen eingebaut habe. Dieser Code, der drin ist, war nur zur Anschau eingebaut. Werd's trotzdem Versuchen. Versuche mal einen neuen Thread mit dieser Mappe zu oeffnen, vielleicht gehts dann schneller.
Gruss Hary
Wegen mir schau am Montag noch mal hier rein


  

Betrifft: AW: an alle !! von: kiwi279
Geschrieben am: 15.08.2008 07:37:21

Hi Hary,

vielen Dank für die Nachricht ! :-)

Ist gar kein Problem, wenns ein paar Tage dauert - ich bin für jede Hilfe dankbar ! :-)

VG u. ein schönes WE Dir - danke,
Micha


  

Betrifft: AW: fertig von: hary
Geschrieben am: 16.08.2008 14:20:00

Hallo Micha

Ging doch schneller wie gedacht. Ist aber meine Tabelle. Erklaerung im Textfeld. Hoffe das die Makros Dir weiterhelfen, evtl die Tabelle als Ausgang oder was weiss ich.;-)

Wuerde mich trotzdem auf eine Rueckmeldung freuen, da ich das nur spasseshalber mache. Und ich mich freue wenns ohne Fehler laeuft.

https://www.herber.de/bbs/user/54648.xls


Gruss Hary


  

Betrifft: AW: fertig von: kiwi279
Geschrieben am: 17.08.2008 16:06:22

Hi Hary,

das ging ja wirklich schnell - vielen vielen Dank dafür ! :-)

Parallel zu Deiner habe ich auch noch eine Anwort von Herby mit einer ganz ähnlichen Lösung bekommen. ;-)

Beides ist fast ganz genau das, wonach ich gesucht habe, wobei die Lösung von Herby noch ein klein bisschen näher dran war, da der Aufbau hier nach Zeilen und nicht nach Spalten verläuft - ich werde Deine Datei aber auf jeden Fall auch gleich testen und geb Dir gerne noch eine Rückmeldung dazu ! :-)

Bis dahin viele Grüße aus Franken und Dir noch einen schönen Nachmittag - und nochmals danke,
Micha


  

Betrifft: Erfassungsmaske für Tabelle von: Herby
Geschrieben am: 17.08.2008 15:12:11

Hallo Micha,

ich hab mal eine individuelle Datenmaske für deine Tabelle erstellt und den Auswahlpunkt für die Neuerfassung von Daten mit einem Makro unterlegt.
Für Änderungen und Löschungen kannst du mal pobieren und ggf. nochmals nachfragen.
Die Spalten, die in der Tabelle gruppiert sind, habe ich nicht in die Maske mit aufgenommen. Sollten
diese ebenfalls aufgenommen werden, dann kannst du ja die Textboxen anlegen und analog den vorhandenen Procedere in das Makro mit einbinden. Ggf. kannst du auch hier nochmals nachfragen.

https://www.herber.de/bbs/user/54669.zip



Viele Grüße

Herby


  

Betrifft: AW: Erfassungsmaske für Tabelle von: kiwi279
Geschrieben am: 17.08.2008 16:02:07

Hi Herby,

vielen vielen Dank für Deine Email - das ist (fast) genau das, wonach ich gesucht habe ! :-)

Ich bräuchte tatsächlich alle Spalten von A bis X in der Maske, aber das kann ich hoffentlich aus Deinem Code heraus anpassen... ;-)

Was mir noch nicht ganz klar ist, ist das Ändern eines Datensatzes bzw. das Speichern der Änderungen - kannst Du mir sagen, was hierzu noch notwendig ist ?

Vielleicht kannst Du mir auch noch bei folgenden 2 Fragen helfen - ich weiss, das ist viel verlangt, aber es wäre echt eine riesen Hilfe für mich (und für einen guten Zweck): :-)

1) Könnte man das Makro so anpassen, dass es bei Aktivierung jeweils den Datensatz der aktuellen Zeile übernimmt/anzeigt ?

2) Gibt es eine Möglichkeit, das Ganze mit einer Suchfunktion (nur für die Nachnamen) zu kombinieren ???

Alles andere ist wirklich spitze und schon dafür bin ich Dir echt riesig dankbar !!!

VG aus Franken u. Dir noch einen schönen Nachmittag,
Micha


  

Betrifft: AW: Erfassungsmaske für Tabelle von: Herby
Geschrieben am: 17.08.2008 23:35:17

Hallo Micha,

hier das aktualisierte Workbook.

https://www.herber.de/bbs/user/54689.zip

a) sobald die Datenmaske aktiviert wird und die aktive Zelle im gültigen Bereich liegt, wird automatisch
der Datensatz dieser Zeile aktiv in der Datenmaske angezeigt.

b) Wenn in der Listbox der Nachname, oder auch nur die ersten Buchstaben des Nachnamens
eingegeben werden, wird bei jedem erfassten Buchstaben nach dem passenden Wert in in der
Listbox gesucht und der Name in der Listbox angezeigt.
Damit der Name auch im Worksheet angezeigt wird, ist nur noch ein Doppelklick in der Listbox
zu vollziehen, schon wird in der Exceltabelle der entsprechende Datensatz angezeigt.

c) Das Ändern eines Datensatzes funktioniert im Prinzip analog der Neuerfassung:
- zuerst den zu ändernden Datensatz vom Anwender auswählen lassen
i.d.R. wird es der Datensatz sein, der aktiv ist.
- diesen zu ändernden Datensatz in der Datenmaske anzeigen
i.d.R. mit der Zuweisung (Beispiel: Textbox1.Text=worksheets("xxx").cells(xx,yy)
- Änderung vornehmen lassen und Änderung ggf. auf Plausi prüfen
- geänderten Datensatz speichern (i.d.R. den bisherigen Datensatz überschreiben)

Am besten zuerst an einem einfachen kleinen Beispiel ausprobieren !


Viele Grüße

Herby







  

Betrifft: AW: danke fuer die Rueckmeldung von: hary
Geschrieben am: 18.08.2008 13:12:32

Hallo Micha
Wie ich sagte, hier im Forum liegt mein vba-Level bei 3-, und war ja nur als Ansatz gedacht. Denn eigentlich finde ich es manchmal schade das es heisst es geht nicht, ohne auch nur den Hauch eines Ansatzes zu geben( kommt aber selten vor). Und es findet sich trotzdem einer, der eine Loeung parat hat, siehe herby. Habe mir seinen Code angesehen,nur so lernt man!!!
Dank auch an Herby.

Gruss Hary


 

Beiträge aus den Excel-Beispielen zum Thema "Eingabemaske für Tabelle via VBA ?"