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

Symbolleiste nur in einem Worsheet enabled

Symbolleiste nur in einem Worsheet enabled
16.12.2002 11:51:51
Kristin
Hallo zusammen,

ich habe eine eigene Symbolleiste, die mit jedem Start einer Datei erstellt wird, und beim schliessen dieser Datei auch wieder gelöscht wird.

Ich würde aber gern die Symbolleiste auch steuern können während die Datei geöffnet ist, sprich, wenn ich ein anderes Tabellenblatt öffne oder eine andere Datei bearbeite, soll sie nicht "enabled" sein.
Dafür müsste irgendwie geprüft werden, welches Blatt activated ist, oder?
Ich habe schon so etwas in der Hilfe gefunden, aber es funktioniert nicht: Private Sub Workbook_Deactivate()

Wer hat eine Idee?

Danke für jeden Tip
Gruß Kristin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 11:58:35
Udo RiHü

Hallo Kristin,
wieso geht das nicht? Das ist es doch

Gruss Udo

Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 11:59:03
Hajo_zi
Hallo Kristin

ich löse es immer so in der Datei


Option Explicit

Private Sub Workbook_Open()
Dim cb As CommandBar
Dim CBC As CommandBarButton
Dim I%
On Error Resume Next
Set cb = Application.CommandBars.Add(Name:="Preisliste1", _
temporary:=True, Position:=msoBarTop)
On Error GoTo 0
If Application.CommandBars("Preisliste1").Visible = False Then
cb.Visible = True
For I = 1 To 15
Set CBC = cb.Controls.Add(Type:=msoControlButton)
With CBC
.Width = 50 ' Breite der Schalter
.Style = msoButtonCaption ' Text auf Schaltfläche
Select Case I
Case 1
.Caption = "IRB"
.OnAction = "Roboter"
.TooltipText = "Roboter einfügen"
Case 2
.Caption = "Ent."
.OnAction = "Entlader"
.TooltipText = "Entlader einfügen"
Case 3
.Caption = "LPM"
.OnAction = "LPM"
.TooltipText = "LPM einfügen"
Case 4
.Caption = "Bel."
.OnAction = "Belader"
.TooltipText = "Belader einfügen"
Case 5
.Caption = "PTS"
.OnAction = "PTS"
.TooltipText = "PTS Einfügen"
Case 6
.Caption = "KTS"
.OnAction = "Gebindetransport"
.TooltipText = "Gebindetransport einfügen"
Case 7
.Caption = "S.S."
.OnAction = "SS"
.TooltipText = "Schalt- und Steuerausrüstung einfügen"
Case 8
.Caption = "Aus."
.OnAction = "Auspacker"
.TooltipText = "Auspacker einfügen"
Case 9
.Caption = "Ein."
.OnAction = "Einpacker"
.TooltipText = "Einpacker einfügen"
Case 10
.Caption = "ET60.1"
.OnAction = "ET601"
.TooltipText = "ET 60.1 einfügen"
Case 11
.Caption = "ET 85"
' .OnAction = "ET85"
' .TooltipText = "ET 85 einfügen"
.Enabled = False
Case 12
.Caption = "Kopfpa."
.OnAction = "Kopfpalette"
.TooltipText = "Kopfpalettenaufleger einfügen"
Case 13
.Caption = "NGA"
.OnAction = "NGA"
.TooltipText = "Neuglasabheber einfügen"
Case 14
.Caption = "NGS"
.OnAction = "NGS"
.TooltipText = "Neuglasabschieber einfügen"
Case 15
.Caption = "Zu."
.OnAction = "Zukauf"
.TooltipText = "Zukauf einfügen"
End Select
End With
Next I
End If
End Sub

Private Sub Workbook_Deactivate()
' Schaltflächen nich auswählbar bei Blattwechsel
' With Application.CommandBars("Preisliste1")
' For I = 1 To 15
' .Controls(I).Enabled = False
' Next I
' End With
On Error Resume Next
If Application.CommandBars("Preisliste1").Visible = True Then
Application.CommandBars("Preisliste1").Visible = False
End If
End Sub

Private Sub Workbook_Activate()
On Error GoTo neu
If Application.CommandBars("Preisliste1").Visible = False Then
Application.CommandBars("Preisliste1").Visible = True
End If
Exit Sub
neu:
Workbook_Open
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Preisliste1").Delete
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
On Error GoTo neu
If Application.CommandBars("Preisliste1").Visible = False Then
Application.CommandBars("Preisliste1").Visible = True
End If
Exit Sub
neu:
Workbook_Open
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 13:01:51
Kristin
Hallo Udo,

ich hatte die Subs nicht in "diese Arbeitsmappe" - kannst du mir sagen, wo der Unterschied liegt im Vergleich zu einem Modul?

Genau das gleiche Problem habe ich mit Auto_Open() (funktioniert in meinem Modul) und Workbook_Open bzw. WorksheetBeforeOpen()-??- geht nur in "diese Arbeitsmappe", stimmt das??

vielen Dank für deine Hilfe.

Kristin.

Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 13:26:29
Kristin
Hallo Hajo,

hast du alle deine Subs in einem Modul, oder sind die folgenden in "diese Arbeitsmappe" untergebracht?

Workbook_Activate()
Workbook_Deactivate()
Private Sub Workbook_BeforeClose()
Private Sub Workbook_SheetSelectionChange() etc.

Bei mir scheint Excel diese nämlich nur in "diese Arbeitsmappe" auszuführen, oder mache ich da etwas falsch?

Danke für deine schnelle Hilfe
Gruß Kristin

Anzeige
Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 13:28:36
Georg_zi
Hallo Kristin

der gesamte Code gehört in DieseArbeitsmappe. Das sind ja alles Aktionen die von Excel automatisch überwacht werden.

Gruß Hajo

Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 13:43:40
Udo RiHü
Hallo Kristin,
Workbook_open und dergleichen funktioniert tatsächlich nur in DieseArbeitsmappe. Auto_open() gibt's nur aus Kompatibilitätsgründen zu Excel5.
DieseArbeitsmappe ist ein sogenanntes Klassenmodul. Hier werden alle Ereignisse, die die Mappe betreffen in entsprechenden Ereignisprozeduren abgearbeitet. Das sind ein ganzer Haufen u.A eben auch das öffnen, schließen, drucken, speichern etc. Eine Liste aller Ereignisse kannst du dir im Auswahlfeld oben rechts anschauen. Auch für die einzelnen Blätter gibt es die entsprechenden Klassenmodule mit den Ereignissen. Hier werden auch die Prozeduren für Steuerelemente (Commandbuttons etc) definiert. Du kannst natürlich in einer Ereignisprozedur einfach nur eine Sub aufrufen.

Ich hoffe, jetzt stehen niemandem die Haare zu Berge ob dieser Erklärung. Wer es besser weiss, oder glaubt es besser zu wissen. korrigiere mich bitte. Ich lasse mich gerne belehren.

Gruss Udo

Anzeige
Re: Symbolleiste nur in einem Worsheet enabled
16.12.2002 13:57:14
Kristin
Hallo Udo,

vielen Dank für die Erklärung. Ich habe DieseArbeitsmappe früher immer ignoriert, aber da eröffnen sich mir ja ganz neue Möglichkeiten.
Für mich als Laien war die Erklärung aller best. :)

schöne Wihnachtszeit
Gruß Kristin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige