Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktivierungsreihefolge per Makro

Aktivierungsreihefolge per Makro
walli
Guten Tag Fachfrauen und Männer,
ich möchte gern die Aktivierungsreihefolge auf einer UF mit einem Makro ändern.
Habe gerade mal 1h in Google gesucht leider kein erfolg.
Geht das überhaupt ?
mfg walli
per DESIGNER.Controls("Name").TabIndex
14.09.2009 15:04:17
NoNet
Hallo wall-E ;-)
Probiere es mal hiermit :
Activeworkbook.VBProject.VBComponents("Userform1").Designer.Controls("Textbox1").tabindex=2
Der TabIndex beginnt bei 0, d.h. .TabIndex=2 setzt das Control an die 3.Stelle !
Gruß, NoNet
AW: per DESIGNER.Controls("Name").TabIndex
14.09.2009 19:30:12
walli
Guten Abend NoNet,
ich bin nicht so perfekt, kannst Du mir sowas als Makro umsetzen.?
Ich wollte mir das umstellen auf der UF ersparen, da ich ab und zu nach ENTER andere
Textboxen ansprechen möchte.
mfg walli
AW: Aktivierungsreihefolge per Makro
14.09.2009 15:07:28
xr8k2
Hallo Walli,
den Tabindex von Objekten kannst du auch zur Laufzeit festlegen:
z.B.
TextBox1.TabIndex = 0
... wenns das ist was ich denk das du meist ...
Gruß,
xr8k2
Anzeige
*KlatschAnDieStirn* - sooo einfach...
14.09.2009 15:10:53
NoNet
Hallo xr....,
könntest Du bitte die "Ecke" entfernen, um die herum ich gerade gedacht habe ?
Natürlich ist Dein Code viel einfacher als mein Konstrukt ;-)
Gruß, NoNet
AW: *KlatschAnDieStirn* - sooo einfach...
14.09.2009 16:07:15
xr8k2
Hallo NoNet,
naja ... ich kuck mal um die Ecke rum und seh das es ja auch sein könnte, dass die Indizes im VBA-Projekt fest und einmalig für alle Objekt geändert werden sollen.
Damit wärst dann du hier der Held der Dinge ;-)
Gruß,
xr8k2
AW: Aktivierungsreihefolge per Makro
14.09.2009 19:31:14
walli
Hallo xr8k2,
wo setzt man das hin ?
mfg walli
AW: Aktivierungsreihefolge per Makro
15.09.2009 08:08:35
xr8k2
Hallo Walli,
ich versteh immer noch nicht so ganz, du willst ab und zu nach Enter die Aktivierreihenfolge ändern. Was heist denn hier "ab und zu"?
Soll dies während der Laufzeit der UF geschehen, dann kannst du die Tabindizies für die einzelnen Elemente der UF wie dargestellt nacheinander in einer Prozedur festlegen und ie Ausführung dieser Prozedur an einen Commandbutton ein entsprechendes Ereignis deiner Userform binden.
Anders sieht´s aus, wenn die Tabindex-Änderung generell erfolgen soll ... dann könntest du dem Vorschlag von NoNet folgen und wie von Ihm dargestellt die gewünschten Tabindizes der UF-Elemente nacheinander in eine separate Prozedur schreiben. Nach Ausführen dieser Sub würden dann die Tabindizes fest im VBA-Projekt verankert.
Gruß,
xr8k2
Anzeige
Aber wie soll das Makro aussehen ?
15.09.2009 19:28:02
walli
Guten Abend xr8k2,
habe ich verstanden.
Wie schon ausgeführt, ich muß die Reihenfolge mal ändern also
wenn ich in der TB 4 bin soll bei ENTER der Courser in die TB 5 springen. Das
klappt ja soweit.
Ich möchte aber die aktivierungsreihenfolge nicht auf der UF ändern sondern dies
per Makro.
Es sollte dann die TB 7 anstatt TB 5 aktiviert werden, später wieder mit einem
Makro zurück so das man wieder nach ENTER in der TB 5 ist.
mfg walli
AW: Aber wie soll das Makro aussehen ?
16.09.2009 07:19:40
xr8k2
Hallo Walli,
ok ... dann eben alle beide Beispiele:
Änderung zur Userform-Laufzeit per Commandbutton:

Private Sub CommandButton1_Click()
'TB5 wird nach TB4 aktiviert
TextBox5.TabIndex = TextBox4.TabIndex + 1
End Sub
Private Sub CommandButton2_Click()
'TB7 wird nach TB4 aktiviert
TextBox7.TabIndex = TextBox4.TabIndex + 1
End Sub
Und hier noch die von NoNet vorgeschlagene generelle Variante:

Sub TB5nachTB4()
With ThisWorkbook.VBProject.VBComponents("Userform1").Designer
.Controls("Textbox5").TabIndex = .Controls("Textbox4").TabIndex + 1
End With
End Sub
Sub TB7nachTB4()
With ThisWorkbook.VBProject.VBComponents("Userform1").Designer
.Controls("Textbox7").TabIndex = .Controls("Textbox4").TabIndex + 1
End With
End Sub
Gruß,
xr8k2
Anzeige
Danke xr8k2, -)
16.09.2009 16:28:12
walli
Hallo xr8k2,
allerherzlichsten Dank für die Unterstützung,
mfg walli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige