Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

fragen über selbstdefinierte Symbolleiste...

Forumthread: fragen über selbstdefinierte Symbolleiste...

fragen über selbstdefinierte Symbolleiste...
24.06.2003 10:44:34
daahli
Habe eine Symbolleiste zum Teil programmiert und bin auf einige Schwierigkeiten gestoßen. Hab ein paar Fragen:

1) Ich möchte dass die Symbolleiste nur angezeigt wird wenn eine Bestimmte Tabelle angezeigt wird, ansonsten soll sie ausgeblendet werden.

2) In den Tabellen in denen sie angezeigt wird soll sie aber nicht löschbar sein und auch nicht verschiebar. Das habe ich durch :

.Protection = msoBarNoChangeVisible + msoBarNoResize + msoBarNoChangeDock + msoBarNoMove

geschafft aber mein Problem ist das ich nicht weiss wie ich die Symbolleiste bei der initialisierung positionieren kann. Ich möchte dass sie sich an einer bestimmten Stelle befindet und dort nicht mehr wegkommt (zur zeit wird sie automatisch in der Mitte des Bildschirmes initialisiert).

3) ich möchte dass der Name der Leiste gar nicht eingeblendet wird und dass das x (Schliessen) auch nicht zu sehen ist. Ist dies überhaupt möglich?

4) Könnte mir jemand bitte sagen ob es einen Unterschied zwischen Tooltiptext und caption gibt? Ich bemerke nämlich keinen.

Vielen Dank für die Mühe :)


Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: fragen über selbstdefinierte Symbolleiste...
24.06.2003 10:56:41
L.Vira

1. meinst du wirklich Tabelle oder eher Datei?

2. Löschen kannst du nicht wirklich verhindern, es sei denn du knipst alle Möglichkeiten aus, an den Anpassen- Dialog zu kommen.
Die Position legst du fest mit:
DeineCommandbar.Position = msoBarTop
3. Wenn die Position Top ist, hat sich das von selbst erledigt.
4. Tooltiptext und Caption sind gleich, solange Tooltiptext
nicht explizit geändert wird.
DeineCommandbar.Caption = "Hallo"
DeineCommandbar.tooltiptext = "Caption ist Hallo"

Anzeige
möchte selber postitionieren
24.06.2003 11:11:09
daahli

1) Ich meinte wirklich Tabelle ;)

2) msobartop löst das Problem nicht. Ich möchte sie an einer bestimmten von mir selbstdefinierten Stelle auf dem Bildschirm, aber nicht top. Ist das nicht möglich?

Danke :)

Re: möchte selber postitionieren
24.06.2003 11:21:57
L.Vira

Positionieren:
.Position =msoBarFloating
.Left = 100
.Top = 50

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Deinname" Then
CommandBars("Deine").Visible = True
Else
CommandBars("Deine").Visible = False
End If
End Sub

Dann wird der Name aber wieder angezeigt, was sich auch nicht verhindern lässt.

Anzeige
Re: visible
24.06.2003 11:40:01
daahli

super das mit dem positionieren funkt perfekt! Danke!

Wo muss ich den code für das ein und ausblenden der Leiste einfügen. Sorry, bin wirklich ein Excel newbie

Danke vielmals

Re: visible
24.06.2003 11:48:20
L.Vira

Der Code muss in das Modul von "DieseArbeitsmappe".

funkt nicht
24.06.2003 12:11:21
daahli

hmm, habe jetzt den code in DieseArbeitsmappe kopiert aber ich bekomme einen Fehler:

Objektvariable oder With-Blockvariable nicht festgelegt

Die leiste wird durch ein modul erstellt. Sie ist unter symbolleisten als "Benutzerleiste" zu finden und aktivieren.

code:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Tabelle1" Then
CommandBars("Benutzerleiste").Visible = True
CommandBars("Benutzerleiste").Protection = msoBarNoChangeVisible + msoBarNoResize + msoBarNoChangeDock + msoBarNoMove
Else
CommandBars("Benutzerleiste").Visible = False
End If
End Sub

Leiste wird durch ein Modul generiert

Sub M_leiste()

Dim leiste As CommandBar, knopf1 As CommandBarButton, knopf2 As CommandBarButton
Dim knopf3 As CommandBarButton, knopf4 As CommandBarButton, knopf5 As CommandBarButton
Dim knopf6 As CommandBarButton

On Error Resume Next
Set leiste = CommandBars.Add("Benutzerleiste")
Set knopf2 = leiste.Controls.Add(msoControlButton)
...
...

Woran könnte das liegen?

nochmals danke



Anzeige
Re: funkt nicht
24.06.2003 12:22:31
L.Vira

Tschuldigung, war mein Fehler. In Klassenmodulen muss Application verwendet werden, in Standardmodulen ist das nicht nötig:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Tabelle1" Then
Application.CommandBars("Benutzerleiste").Visible = True
Application.CommandBars("Benutzerleiste").Protection = msoBarNoChangeVisible + msoBarNoResize + msoBarNoChangeDock + msoBarNoMove
Else
Application.CommandBars("Benutzerleiste").Visible = False
End If
End Sub


Anzeige
Danke!!
24.06.2003 12:35:02
daahli

super, funkt perfekt!

vielen Dank,
Daniel

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige