XL 2013 Supprimer un fichier xlam dans le dossier des addins par vba

patricktoulon

XLDnaute Barbatruc
bonjour a tous
est il possible de supprimer un fichier xlam dans le dossier des addins par vba (toute version d'Excel)
j'ai testé et j'ai " permission refusée"

VB:
Sub testg()
Dim vers$, fichierxlam$
vers = "4.2.2"
fichierxlam = Environ("AppData") & "\Microsoft\AddIns" & "\calendar version " & vers & ".xlam"

critere = vbNormal Or vbHidden Or vbReadonly Or vbSystem
If Dir(fichierxlam, critere) <> "" Then Kill fichierxlam
End Sub
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bon ben voila en fait pour supprimer et remettre une autre version du xlam
il suffit pas de décocher la ref
il faut aussi désinstaller la ref en le décochant dans les option de l'application
et donc par vba on ferme tout simplement le xlam comme un workbook
voila j'ai mon bouton create xlam dans mon creator qui fonctionne a merveille
VB:
Private Sub CommandButton7_Click()    'bouton créer un XLAM
    CommandButton2_Click
    Dim Wbk, frm, fichier$, codeevent, fichierxlam, modul, calling
    fichier = Environ("userprofile") & "\Desktop\calendarTemp.xlsm"

    On Error Resume Next
    With ThisWorkbook.VBProject    'on deactive la reference si elle est active
        .References.Remove .References("patricktoolcalendar")

    End With
    Err.Clear
    Workbooks("calendar version 4.2.2.xlam").Close    'on ferme le xlam pour un déinstalation complete
    Err.Clear
    'on supprime le xlam
    fichierxlam = Environ("AppData") & "\Microsoft\AddIns" & "\calendar version " & vers & ".xlam"
    If Dir(fichierxlam) <> "" Then Kill fichierxlam
    Err.Clear
    frm = Environ("userprofile") & "\DeskTop\Calendar.frm": ThisWorkbook.VBProject.VBComponents("Calendar").Export frm
    If Err.Number > 0 Then MsgBox "l'export temporaire sur le bureau du calendrier a echoué": Exit Sub
    Application.ScreenUpdating = False
    Set Wbk = Workbooks.Add
    Application.DisplayAlerts = False
    Wbk.SaveAs Filename:=fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Application.DisplayAlerts = True
    Wbk.VBProject.VBComponents.Import frm
    Set modul = Wbk.VBProject.VBComponents.Add(1)
    modul.Name = "CallPublicCalendar"
    calling = "Public Function calendrier(Optional objX As Variant, Optional Side As Long = 2, Optional top As Long = 0, Optional optionRegionale As Long = 1000)" & vbCrLf
    calling = calling & "calendrier=calendar.showx(objx,side,top,optionRegionale)" & vbCrLf
    calling = calling & "end function"
    With Wbk.VBProject.VBComponents.Item("CallPublicCalendar").CodeModule
        .AddFromString calling
    End With
    Wbk.VBProject.Name = "PatricktoolCalendar"
    Wbk.VBProject.Description = " calendrier multilingue  modal et responsif"
    Wbk.Save
    If Dir(fichierxlam) <> "" Then Kill fichierxlam
    Wbk.SaveAs Filename:=fichierxlam, FileFormat:=xlOpenXMLAddIn
    Wbk.Close
    Kill frm
    Kill Replace(frm, ".frm", ".frx")
    Kill fichier
    MsgBox " Création du XLAM reussi!"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 508
Messages
2 089 142
Membres
104 047
dernier inscrit
bravetta