Thema Datum  Von Nutzer Rating
Antwort
Rot Addin Events
23.11.2011 14:04:08 Intern 2011
NotSolved

Ansicht des Beitrags:
Von:
Intern 2011
Datum:
23.11.2011 14:04:08
Views:
1625
Rating: Antwort:
  Ja
Thema:
Addin Events

Hallo,

ich moechte gerne einige Workbook bzw. Ribbon Events programmieren. ZIEL: Ei dropdown menue, dass saemtliche worksheets anzeigt und dass bei Anklicken auf den jeweiligen Sheet Namen zu diesem Sheet wechselt. Ausserdem sollen sich die eintraege im Dropdown mit veraendern, wenn ich die Namen der vorhandenen sheets aendere bzw. neue hinzufuege oder alte sheets loesche.

Das funktioniert auch soweit, nur wenn ich die Datei dann als Add-In speichern moechte um den Code eventuell weitergeben zu koennen geht nichts mehr.

FRAGE: MUSS ICH DAS UEBER EIN KLASSENMODUL MACHEN, falls man die standart workbook events nicht als addin weitergeben kann?

Hier der Code (u.a. von Brenden & Mindenhorst):

 

Option Explicit
Public objRibbon As IRibbonUI

Public Sub OnLoad(ribbon As IRibbonUI)
    Set objRibbon = ribbon
End Sub
'Callback for d1 onAction
Public Sub d1action(control As IRibbonControl, id As String, index As Integer)
    ThisWorkbook.Sheets(index + 1).Activate
End Sub
'Callback for d1 getItemCount
Public Sub d1getItemCount(control As IRibbonControl, ByRef returnedVal)
    returnedVal = ThisWorkbook.Sheets.Count
End Sub
Public Sub d1getItemID(control As IRibbonControl, index As Integer, ByRef id)
    id = "Sheet" & index + 1
End Sub
'Callback for d1 getItemLabel
Public Sub d1getItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    returnedVal = ThisWorkbook.Sheets(index + 1).Name
End Sub
'Callback for d1 getSelectedItemIndex
Public Sub d1getSelectedItemIndex(control As IRibbonControl, ByRef returnedVal)
    returnedVal = ActiveSheet.index - 1
End Sub

 

Private Sub Workbook_Open()
ThisWorkbook.Sheets(1).Range("A1").Formula = "=Today()"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    objRibbon.InvalidateControl "d1"
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    If Not objRibbon Is Nothing Then
        objRibbon.InvalidateControl "d1"
    End If
End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Addin Events
23.11.2011 14:04:08 Intern 2011
NotSolved