Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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
Inhaltsverzeichnis

Excel Ribbon Button Code

Excel Ribbon Button Code
28.11.2022 15:11:41
Marcus
Hallo zusammen,
ich habe eine Excel-Datei, mit Ribbons. Ich habe Buttons und ein Menü erstellt. Wenn ich auf die Buttons klicke, so soll das dementsprechende Arbeitsblatt geöffnet werden.
Jetzt habe ich folgende Code eingegeben, aber es passiert nichts, keine Fehlermeldung oder sonst irgendwas.

Public Sub OnActionButton(control As IRibbonControl)
Select Case control.id
Case "btn_0"
gobjRibbon.InvalidateControl "Deckblatt"
Case Else
MsgBox "Button """ & control.id & """ clicked" & vbCrLf & _
"Es wurde auf Button """ & control.id & """ in Ribbon geklickt", _
vbInformation
End Select
End Sub
Könnt ihr mir weiterhelfen?
Vielen Dank.
Viele Grüße Marcus

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Ribbon Button Code
28.11.2022 16:30:56
Nepumuk
Hallo Marcus,
ich rate mal: Du machst irgendetwas falsch. Mehr mit deiner Mappe.
Gruß
Nepumuk
AW: Excel Ribbon Button Code
28.11.2022 17:27:47
Nepumuk
Hallo Marcus,
funktioniert doch. Ok, beim InvalidateControl muss der Name des Buttons und nicht die Caption des Labels rein, aber ansonsten läuft es.
Teste mal (Ich habe alles Überflüssige entfernt): https://www.herber.de/bbs/user/156435.xlsm
Gruß
Nepumuk
Anzeige
AW: Excel Ribbon Button Code
28.11.2022 17:49:59
Marcus
Vielen Dank für die schnelle Unterstützung. Das Problem ist, dass sich die Arbeitsblätter beim Klick auf die Buttons nicht öffnen. Oben ist der Ribbon-Reiter "Navigation" mit zwei Buttons "Deckblatt" und Namen" und unten sind zwei Arbeitsblätter. Beim Klick auf den Button "Deckblatt" soll auch das Arbeitsblatt "Deckblatt" geöffnet werden, dieses funktioniert leider nicht. Ich habe die Datei nochmal neu hochgeladen mit deinen Änderungen. Könntest du nochmal drüber schauen? Vielen lieben Dank.
https://www.herber.de/bbs/user/156436.xlsm
Anzeige
AW: Excel Ribbon Button Code
28.11.2022 18:12:00
Marcus
Ja Mega. Perfekt. Vielen vielen lieben Dank. Daumen hoch :D
AW: Excel Ribbon Button Code
28.11.2022 17:58:16
Oberschlumpf
Hi Marcus,
unterhalb oder anstelle der MsgBox musst du auch noch genau den Befehl geben, was nach Button-Klick passieren soll.
für btn0

Sheets("Deckblatt").Activate
für btn1

Sheets("Namen").Activate
anstelle von Case Else würde ich allerdings eher auch Case "btn1" verwenden.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Excel Ribbon Button Code
29.11.2022 07:50:16
Marcus
Guten Morgen,
wenn ich jetzt die Arbeitsblätter ausblende, kann ich diese über diesen Befehl nicht mehr anzeigen lassen. Gibt es dafür auch einen Trick?
Vielen Dank
Gruß Marcus
AW: Excel Ribbon Button Code
29.11.2022 07:57:01
Nepumuk
Hallo Marcus,
so:

With Worksheets("Deckblatt")
.Visible = xlSheetVisible
Call .Select
End With
Gruß
Nepumuk
AW: Excel Ribbon Button Code
29.11.2022 08:02:28
Marcus
Und wo wird das eingefügt?
AW: Excel Ribbon Button Code
29.11.2022 08:07:42
Nepumuk
Hallo Marcus,
na da:

Private Sub OnActionButton(control As IRibbonControl)
Select Case control.id
Case "btn0"
With Worksheets("Deckblatt")
.Visible = xlSheetVisible
Call .Select
End With
Case "btn1"
With Worksheets("Namen")
.Visible = xlSheetVisible
Call .Select
End With
End Select
End Sub
Gruß
Nepumuk
Anzeige
AW: Excel Ribbon Button Code
29.11.2022 08:11:26
Marcus
Entschuldige Bitte, bin irgendwie noch nicht wach. Wenn ich dann auf den anderen Button wieder klicke, soll das geöffnete Arbeitsblatt wieder ausgeblendet werden.
Könntest du mir da auch weiterhelfen? Ich danke dir vielmals.
AW: Excel Ribbon Button Code
29.11.2022 08:16:17
Oberschlumpf
wart noch ne halbe stunde, trink bis dahin n Kaffee, und dann denk doch mal selber nach - z Bsp mit Hilfe von Google, in dem du dir mal die Bedeutung der verwendeten Befehle "erklären" lässt - dann kommst du nämlich selbst drauf
AW: Excel Ribbon Button Code
29.11.2022 08:17:14
Nepumuk
Hallo Marcus,
einfach so:

Private Sub OnActionButton(control As IRibbonControl)
Select Case control.id
Case "btn0"
With Worksheets("Deckblatt")
.Visible = xlSheetVisible
Call .Select
End With
Worksheets("Namen").Visible = xlSheetVeryHidden
Case "btn1"
With Worksheets("Namen")
.Visible = xlSheetVisible
Call .Select
End With
Worksheets("Deckblatt").Visible = xlSheetVeryHidden
End Select
End Sub
Gruß
Nepumuk
Anzeige
AW: Excel Ribbon Button Code
29.11.2022 08:20:57
Marcus
Wenn ich aber 3 Arbeitsblätter hätte, würde das aber nicht funktionieren oder?
AW: Excel Ribbon Button Code
29.11.2022 08:22:58
Oberschlumpf
dann bräuchtest du doch auch 3 Button, oder? und wo is das Problem - dass du selbst! nach dem gezeigten Muster - einen weiteren Button mit eben den richtigigen Befehlen hinzufügst?
AW: Excel Ribbon Button Code
29.11.2022 09:04:52
Marcus
Funktioniert das nicht so einfach, wenn ich einfach in irgendein anderes Arbeitsblatt springe, das es dann automatisch geschlossen wird, auch wenn ich 10 verschiedene Arbeitsblätter habe?
AW: Excel Ribbon Button Code
29.11.2022 09:14:23
Oberschlumpf
ähh? ich verstehe kein Wort - bisher hast du immer nur von 1 Datei geschrieben, in der du in einem Ribbon 2 Button nutzt, mit deren Hilfe du 2 bestimmte Tabellenblätter anzeigen lässt - jetzt auf einmal erwähnst du weitere Dateien - natürlich funktioniert der Ribbon-Button-Code nicht in einer anderen Datei, weil dort nicht vorhanden - in diesem Fall müsstest du ein AddIn programmieren, das dein Ribbon mit x vielen Button enthält - das AddIn würde dann für - jede geöffnete Excel-Datei funktionieren
Aber im AddIn müsstest du dann so programmieren, was in Abhängigkeit der gerade aktiven Excel-Datei geschehen soll.
Anzeige
AW: Excel Ribbon Button Code
29.11.2022 09:20:47
Marcus
Nee, ich meine, wenn ich 1 Excel-Datei mit mehreren "Worksheets" und "Buttons" hätte und ich klicke auf Button 1, soll Worksheet 1 eingeblendet(geöffnet) werden und wenn ich auf den Button 5 klicke, soll das Worksheet 1 sich wieder schließen(ausblenden) und das Worksheet 5 sich öffnen(einblenden) usw.
Oder gibt es eine Möglichkeit die Worksheets in der Navigationsleiste unten dauerhaft nicht anzuzeigen, aber die Buttons funktionieren und die Worksheets sich öffnen?
AW: Excel Ribbon Button Code
29.11.2022 09:32:28
Oberschlumpf
wenn immer nur ein Blatt angezeigt werden soll...
...dann musst du zuerst das Blatt einblenden, welches bei Klick von Button x eingeblendet werden soll
...danach musst du immer alle anderen Blätter ausblenden
anhand des Codes von Nepumuk so:

Private Sub OnActionButton(control As IRibbonControl)
Dim lstrBlendEin As String, liIdx As Integer
Select Case control.id
Case "btn0"
lstrBlendEin = "Deckblatt"
With Worksheets(lstrBlendEin)
.Visible = xlSheetVisible
Call .Select
End With
Case "btn1"
lstrBlendEin = "Namen"
With Worksheets(lstrBlendEin)
.Visible = xlSheetVisible
Call .Select
End With
End Select
For liIdx = 1 To Sheets.Count
If Sheets(liIdx).Name  lstrBlendEin Then
Sheets(liIdx).Visible = False
End If
Next
End Sub
So, und wenn du mehr als 2 Button in deinem Ribbon hast, bzw haben willst, dann musst du den Code halt nur erweitern.
Wenn du damit auch nicht weiterkommst, weiß zumindest ich nich weiter.
Hilfts?
Anzeige
AW: Excel Ribbon Button Code
29.11.2022 09:41:34
Marcus
Es funktioniert. Vielen Dank für deine Hilfe und entschuldige bitte.
AW: Excel Ribbon Button Code
29.11.2022 09:55:33
Oberschlumpf
Hi Marcus,
schön, freut mich, dass wir helfen konnten!
Und du musst dich nicht entschuldigen - eher müsste ich das tun^^ :-)
Ich bin nicht ganz so geduldig wie z Bsp Nepumuk, vergesse immer wieder mal, dass ich genau so mal da war mit Wissen/Unwissen, wie es gerad bei dir ist.
Und auch ich hab oft die Lösung - nicht - gesehen, obwohl diese doch genau vor mir im Code "zu sehen" war! :-)
Also, so tut es auch mir leid, wenn ich mich das eine oder andere Mal etwas "zu hart" ausdrücke.
Dir (und allen anderen Fragenden) kann ich nur raten: Stellt weiterhin all eure Fragen...in diesem...oder in jedem anderen Forum - aber dieses Forum ist das geilste! :-)
Ciao
Thorsten
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige