Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel VBA: Jak na vymazání modulu z jiného sešitu

Ahoj ve spolek, mám tu takovej špek a už mi dochází nápady a hlavně trpělivost.
Mám sešit "faktura", který obsahuje toto makro pro uložení kopie do stanovené složky

Private Sub uloz() 

Dim newFile As String, fName As String


'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
On Error Resume Next
MkDir ("E:\Faktury")
MkDir ("E:\Faktury\Fakturace")
On Error GoTo 0
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-


'nastavení cesty pro uložení na disk E v Module2
    Dim ThisBook As Workbook, WkSht As Worksheet
    Set ThisBook = ThisWorkbook
    fName = CestaProUlozeni & Range("V7").Value
    newFile = fName
    ActiveWorkbook.SaveCopyAs Filename:=newFile & ".xls"
    Application.Workbooks.Open (newFile & ".xls")
    For Each WkSht In ActiveWorkbook.Worksheets
        Select Case WkSht.Name
             
             '***************************************
             'Listy, které mají být vyloučeny (přejmenovat podle potřeby)
        Case "Zákazníci"
             '***************************************
             
            Application.DisplayAlerts = False
            WkSht.Delete
            Application.DisplayAlerts = True
        Case Else
             'do nothing
        End Select
        Application.CutCopyMode = False
    Next WkSht
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    

    ActiveWorkbook.Save
End Sub

Funguje to tak, že po stisku tlačítka se uloží kopie sešitu do stanovené složky, tento nově vytvořený sešit (např: 20110011 franta novák.xls) se otevře a makro z něj odstraní list zákazníci, uloží změnu a sešit ukonči a uloží změny v sešitě faktura.

A já bych rád aby při odstranění listu zákazníci ze sešitu (20110011 franta novák.xls), zároveň došlo i k odstranění modulu konkrétně module1.

pro odstranění modulu mám tento kód:

Sub odstranit_modul()
Dim vbCom As Object 
Set vbCom = Application.VBE.ActiveVBProject.VBComponents
vbCom.Remove VBComponent:= vbCom.Item("Module1")
End Sub

Bohužel se mi nedaří tyto dva kódy spojit dohromady aby fungovaly podle představ. Buď nedojde k odstranění modulu nebo se naopak odstraní ze zdrojového sešitu "faktura", což je nežádoucí.
Máte někdo potuchy jak na to?
Děkuji

Předmět Autor Datum
Tak se mi tento problém podařilo vyřešit oklikou přes vložení kódu do Workbook_Open a sadu podmínek.…
Siki83 08.06.2012 21:15
Siki83
Namiesto: Call kontrola Použi (so správnym názvom modulu): Run "Module1.kontrola" Potom budeš mô…
los 09.06.2012 09:34
los
Díky to je přesně ono. :-) Jak jednoduché :-[ poslední
Siki83 09.06.2012 11:03
Siki83

Tak se mi tento problém podařilo vyřešit oklikou přes vložení kódu do Workbook_Open a sadu podmínek. Bohužel mi tu nastal další zádrhel (se kterým sem počítal). Ve Workbook_Open mám ještě volání makra (Call kontrola), které bylo právě v tom mazaném modulu. Po jeho odstranění vybíhá hláška Compile error: Sub or Function not defined.
Moje chybná domněnka byla že využiju On Error Resume Next, což se ukázalo jako nefunkční. Věděl by někdo jak na tento "zádrhel"?

Zpět do poradny Odpovědět na původní otázku Nahoru