Active Control Finden
#11
Hallo,

nach ein paar Versuchen kam ich zu:

Code:
Sub T_1()
Dim Tst As TabStrip
Dim Tb As Object 'as Tab geht nicht <<<<<<<<<<<<<<<<

Set Tst = UserForm1.TabStrip1
    For Each Tb In Tst.Tabs
        Debug.Print Tb.Name
    Next Tb
End Sub

Auch wenn meinem Xl "Option explicit" nicht gesetz ist, wird eine Dimensionierung angefordert (?), bei "TabStrip" ging es noch, aber "Dim as Tab" wollte der Compiler nicht.

Ich habe keinen Weg gefunden, die Ojekte der Tabs auszulesen.

mfg
Top
#12
Code:
Private Sub UserForm_Click()
    MsgBox "TabStrip1.Value" & vbTab & vbTab & TabStrip1.Value & vbLf & "TabStrip1.Tab.Caption:" & vbTab & TabStrip1.Tabs(TabStrip1.Value).Caption
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#13
(23.09.2018, 17:56)Fennek schrieb: Ich habe keinen Weg gefunden, die Ojekte der Tabs auszulesen.

       

Ob als Tab oder Object deklariert, macht im Lokalfenster übrigens keinen Unterschied.

Gruß Uwe
Top
#14
Hallo Uwe,

gut beobachtet, aber wie ist das Schlüsselwort in VBA?

Es ist NICHT ".Items", ".Control[s]".

mfg
Top
#15
@Fen

https://www.clever-excel-forum.de/Thread...#pid134988

übersehen ?

Man braucht gar keine Variables.

Code:
For Each it In Controls
  If TypeName(it) = "TabStrip" Then MsgBox it.Tabs(it.Value).Caption
Next
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#16
sorry, ich bin etwas verwirrt:

Ich möchte pro Tab den Wert der Controls auslesen, z.B. TextBox73.

In meinen Test war der Wert, wenn ich ihn in Tab(0) setzte in allen Tabs automatisch auf den selben Wert gesetzt. Das Ergebnis von UserForm1.TextBox73.value ging, aber welchen Sinn machen 5 Tabs, wenn sich die Werte nicht unterscheiden?


mfg
Top
#17
Hallo Fennek,

(23.09.2018, 21:33)Fennek schrieb: ... welchen Sinn machen 5 Tabs, wenn sich die Werte nicht unterscheiden?

vielleicht wird (Dir) der Sinn von TabStrips hier klarer.

Gruß Uwe
Top
#18
Code:
Sub M_snb()
   redim sn(10,12)

   for j=0 to ubound(sn,2)
     sn(tabstrip1.value,jj)=me("textbox" & j).text
   next
End Sub

dH: die Ergebnisse der Controls sollten pro Tabstrip.Tab irgendwo gespeichert werden wenn die Tabstrip.Tab gewechselt wird.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#19
Danke

So nach einer kleinen Weile habe ich das Konzept von StripTab (hoffentlich) verstanden.

mfg
Top
#20
Hallo!
Nach dem ich euch geantwortet hatte, war ich bis letzte Woche außer gefecht.
Deswegen möchte ich gerne das Thema nochmal ansprechen.

@Andre:


Zitat:Hallöchen,

nutze doch eine globale variable die Du bei Betätigung eines Controls mit den entsprechenden Informationen fütterst [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Ja, aber wie mache ich das?

@Klaus-Dieter:
Warum du die Datei nicht öffnen kannst ist mir Schleier Haft. Was in der Datei eingebaut ist, dass die Aktuelle Uhrzeit angezeigt wird und die UF sich automatisch öffnet. Habe das Problem zurzeit in der Firma auch. Eine Datei die Makros enthält und beim Start eine UF öffnet, kann plötzlich nicht mehr geöffnet werden. Obwohl diese Datei seit Monaten benutzt wird. Habe es an die IT weiter geleitet und die können die Datei öffnen. Alle haben die gleiche Excel Version auf ihren Rechner. Keiner aus der IT kann mir bis jetzt weiter helfen! Auf anderen Rechner und zu Hause probiert und die Datei läuft. Warum auch immer! In der Firma die Datei umbenannt und es geht wieder!   ???

@ snb:
Zur Erklärung warum ich das so nach gebaut habe ist ganz einfach. Ich möchte den oberen Teil der UF so beibehalten wie in einer Excel Tabelle. Ich will alles sichtbar im Frame2 machen. Kommt noch mehr hinzu, dann soll oder muss gescrollt werden. Dazu kommt noch das ich die Frames, die eingeblendet werden einfärben möchte, je nachdem was angeklickt wurde.

@Fennek:
Ich habe ja deinen Vorschlag benutzt und war auch damit zufrieden. Nur jetzt beim Testen ist mir einiges aufgefallen.

In deiner Test Datei geht das Makro nur richtig wenn, nur in Frame2 eine der Meldungen Angezeigt wird(also Frame3 als Meldung). Kommt ein weiteres Frame hinzu(Frame5), sehe ich immer das zuletzt angezeigte Control dann das Frame und das Aktive Control oder umgekehrt.
  Ich benötige aber, das mir:
     Das Frame vom Aktiven Control angezeigt wir und dann das Control wo ich reingelickt habe
Dein Code speichert alles wo man reingeklickt hat!
Wie kann man das ändern?


Leider kann ich kein MultiPage oder TabStrip nehmem, da wie beschrieben alles Sichtbar oder so viel wie möglich.

Ich habe nochmals 2 Dateien zum Testen angehangen.
Die Rep.xlsm ist die von mir. Diese Datei ist nochmals überarbeitet. Bitte mal den Button Befüllen anklicken, dann eine auswahl bei Namen treffen.
Dann wird das Frame Farbig.

Bitte mal Testen!


Angehängte Dateien
.xlsm   Anzeige Rep.xlsm (Größe: 47,04 KB / Downloads: 1)
.xlsm   Anzeige Repar.xlsm (Größe: 30,57 KB / Downloads: 0)
mfg
Michael
:98:

WIN 10  Office 2019
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste