• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makro ile sheetlerde belirli hücreleri silmek

Katılım
22 Mayıs 2012
Mesajlar
62
Excel Vers. ve Dili
Son sürüm - ingilizce
Merhaba arkadaşlar, örneğin excel dosyamda toplam 5 tane sheet var. Sheet 5'e geldiğim zaman aynı sheette oluşturduğum makro ile dosyayı farklı kaydetsin ve akabinde sheet 1-2-3-4'te belirlediğim hücreleri silsin. Böyle birşey yapmam mümkün müdür acaba?

Engin deneyimlerinizi ve yardımlarınızı rica ederim.
 
Merhaba,

Evet mümkün...

Sheet5 aktif olduğunda makro devreye girecek. Dosyayı farklı kayıt edecek. Daha sonra farklı kayıt sonucu oluşan dosyadaki diğer sayfalardaki bilgilermi silinecek... Yoksa asıl dosyadaki sayfalardaki bilgilermi silinecek...
 
merhaba, öncelikle ilginiz için teşekkür ederim.

Kayıt yapıldıktan sonra asıl dosyada bulunan veriler silinecek.
 
Bu konu ile ilgili yardımlarınız lütfen.
 
Merhaba,

Dosyanızın boş halini "Kayıt Türü" seçeneğinden şablon olarak kayıt edin. Sonra şablon dosyanızı doldurup kayıt edin. Kayıt ettiğiniz dosyayı kapattığınızda şablon dosyanızın içinin boş olduğunu görebilirsiniz. Eğer bu yöntem amacınıza uymuyorsa örnek dosya ekleyerek yaptırmak istediğiniz adımları detaylıca açıklayın.
 
Ekte belirttiğim dosyada sheet 1 ve sheet 2'de bazı veriler mevcut. Sheet 3'e makro butonu ile makroyu çalıştırıp öncelikle dosyayı farklı kaydetsin, kaydetme işleminden sonra ise sheet 1 ve sheet 2'de sarı renk ile belirtilen verileri silsin.
 

Ekli dosyalar

Dosyayı nereye kayıt edecek... Asıl dosyanın bulunduğu yol uygunmudur?

Siz aşağıdaki kodu deneyin. Olmayan yeri varsa düzeltiriz...

Kod asıl dosyanızın bulunduğu yere kopyasını örneğin 28_09_2012_23_53_25 ismiyle kayıt eder. Bu isim o anki sisteminizin tarih ve saat bilgilerinin birleşiminden oluşur.

Kod:
Sub KAYDET()
    Dim Dosya_Sistemi
 
    Set Dosya_Sistemi = CreateObject("Scripting.FileSystemObject")
    Dosya_Sistemi.CopyFile ThisWorkbook.FullName, ThisWorkbook.Path & "\" & Format(Now, "dd_mm_yyyy_hh_mm_ss") & ".xlsm"
 
    Sheets("Sheet1").Range("B3:E4").ClearContents
    Sheets("Sheet2").Range("A2:D3").ClearContents
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Merhaba, yazdığınız kodu denedim, şöyle bir durum var. Makroyu çalıştırdıktan sonra yeni yaratılan dosyada, veriler silinmiş halde oluyor. Yeni yaratılan dosyada veriler olsun ama asıl dosyada makro çalışıp kayıt işlemi yaptıktan sonra verileri silsin.
 
Merhaba,

Birde aşağıdaki kodu deneyiniz.

Kod:
Sub KAYDET()
    Dim Yol As String, Dosya_Adi As String
    
    Application.ScreenUpdating = False
    
    Yol = ThisWorkbook.Path
    Dosya_Adi = Yol & "\" & Format(Now, "dd_mm_yyyy_hh_mm_ss") & ".xlsx"
    
    ActiveWorkbook.Sheets.Copy
    
    ActiveWorkbook.SaveAs Filename:=Dosya_Adi, _
    FileFormat:=xlOpenXMLWorkbook, _
    Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    
    ActiveWorkbook.Close True
    
    Sheets("Sheet1").Range("B3:E4").ClearContents
    Sheets("Sheet2").Range("A2:D3").ClearContents
    
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Korhan bey çok teşekkür ederim. ilgilendiniz o kadar elinize sağlık. Tam istediğim gibi, son bir sorum olacak makro çalışlırken ilerleme çubuğu ile % tamamlama gibi bir eklenti yapabilir miyim ?
 
Merhaba,

Bunun için çalışmanıza bir userform eklemek gerekecek. Buna gerek varmı bilemiyorum. Çok hacimli bir dosya değilse kayıt etme süresi 2 saniyeyi geçmiyor.
 
aslında hacimli bir dosya toplam 31 tane sheet var ve her sheette 1360 tane veri eğer yapabilme şansım varsa çok sevinirim.
 
vermiş olduğunuz linki ve son gönderdiğiniz dosyayı inceledim aslında kayıt yaparken 0-100' ilerleme çubuğu gibi birşey eklemek istemiştim.
 
Merhaba,

Excelde kayıt etme süresini bilemediğimiz için istediğiniz nesne bu işlem için uygun olmaz. Bu sebeple ekteki uygulamayı önerdim.
 
Peqala, ilginiz için teşekkür ederim. Elinize sağlık
 
Korhan bey, şöyle bir ricam olacak. yardımlarınızla birlikte dosyanın istediğim dizine, belirli bir hücrede yazılanı dosya adı yapmasını istiyorum.

Birde bu sorduklarıma ek olarak, genel dosyamda herhangi bir hücreye tıkladığım zaman içine girilmesin, silinmesin vs. sheet'in kendisine buna yardımcı olacak bir code yazmam gerekli. Yardımlarınızı rica ederim.
 
Merhaba,

Forumda YEDEK ve KORUMA ifadeleri ile arama yapın. Birçok örneğe ulaşabilirsiniz.
 
Geri
Üst