Add-Ins forsvinder i Excel 2016
Hejsa.Jeg har her i mit firma en lille opgave. Opgaven lyder ganske enkelt at der for nogle år tilbage blevet lavet et lille VBA kode til Excel. Den gang var det til Excel 2007 eller 2010. Vi bruger i dag Office 365. Nu ligger det sådan at det add-ins ikon forsvinder fra excel under opstart, der er andre ikoner som ikke forsvinder, og som er "nabo" til mit ikon. Jeg kan godt tilføje den, men næste gang jeg starter excel er den ikke tilgænglig. Den er stadig markeret i Add-Ins i Excel, men den bliver bare ikke vist. Jeg har gennemsøgt google for løsninger, men de løsninger er for at "beholde" ikonet, men nabo ikoner forsvinder ikke, så jeg føler at det er selve koden der er årsagen til det, men jeg kan ikke gennemskue det og jeg håber at nogen her kan hjælpe mig.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim cb As CommandBars
Dim name As Variant
Dim j As Integer
Dim i As Integer
On Error Resume Next
Set cb = Application.CommandBars
For j = cb.Count To 1 Step -1
If cb(j).name = "iSeries Access" Or cb(j).name = "Client Access" Then
cb(j).Visible = False
name = cb(j).name
With cb(name)
For i = .Controls.Count To 1 Step -1
If .Controls(i).Caption = "Format BPCS Bill Of Material..." Then
.Controls(i).Delete
GoTo nn
End If
If .Controls(i).Caption = "Custom" Then
.Controls(i).Enabled = True
.Controls(i).Visible = True
End If
If .Controls(i).Caption = "&Dialog" Then
.Controls(i).Enabled = True
.Controls(i).Visible = True
End If
nn:
Next
End With
cb(j).Visible = True
j = 1
End If
Next
With cb("Data").Controls.Item("Transfer &Data To iSeries...")
.Enabled = True
.Visible = True
End With
With cb("Data").Controls.Item("T&ransfer Data From iSeries...")
.Enabled = True
.Visible = True
End With
Set cb = Nothing
End Sub
Private Sub Workbook_Open()
Dim ad As AddIns
Dim found As Boolean
Dim CBar As CommandBars
Dim Mbar As CommandBar
Dim CMbar As CommandBarControl
Dim i As Integer
Dim warn As Dialog
Dim j As Integer
Set CBar = Application.CommandBars
'On Error Resume Next
Set ad = Application.AddIns
'Application.DisplayAlerts = True
'found = False
found = True
Application.DisplayAlerts = True
'For i = ad.Count To 1 Step -1
' If ad(i).name = "cwbtfcai.dll" Then
' found = True
' If ad(i).Installed = False Then
' ad(i).Installed = True
' End If
' Exit For
' End If
'Next
'Set ad = Nothing
If found = False Then
warn = MsgBox("Couldn't find 'iSeries...' or 'Client Access Data Transfer' addin!", vbCritical + vbOKOnly)
Application.AddIns("Simple_Excel_iSeries").Installed = False
Workbooks("Simple_Excel_iSeries.xla").Close
Else
For i = CBar.Count To 1 Step -1
If CBar(i).name = "IBM i Access" Or CBar(i).name = "iSeries Access" Then
Do
If CBar(i).Visible = True Then
Exit Do
End If
Loop
'CBar(i).Visible = False
For j = 1 To CBar(i).Controls.Count
With CBar(i).Controls(j)
' .Enabled = False
End With
Next
With CBar(i).Controls.Add(Type:=msoControlButton, before:=1)
.Caption = "Format BPCS Bill Of Material..."
.OnAction = "Format_BPCS_Excel"
.FaceId = 173
.Visible = True
.Enabled = True
End With
CBar(i).Visible = True
End If
Next
End If
'With CBar("Data").Controls.Item("Transfer &Data To iSeries...")
' .Enabled = False
'End With
'With CBar("Data").Controls.Item("T&ransfer Data From iSeries...")
' .Enabled = False
'End With
Set CBar = Nothing
Application.DisplayAlerts = False
End Sub
P.S. Hvordan pokker laver man indryk i koden så det er mere læsevenlig?