2k Aufrufe
Gefragt in Tabellenkalkulation von
Guten Morgen,
habe wieder mal ein kleines Problem. Ich habe in meinem Excelblatt einen Button, diesen habe ich mit einem Textfeld verdeckt. Nun möchte ich das der Button für bestimmte User sichtbar wird, also das Textfeld dann verschwindet. Mein Code sieht bis jetzt wie folgt aus:

Private Sub Workbook_Open()

Dim RNummern ' Deklaration RNummern
RN1 = Environ("Username") = "R432644"
RN2 = Environ("Username") = "R322873"
RN3 = Environ("Username") = "R490695"
RN4 = Environ("Username") = "R636479"
RN5 = Environ("Username") = "R145327"
RN6 = Environ("Username") = "R888640"
RN7 = Environ("Username") = "R811106"
RN8 = Environ("Username") = "R885897"

Worksheets("Aufmaßanfrage V1.20").CommandButton1.Visible = RN1 Or RN2 Or RN3 Or RN4 Or RN5 Or RN6 Or RN7 Or RN8

If RN1 Or RN2 Or RN3 Or RN4 Or RN5 Or RN6 Or RN7 Or RN8 Then
UserForm1.Textbox109.Visible = False

End If

.....


Dann bringt er mir immer einen Laufzeitfehler' 424 Objekt erforderlich.
Hat jmd eine Idee was ich falsch gemacht habe. Danke für eure Hilfe.

Greetz Chris

7 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Chris,

gibt es in deinem Projekt ein UserForm1 bzw. auf dem UserForm1 ein Textfeld109?

Weshalb verdeckst du überhaupt den Schalter im Tabellenblatt mit einem Textfeld, wenn du ihn sowieso in Abhängigkeit vom Benutzer ein- bzw. ausblendest?

Bis später,
Karin
0 Punkte
Beantwortet von
Hi Karin,

das mit der Userform1 habe ich im Internet gefunden hatte vorher anstatt UserForm1, Worksheets("Aufmaßanfrage V1.20") stehen. Also den Namen des Arbeitsblattes. Das Textfeld was ich da erzeugt hab heisst Textfeld 109 - steht zumindest da wenn ich draufklicke.

Das mit dem Button ist folgendes Problem. Es gibt User die dieses Formular nur ausfüllen und die Makros deaktiviert haben. Dann sehen diese ja den Button. Damit das nicht so ist, habe ich mir gedacht verstecke ich ihn einfach mit nem Textfeld. Bei den Usern die das Formular auch bearbeiten und das Makro nutzen, soll der Button dann wieder sichtbar sein und das Textfeld unsichtbar.
Möglicherweise ein bisschen kompliziert gedacht von mir. Wenn du einen einfacheren Weg hast bin ich dankbar für jede Hilfe.

Greetz Chris
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Chris,

ist dein Problem nun gelöst? Das geht aus deinem Beitrag nicht hervor.

Bis später,
Karin
0 Punkte
Beantwortet von
Nein, der Code im ersten Beitrag funktioniert leider nicht.

Greetz Chris
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Chris,

ersetze UserForm 1 durch Worksheets("Aufmaßanfrage V1.20").

Die If-Abfrage ist allerdings nicht nötig, es reicht dieses:

Worksheets("Aufmaßanfrage V1.20").CommandButton1.Visible = RN1 Or RN2 Or RN3 Or RN4 Or RN5 Or RN6 Or RN7 Or RN8
Worksheets("Aufmaßanfrage V1.20").TextBox109.Visible = Not Worksheets("Aufmaßanfrage V1.20").CommandButton1.Visible

Bis später,
karin
0 Punkte
Beantwortet von
Danke Karin für deine Hilfe. Dadurch habe ich jetzt die richtige Lösung gefunden.
Dies ist der Code dazu:

ActiveSheet.Shapes("Text Box 111").Visible = Not Worksheets("Aufmaßanfrage V1.20").CommandButton1.Visible


Greetz Chris
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Chris,

wenn du ein Textfeld aus der Zeichnen-Symbolleiste und keins aus der Steuerelemente-Toolbox verwendest (was man durch deinem geposteten Code jedoch nicht annehmen konnte), ist es logisch, dass du es nicht mit TextBox109 ansprechen kannst, denn dann es ist ein Shape und muss auch als solches angesprochen werden - so wie du es jetzt korrekt getan hast.

Was lehrt dich das? Man sollte als Fragesteller die Situation korrekt schildern, dann bekommt man auch die korrekte Hilfe zum Problem. ;-)))

Bis später,
Karin
...