Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
704to708
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
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Name CommandButton.Visible aus Variable

Name CommandButton.Visible aus Variable
07.12.2005 19:54:50
Hannes
Hallo,
die Sub entnimmt beim Öffnen der Datei den Namen der sichtbaren Schaltflächen einer Liste in einem Tabellenblatt. Dieses Tabellenblatt wird mit Usr übergeben, die dortige Spalte für die Liste wird mit BTSplt1 übergeben. Blatt000 ist eine Konstante für das Tabellenblatt, auf dem die Schaltflächen abgelegt sind (aus Steuerelement-Toolbox eingefügt).

Sub Buttonsperre_01(Usr, BTSplt1)
For i = 1 To 20
If ThisWorkbook.Worksheets(Usr).Cells(i, BTSplt1) <> "" Then
Inh02 = ThisWorkbook.Worksheets(Usr).Cells(i, BTSplt1)
Worksheets(Blatt000).Inh02.Visible = True
End If
Next i
End Sub

Die Variable Inh02 ist ein String, der offensichtlich nicht als Name für die Schaltfläche akzeptiert wird, denn die Fehlermeldung heißt: # 438 Objekt unterstützt diese Eigenschaft oder Methode nicht". Wenn ich den ersten Eintrag der Liste (z.B. "Report_003") statt der Variablen eintrage, dann funktioniert das Ganze.
Kann jemand bitte einen Rat geben für die Umwandlung der Variablen in den Namen der Schaltfläche?
Vielen Dank
Hannes

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name CommandButton.Visible aus Variable
07.12.2005 20:01:25
Kurt
Hi,
sind das wirklich Schaltflächen oder Commandbutton?
mfg Kurt
AW: Name CommandButton.Visible aus Variable
07.12.2005 20:09:30
Reinhard
Hi Hannes,
probier mal:

Sub tt()
Inh02 = "Knopp1"
Worksheets("Tabelle1").Shapes(Inh02).Visible = True
End Sub

Eben beim Testen war der Button zwar da aber erst sichtbar durch Klicken in der Tabelle, keine Ahnung warum,vieleicht braucht man dann noch sowas wie gotfocus setfocus enable o.ä.
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
AW: Name CommandButton.Visible aus Variable
08.12.2005 22:11:58
Hannes
Hallo Kurt, Hallo Reinhard,
danke für die Hilfe.
Es ist ein CommandButton, der wie gesagt über die Steuerelement-Toolbox eingefügt wurde. Im Tabellenblatt steht in der Formelanzeige =EINBETTEN("Forms.CommandButton.1";"").
Warum die direkte Übergabe des Namens funktioniert, die Benutzung einer Variablen aus einer Liste aber nicht, habe ich nicht lösen können. Mit SetFocus etc. bin ich nicht weitergekommen, das Ausblenden funktionierte immer erst nach dem Auswählen der Tabelle. Was aber funktioniert, ist folgender Code:

Sub ButtonSperre_01(Usr, BTSplt1)
For i = 1 To 20
If ThisWorkbook.Worksheets(Usr).Cells(i, BTSplt1) <> "" Then
Inh02 = ThisWorkbook.Worksheets(Usr).Cells(i, BTSplt1)
Worksheets(Blatt000).OLEObjects(Inh02).Visible = False
End If
Next i
End Sub

Das hatte ich zwar vorher auch schon in der VBA-Hilfe gesehen, aber im Gegensatz zum dortigen Beispiel habe ich nun bei .OLEObjects(Inh02).Objects.Visible = False den Begriff .Objects weggelassen und voilà, es geht.
Schön wäre es, wenn mir jemand erklären könnte, warum das so ist. Jedenfalls erfüllt der Code seinen Zweck und das ist erst einmal die Hauptsache.
Nochmals Dank.
Hannes
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige