Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CONTROLS zur Laufzeit erzeugen

39 views
Skip to first unread message

Moppi

unread,
Sep 8, 2009, 7:25:04 AM9/8/09
to
Hallo,

ich bin auf folgendes Beispiel gestossen.

http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tutorial/tutorial027.shtml

Leider lassen sich die Beispiele nicht runterladen. Insbesondere
interessiert mich das Beispiel 3.

Zum Hintergrund. Ich möchte eine Art Vorgangsverwaltung in Excel über
eine Userform machen. Die Tabelle sieht ungefähr so aus.

Name | Datum | IN | OUT | Vorlage | Dokument

Die Namen wiederholen sich. Es kann zu einem Namen mehrere Daten oder
keine geben. Die Daten sind sortiert nach Name und Datum.
Die Ausgabe soll auf einer Userform ausgegeben werden. Nun ist es ja
nicht sinnvoll bei unbekannter Anzahl die Felder vorzubelegen.
Vielleicht hat jemand noch eine andere Idee wie man das am besten
umsetzen kann.
Excel 2002

Vielen Dank im Voraus.

Grüße Jan

Alexander Wolff

unread,
Sep 8, 2009, 9:38:17 AM9/8/09
to
>Zum Hintergrund. Ich m�chte eine Art Vorgangsverwaltung in Excel �ber
>eine Userform machen. Die Tabelle sieht ungef�hr so aus.

>
>Name | Datum | IN | OUT | Vorlage | Dokument
>
>Die Namen wiederholen sich. Es kann zu einem Namen mehrere Daten oder
>keine geben. Die Daten sind sortiert nach Name und Datum.
>Die Ausgabe soll auf einer Userform ausgegeben werden. Nun ist es ja


Eigentlich sinngem�� wie in Access (dort mit Haupt- und Unterformular).

Das Hauptformular enth�lt bei der Relation 1:n die 1, das Unterformular die
1.

In Excel w�re das entsprechend ein Control, welches Listen darstellen kann.
--
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2


Moppi

unread,
Sep 8, 2009, 10:43:24 AM9/8/09
to
On 8 Sep., 15:38, "Alexander Wolff" <oo...@gmx.de> wrote:
> >Zum Hintergrund. Ich möchte eine Art Vorgangsverwaltung in Excel über
> >eine Userform machen. Die Tabelle sieht ungefähr so aus.

>
> >Name | Datum | IN | OUT | Vorlage | Dokument
>
> >Die Namen wiederholen sich. Es kann zu einem Namen mehrere Daten oder
> >keine geben. Die Daten sind sortiert nach Name und Datum.
> >Die Ausgabe soll auf einer Userform ausgegeben werden. Nun ist es ja
>
> Eigentlich sinngemäß wie in Access (dort mit Haupt- und Unterformular).
>
> Das Hauptformular enthält bei der Relation 1:n die 1, das Unterformular die
> 1.
>
> In Excel wäre das entsprechend ein Control, welches Listen darstellen kann.

> --
> Moin+Gruss Alexander - MVP for MS Excel -www.xxcl.de- mso2000sp3 --7-2

Hallo,

ok sowas ähnliches hab ich gesucht. Wie bekomme ich es hin dass
mehrere Zeilen angezeigt werden, wenn z.b. der Zellinhalt so aussieht:

das ist Text1
leerzeile
text 2


und am besten scrollen können den Text und Text markieren in
Folgespalten?
Danke schonmal.

Andreas Killer

unread,
Sep 9, 2009, 3:14:05 AM9/9/09
to
Moppi schrieb:

> http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tutorial/tutorial027.shtml
> Leider lassen sich die Beispiele nicht runterladen. Insbesondere
> interessiert mich das Beispiel 3.

Lad Dir mal das runter, das ist schon fertig:

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

Im Prinzip ist es genau wie das Beispiel 3 aufgebaut, das Passwort f�r
den Code k�nntest Du Dir kaufen, musst Du aber nicht.

Die Passage die f�r Dich interessant ist, ist ja die wie Du die
Textfelder in den Frame bekommst und das relativ einfach, wenn man
wei� wie. ;-)

