mabue88
Goto Top

VBA Excel Multipage - Inhalt einer dynamisch erzeugten Page erstellen?

Hallo Zusammen,

ich habe innerhalb eines kleinen VBA-Programmes in Excel eine Multipage, deren Seiten dynamisch während der Laufzeit erzeugt werden. Welche Seiten erzeugt werden hängt von einer vorherigen Auswahl ab. Nun weiss ich aber nicht, wie ich den Inhalt dieser Pages erstellen kann.
Vielleicht hat jemand ein bisschen Beispielcode dafür.

Vielen Dank schon mal
Mabue

Content-Key: 172541

Url: https://administrator.de/contentid/172541

Printed on: April 19, 2024 at 08:04 o'clock

Member: mabue88
mabue88 Sep 04, 2011 at 13:58:07 (UTC)
Goto Top
Hier noch ein kleiner Zusatz:

Sub Open_Sub()
    MultiPage1.Pages.Add ("Übersicht")  
    
    If Userform1.CheckBox1.Value = True Then
        With MultiPage1
            .Add ("Page1")  
            With .Pages("Page1").Add("Forms.Frame.1")  
                .Left = 6
                .Top = 6
                .Height = 100
                .Width = 100
                .Caption = "test"  
                With .Add("Forms.Textbox.1")  
                    .Left = 6
                    .Top = 6
                    .Visible = True
                    .Height = 88
                    .Width = 88
                End With
            End With
        End With
    End If
End Sub
 

Mit diesem Code erzeuge ich zunächste eine Übersichtsseite und wenn im Userform1 die Checkbox1 = TRUE ist anschließend eine Seite mit dem Namen "Page1". Innerhalb dieser Page1 wird zunächst ein Frame und dann eine Textbox erzeugt. Wie kann ich nun nachdem alles erzeugt wurde zum Beispiel den Inhalt der Textbox bearbeiten?
Mitglied: 76109
76109 Sep 04, 2011 at 16:47:03 (UTC)
Goto Top
Hallo mabue88!

Obwohl ich den Sinn des Ganzen nicht so ganz verstehe, zumal eine MultiPage beim erstellen schon eine Page("Page1") und Page("Page2") enthält und Du mit Deinem Code zusätzlich noch eine Page("Übersicht") und nochmals eine Page("Page1") erstellst?

Destotrotz, gib der TextBox beim Erstellen einen Namen mit:
 With .Add("Forms.Textbox.1", "MyTextBoxName")  

Dann könntest Du die TextBox z.B. so ansprechen
Dim MyText As string

MultiPage1.Pages("XY").Controls("MyTextBoxName").Text = "Test"  

MyText = MultiPage1.Pages("XY").Controls("MyTextBoxName").Text  

Gruß Dieter