Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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
Textboxen in UserForm in Loop ändern
braleta
Liebe Excel-Community,
ich habe in einer UserForm 18 (achtzehn) Datumsfelder, die ich als "Datum1", Datum2, ..., Datum18 benannt habe.
Abhängig von einem Zelleninhalt, in dem ein Wert sthet, will ich die nicht benötigten Datumsfelder auf "INVISIBLE" (frmÄnderungsFormular.Datum1.Visible = False) und/oder auf
"Disabled" (frmÄnderungsFormular.Datum1.Enabled = False)
setzen.
Wie muss ich diese Namen definieren, dass ich diese in einer FOR-Loop bearbeiten kann?
Wenn in der genannten Zelle ein Wert Anzahl = "x" steht, möchte ich die folgende Loop aufsetzen:
if numWert > 18 then ...nicht zugelassen ...
for i = Anzahl+1 to 18
...(Anzahl+1) = 9 'Beispiel
? frmÄnderungsFormular.Datum9.visible = False
next i
Ich bin für jede Anregung dankbar
...bruno :-)
AW: Textboxen in UserForm in Loop ändern
26.02.2010 15:17:13
Chris
Servus,
die Grundsyntax wäre so:
For i = Anzahl to 18
Me.Controls("Datum" & i).Visible = False
Next i
Gruß
Chris
AW: Textboxen in UserForm in Loop ändern
26.02.2010 17:16:16
braleta
Chris,
danke für den Tipp, ich werde ihn - sobald ich wieder in meinem Programm arbeite - ausprobieren, aber ich bin sicher, dass er klappt.
Frage:Ich kenne die "Me"-Funktionalität(en) nicht: wo kannich die nachlesen?
Jedenfalls danke!
...bruno :-)
Me steht für Deine Userform...
26.02.2010 17:26:37
Tino
Hallo,
in der der Code ausgeführt wird.
Du kannst z. Bsp. auch so schreiben.
Me("Datum" & i).Visible = False *
oder auch
Controls("Datum" & i).Visible = False *
oder auch
UserForm1("Datum" & i).Visible = False
* Vorraussetzung ist, dass der Code in der Userform steht
Gruß Tino
Anzeige
AW: Me steht für Deine Userform...
26.02.2010 19:59:43
braleta
Tino,
ich habe jetzt diesen Konstrukt getestet und erhalte einen Fehler. Diesen Code habe ich eingefügt:
For i = Anzahl + 1 To 18
Me.Controls("Datum" & i).Visible = False
Next i
und ich erhalte:
Laufzeitfehler -2147024809(80070057)
Das angegebene Objekt konnte nicht gefunden werden!

Was mache ich jetzt?
...bruno :-(
AW: Textboxen in UserForm in Loop ändern
26.02.2010 17:31:51
Beverly
Hi Bruno,
Me bezieht sich immer auf das Objekt, in dem der Code gilt - im konkreten Fall repräsentiert Me das UserForm-Objekt. Du könntest also auch schreiben UserForm1.Controls(.....).


Anzeige
AW: Textboxen in UserForm in Loop ändern
26.02.2010 20:06:06
braleta
Hallo Chris, Tino und Beverly,
danke für Eure Hilfe, ich habe jetzt mit Beverly's Tipp die funktionierende Lösung gefunden.
Ich habe, so wie Beverly erklärt hatte, das "Me" durch den Namen der UserForm ausgetauscht und mein Code sieht jetzt so aus:

For i = Anzahl + 1 To 18
frmÄnderungsFormular.Controls("Datum" & i).Visible = False
Next i

Und jetzt ist alles Paletti :-)
Also noch ein Mal vielen Dank, und - übrigens - doch noch eine Frage: gibt es Literatur, die dieses "Me" erklärt?
...bruno (zufrieden und dankbar)
AW: Textboxen in UserForm in Loop ändern
26.02.2010 20:20:20
Tino
Hallo,
dazu gibt es nicht viel zu erklären ist hier alles gesagt.
Eine Frage habe ich, wo steht dieser Code?
Gruß Tino
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige