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

Labelbeschriftung in einer Userform ...

124 views
Skip to first unread message

Götz Alles

unread,
Aug 25, 2004, 10:12:22 AM8/25/04
to
... abhängig vom Eintrag in eine Textbox einer anderen
Userform

Hallo zusammen,

in der Userform "frmGrunddaten" werden auf einer Multipage
mehrere Daten in Textboxen eingegeben, die wiederum in
einem Frame liegen. Wenn ich es richtig sehe, müßten das 4
Ebenen sein (frmGrunddaten, Multipage, Page und Frame) was
ja noch abbildbar ist.

Wenn jetzt in einer bestimmten Tb in frmGrunddaten "Y"
eingegeben wird, dann soll die Userform "frmInvestvolumen"
aufgerufen werden. Das klappt mit folgender Anweisung auch:
***
Private Sub CboTrancheInvest1_Exit(ByVal Cancel As
MSForms.ReturnBoolean)

Dim i As Integer 'Wird für die Userform Investvolumen
benötigt

i = 1

If CboTrancheInvest1 = "Y" Then frmInvestvolumen.Show

End Sub
***
In der "neuen" Userform (frmInvestvolumen) soll dann ein
Label den Inhalt einer Tb aus frmGrunddaten anzeigen.

Wenn ich das wie folgt versuche:
***
Private Sub UserForm_Initialize()

Dim i As Integer

Label2.Caption =
frmGrunddaten.MultiPage1.page3.Frame8.Controls
("tbTranchenname" & i).Text

End Sub
***
dann bekomme ich den Laufzeitfehler "80070057: Das
angegebene Objekt konnte nicht gefunden werden".

Ändere ich die Zeile in
**
Label2.Caption =
frmGrunddaten.MultiPage1.page3.Frame8.Controls
("tbTranchenname1").Text
**
dann wird der Inhalt korrekt übernommen. Somit ist also
klar, dass der "Pfad" richtig angegeben ist.

Da ich die Userform aber für mehrere Abfragen benutzen
will (für tbTranchenname1 - 9), wollte ich die Variable i
als Zähler verwenden. Dies wird auch später noch nötig
sein, weil von i der Speicherort des in frmInvestvolumen
eingegebenen Wertes abhängen wird.

Wie muß ich denn die Anweisung ändern, damit sie variabel
gehalten ist? Bzw. wie kann ich erreichen, dass der Wert
von i beim Wechsel von frmGrunddaten auf frmInvestvolumen
nicht verloren geht?

Vielen Dank schon einmal im Voraus.

cu
Götz
**
Excel 2000

Melanie Breden

unread,
Aug 25, 2004, 11:21:14 AM8/25/04
to
Hallo Götz,

Götz Alles schrieb:


> in der Userform "frmGrunddaten" werden auf einer Multipage
> mehrere Daten in Textboxen eingegeben, die wiederum in
> einem Frame liegen. Wenn ich es richtig sehe, müßten das 4
> Ebenen sein (frmGrunddaten, Multipage, Page und Frame) was
> ja noch abbildbar ist.

> In der "neuen" Userform (frmInvestvolumen) soll dann ein


> Label den Inhalt einer Tb aus frmGrunddaten anzeigen.
>
> Wenn ich das wie folgt versuche:
> ***
> Private Sub UserForm_Initialize()
>
> Dim i As Integer
>
> Label2.Caption =
> frmGrunddaten.MultiPage1.page3.Frame8.Controls
> ("tbTranchenname" & i).Text
>
> End Sub

welchen Wert übergibst du mit i?
Bei mir funzt folgender im Codemodul "frmInvestvolumen" :

Private Sub UserForm_Initialize()
Dim i As Integer

i = 1
frmInvestvolumen.Label2.Caption = _
frmGrunddaten.MultiPage1.Page3.Frame8.Controls("tbTranchenname" & i).Text
End Sub

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#

Melanie Breden

unread,
Aug 25, 2004, 11:32:21 AM8/25/04
to
Hallo Götz,

> Götz Alles schrieb:


> welchen Wert übergibst du mit i?
> Bei mir funzt folgender im Codemodul "frmInvestvolumen" :
>
> Private Sub UserForm_Initialize()
> Dim i As Integer
> i = 1
> frmInvestvolumen.Label2.Caption = _
> frmGrunddaten.MultiPage1.Page3.Frame8.Controls("tbTranchenname" & i).Text
> End Sub

habe deinen Denkfehler gefunden.
Du deklarierst i in der ersten UserForm auf Modulebene eines Klassenmoduls.
Deklariere i global in einem Standardmodul, dann funzt es:

'Standardmodul
Public i As Integer

' frmGrunddaten


Private Sub CboTrancheInvest1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

i = 1
If CboTrancheInvest1 = "Y" Then frmInvestvolumen.Show
End Sub

' frmInvestvolumen
Private Sub UserForm_Initialize()

Götz Alles

unread,
Aug 26, 2004, 2:41:12 AM8/26/04
to
Hallo Melanie,

>habe deinen Denkfehler gefunden.
>Du deklarierst i in der ersten UserForm auf Modulebene
>eines Klassenmoduls.
>Deklariere i global in einem Standardmodul, dann funzt es:
>
>'Standardmodul
>Public i As Integer
>
>'frmGrunddaten
>Private Sub CboTrancheInvest1_Exit(ByVal Cancel As
>MSForms.ReturnBoolean)
>i = 1
>If CboTrancheInvest1 = "Y" Then frmInvestvolumen.Show
>End Sub
>
>' frmInvestvolumen
>Private Sub UserForm_Initialize()
> frmInvestvolumen.Label2.Caption = _
> frmGrunddaten.MultiPage1.Page3.Frame8.Controls
>("tbTranchenname" & i).Text
>End Sub

Jaha, genau so funktioniert es! Diese "Übergabeanweisung"
hatte mir gefehlt.

Herzlichen Dank für Deine Hilfe! Mal wieder schnell und
perfekt erkannt und gelöst. :-)

cu
Götz

0 new messages