MODUL Silme Makrosu Hk.

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
138
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Merhaba,

Bu kıymetli web sitesi sayesinde aşağıdaki VBA Koduna ulaştım. Kod sorunsuz görevini yapıyor, yani benim istediğim Modülleri siliyor ve Excel dosyasını kaydediyor. Fakat sorun şu. Dosyayı kapattıktan sonra, sildiğine bizzat şahit olduğum modüller, ben dosyayı yeniden açınca tekrar geri geliyor. Acaba sebebi ne olabilir ?

Yardım ve desteğiniz için şimdiden Teşekkür Ederim

Sub Delete_Module()
On Error Resume Next
Set VBEref = Application.VBE.ActiveVBProject.VBComponents
For Each VBComponent In VBEref

If VBComponent.Name = "Module1" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module2" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module7" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module41" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module50" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module9" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module48" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module55" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module49" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module60" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module5" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module30" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module6" Then
VBEref.Remove VBComponent
End If

If VBComponent.Name = "Module57" Then
VBEref.Remove VBComponent
End If


Next

ActiveWorkbook.Save

End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba
ActiveWorkbook.Save satırı yerine thisworkbook.save dener misiniz.

Eğer düzelmezse dosyanızı ekleyin kontrol edelim.
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
138
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Merhaba
ActiveWorkbook.Save satırı yerine thisworkbook.save dener misiniz.

Eğer düzelmezse dosyanızı ekleyin kontrol edelim.
Muzaffer bey denedim. Kodların silindiğini gördüm evet, fakat dosyayı kapatıp yeniden açtım ve silindiğini bizzat gördüğüm modüller geri gelmiş maalesef
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
138
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Muzaffer bey denedim. Kodların silindiğini gördüm evet, fakat dosyayı kapatıp yeniden açtım ve silindiğini bizzat gördüğüm modüller geri gelmiş maalesef
Bu arada dosyam 3. kişilere ait kişisel bilgileri içeren bir dosya olduğu için maalesef ekleyemiyorum, lütfen yanlış anlamayın Muzaffer Bey
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Dosyadaki bilgilerin tamamını silebilirsiniz.
kod kısmında hiçbir şey silmeyin.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Module32 de bulunan "FARKLIKAYDETTEST" kodu içinde bulunan
Kod:
ThisWorkbook.SaveAs Filename:="d:\Desktop\" & DosyaAdi, FileFormat:=xlExcel12
Satırı dosyayı masaüstüne farklı kaydediyor.
Orijinal dosyadaki kodların hiçbiri silinmemiş oluyor.
Orijinal dosyayı farklı kaydetmek yerine normal kaydetmek için o satırı silin yerine
Kod:
ThisWorkbook.Save
bu satırı ekleyin.

Kodları çalıştırmadan önce dosyanızın mutlaka yedeğini alın. Çünkü tüm kodlar silinecektir.
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
138
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Anladım Muzaffer bey, Deneyeceğim fakat dosyayı sonradan Manuel istediğim bölgeye Manuel atmak zorunda kalıyorum. Zaten o yüzden FARKLIKAYDETTEST makrosunu oluşturmuştum. Fakat dediğinizi yapacağım o ayrı. Sanırım bahsettiğim şekilde yani farklıkaydettikten sonra bu işi yapabilmenin bir yolu yok. Doğru mu anladım acaba?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Eğer hem orijinal dosyadaki kodları silmek ve hem de farklı kaydet ile bir kopyasını almak isterseniz.
Kod:
ThisWorkbook.SaveAs Filename:="d:\Desktop\" & DosyaAdi, FileFormat:=xlExcel12
satırını silmeyin aşağıdaki gibi bir üst satırda dosyayı kaydedebilirsiniz.

Kod:
ThisWorkbook.Save
ThisWorkbook.SaveAs Filename:="d:\Desktop\" & DosyaAdi, FileFormat:=xlExcel12
yada

Aşağıdaki satır ile dosyanın bir kopyasını farklı kaydedersiniz. Orijinal dosya açık kalır.

Kod:
ThisWorkbook.SaveCopyAs Filename:="d:\Desktop\" & DosyaAdi
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
138
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Sizi çok yoruyorum kusuruma bakmayın Muzaffer Bey, Orjinal dosyadaki kodları silmeden, kopya dosyada modül silmenin bir yolu yok mu şeklinde sormak istemiştim.
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
Hiç kod olmayacaksa kopya dosyayı xlsx kaydedin. Bu kodlara hiç gerek kalmaz.
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Sizi çok yoruyorum kusuruma bakmayın Muzaffer Bey, Orjinal dosyadaki kodları silmeden, kopya dosyada modül silmenin bir yolu yok mu şeklinde sormak istemiştim.
Masaüstüne kaydedilen dosyada kodlar kalıyor mu? Onu kontrol ettiniz mi?
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
138
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Masaüstüne kaydedilen dosyada kodlar kalıyor mu? Onu kontrol ettiniz mi?
Hayır Muzaffer Bey, Her iki dosyada da kodlar silinmiyor. İlginç olan, dosyayı kapatmadan baktığımda silinmiş olması, dosyayı kapatıp açınca kodlar geri geliyor. Bu arada kopya dosyayı kapatmadan önce değişiklikleri kaydetmek istiyormusunuz sorusuna Hayır cevabı verince bu oluyor diyeceğim ama evet dediğimde bile aynısı oluyor.

Sub FARKLIKAYDETTEST()
'
' FARKLIKAYDETTEST Makro
'
Call Delete_Module

Application.ScreenUpdating = False
Application.Calculation = xlManual

Dim DosyaAdi As String
DosyaAdi = Format(Date, "dd mmmm yyyy dddd") & " " & " - TEST " & ".xlsb"
ActiveWorkbook.Save
ThisWorkbook.Save
ThisWorkbook.SaveAs Filename:="C:\Users\Monster\Desktop\PROJE TEST\" & DosyaAdi, FileFormat:=xlExcel12


Call ANATABLOYAGIT

Call Delete_Module
ActiveWorkbook.Save
ThisWorkbook.Save

Range("B2").Select
'
End Sub
 
Üst