Zuerst gestaltest Du Deine Userform im VBA-Editor mitsamt dem Frame,
Button's, etc.

In der Sub UserForm_Initialize() f�gst Du dann die Textboxen hinzu,
genau wie es das Beispiel auf vb-Fun.de zeigt, jedoch mit dem
Unterschied das Du nicht Me.Controls.Add(... sagst, sondern
Frame1.Controls.Add(... sagst. Das ist schon das ganze Geheimnis.

Wenn Du sie dann hinzugef�gt hast, musst Du sie nat�rlich noch
positionieren, damit sie untereinander zu sehen sind und nicht
�bereinander.

Um den Scrollbar des Frame brauchst Du Dich nicht zu k�mmern, der
funktioniert von alleine, muss ihn nur in den Eigenschaften anschalten.

Wenn Du nun mehrere Textzeilen in einer Textbox haben willst, dann
geht das in etwa so:

Set NewControl = CurrentFrame.Controls.Add("forms.textbox.1")
NewControl.ScrollBars = fmScrollBarsBoth

NewControl.MultiLine = True
NewControl.WordWrap = False

Einen kleinen Haken gibt es noch beim �bertragen eines mehrzeiligen
Textes in eine Zelle, hierbei muss Du via

Replace(Textbox.Text, Chr(13) & Chr(10), Chr(10))

die Zeilenumbr�che tauschen, sonst hast Du nachher "eckige K�stchen"
im Text der Zelle.

Andreas.

Moppi

unread,
Sep 9, 2009, 6:04:39 AM9/9/09
to
On 9 Sep., 09:14, Andreas Killer <andreas.kil...@gmx.net> wrote:
> Moppi schrieb:
>
> >http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tutorial/tutorial027....

> > Leider lassen sich die Beispiele nicht runterladen. Insbesondere
> > interessiert mich das Beispiel 3.
>
> Lad Dir mal das runter, das ist schon fertig:
>
> http://spreadsheetpage.com/index.php/dataform/home/
>
> Im Prinzip ist es genau wie das Beispiel 3 aufgebaut, das Passwort für
> den Code könntest Du Dir kaufen, musst Du aber nicht.
>
> Die Passage die für Dich interessant ist, ist ja die wie Du die

> Textfelder in den Frame bekommst und das relativ einfach, wenn man
> weiß wie. ;-)

>
> Zuerst gestaltest Du Deine Userform im VBA-Editor mitsamt dem Frame,
> Button's, etc.
>
> In der Sub UserForm_Initialize() fügst Du dann die Textboxen hinzu,

> genau wie es das Beispiel auf vb-Fun.de zeigt, jedoch mit dem
> Unterschied das Du nicht Me.Controls.Add(... sagst, sondern
> Frame1.Controls.Add(... sagst. Das ist schon das ganze Geheimnis.
>
> Wenn Du sie dann hinzugefügt hast, musst Du sie natürlich noch

> positionieren, damit sie untereinander zu sehen sind und nicht
> übereinander.
>
> Um den Scrollbar des Frame brauchst Du Dich nicht zu kümmern, der

> funktioniert von alleine, muss ihn nur in den Eigenschaften anschalten.
>
> Wenn Du nun mehrere Textzeilen in einer Textbox haben willst, dann
> geht das in etwa so:
>
>    Set NewControl = CurrentFrame.Controls.Add("forms.textbox.1")
>    NewControl.ScrollBars = fmScrollBarsBoth
>
>    NewControl.MultiLine = True
>    NewControl.WordWrap = False
>
> Einen kleinen Haken gibt es noch beim Übertragen eines mehrzeiligen

> Textes in eine Zelle, hierbei muss Du via
>
> Replace(Textbox.Text, Chr(13) & Chr(10), Chr(10))
>
> die Zeilenumbrüche tauschen, sonst hast Du nachher "eckige Kästchen"

> im Text der Zelle.
>
> Andreas.

hi,

danke das hilft mir weiter ..

grüße

0 new messages