PDA

Vollständige Version anzeigen : VBA Makro


der_phanter
06.07.2015, 09:56
Hallo zusammen.

Wie bekomme ich diese 2 einzelnen Makros verheiratet?

Private Sub cmd_ribbon1_mitte(control As IRibbonControl)
Dim Passwort As String
Passwort = InputBox("Bitte geben Sie das Passwort" & Chr(13) & Chr(13) & " für die Makroausführung ein:", "Passwortabfrage für die Makroausführung")
If Passwort <> "matzner" Then
MsgBox "Das Kennwort ist ungültig," & Chr(13) & Chr(13) & "der Vorgang wird abgebrochen !"
End If
rx_onload
End Sub

und

Public Sub rx_onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
On Error Resume Next
If Val(Application.Version) >= 14 Then
objRibbon.ActivateTab "tb0"
End If
On Error GoTo 0
End Sub


Wenn ich eine Excel-Datei öffne, ist nur mein selber erstelltes Ribbon sichtbar. In diesem Ribbon gibt es ein Button (cmd_ribbon_mitte). Ich möchte jetzt, das wenn ich diesen Button anklicke erst einmal eine Passwortabfrage kommt. Ist das Passwort richtig, sollen alle ausgeblendeten Ribbons wieder eingeblendet werden. Die Makros habe ich in einem Modul gespeichert.

Gruß der_phanter

R J
07.07.2015, 14:01
Hi phanter,

...hmm.... hab zwar noch keine Ribbons programmiert, und kann daher nicht sagen, ob Ribbonschaltflächen (ich gehe mal davon aus, dass cmd_ribbon eine ist), ein mitte Ereignis haben. :)
Vielleicht soll das aber auch
Private Sub cmd_ribbon1_mitte_Click(control As IRibbonControl) heißen?
Zumindest erhält die Prozedur ja einen Parameter control vom Typ IRibbonControl

In der aufgerufenen Prozedur hast Du ebenfalls einen Parameter ribbon allerdings vom Typ IRibbonUI
Ich würde vorschlagen:
1. ändere den Typ in IRibbonControl und dann kannst Du die prozedur so aufrufen:
rx_onload control

Wobei ich mir ernsthaft überlegen würde, den Parameter auch Control zu nennen.... denn Control ist ein Schlüsselwort und sollte nicht als Variablenname verwendet werden!