Re : Détecter si une macro complémentaire est active;ATPVBAEN.XLA
bonjour le fil
Stapple ce qui suit te viendra peutêtre en aide
'Ouvre et installe une macro complémentaire dans une
'instance d'Excel créée par Automation puis lance une
'procédure de la macro complémentaire
'à partir d'un code posté par Peter O'Reilly, mpep
Sub LanceProcDansXla()
Set objXL = New Excel.Application
With objXL
.Workbooks.Open strFile ' strFile = nom et chemin du fichier .xla
.Run "MyAddin.xla!MaProc" ' éventuellement avec paramètres
End With
End Sub
'tester si une macro complémentaire est ouverte
'(suppose qu'on en connaisse le nom)
'fs, d'après Jim Rech
Function AddinOpened()
Dim FN As String
On Error Resume Next
FN = Workbooks("MyAddin.xla").Name
AddinOpened = Err = 0
End Function
'code original de Jim Rech
Sub a()
'Jim Rech, mpep
Dim FN As String
On Error Resume Next
FN = Workbooks("MyAddin.xla").Name
MsgBox IIf(FN = "", "Not open", "Open")
End Sub
Public tabAddins()
Sub Addins_Installed()
Dim i%, XLA As AddIn
i = 0
For Each XLA In AddIns
If XLA.Installed Then
ReDim Preserve tabAddins(i)
tabAddins(i) = XLA.Title
i = i + 1
End If
Next XLA
End Sub
Sub MacrosXla(OnOff As Boolean)
Dim i%
For i = 0 To UBound(tabAddins)
AddIns(tabAddins(i)).Installed = OnOff
Next
End Sub
Sub testMacros()
MacrosXla True
End Sub
bonjour le fil
Stapple ce qui suit te viendra peutêtre en aide,
Sub XlaProperties()
Workbooks.Add
With ActiveSheet
.Rows(1).Font.Bold = True
.Range("A1
1").Value = _
Array("Name", "Full Name", "Title", "Installed")
For i = 1 To AddIns.Count
.Cells(i + 1, 1) = AddIns(i).Name
.Cells(i + 1, 2) = AddIns(i).FullName
.Cells(i + 1, 3) = AddIns(i).Title
.Cells(i + 1, 4) = AddIns(i).Installed
Next
.Range("A1").CurrentRegion.Columns.AutoFit
End With
End Sub
à bientôt