• DİKKAT

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

Kayıtlı verinin değiştirilmesi

Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Herhangi bir sayfada kaydedilen verilerin değiştirilirken veya silinirken uyarı vermesini, bunu her değişiklikte yapmasını istiyorum. Fakat boş hücreye veri girerken veya kaydedilmemiş veriyi silerken aynı uyarıyı vermemeli.Bir nevi "bu veri daha önceden kayıtlı bir veri değişiklik yapmak istediğinize eminmisiniz?" diyecek bir butona ihtiyacım var. Yardımcı olabilirmisiniz?
 
Bir örnek dosyada sorunuzu açıklarmısınız?
 
Evet tam olarak istediğim bu fakat bunu kullanacağım sayfa bu tip kayıtlı verilerle dolu. Uyarıyı kayıtlı verinin olduğu hücreyi seçtiğimizde değilde onu değiştirmeye çalıştığımızda vermesi mümkünmü? Ayrıca gizli sayfayı çıkışta sileceği için bu dosyanın boyutunu etkilemeyecek anladım kadarıyla değil mi?
 
Uyarıyı kayıtlı verinin olduğu hücreyi seçtiğimizde değilde onu değiştirmeye çalıştığımızda vermesi mümkünmü?
Ancak değiştirip hücreden çıktıktan sonra uyarı alabilirsiniz. Kodu worksheet_change olayına yazarak deneyin.
Ayrıca gizli sayfayı çıkışta sileceği için bu dosyanın boyutunu etkilemeyecek anladım kadarıyla değil mi?
Evet
 
Sayfa1 ve Sayfa2'deki kodların ilk satırlarını dediğiniz gibi değiştirdim. Fakat bir sorun var. Ekteki dosyada açıklama yaptım.
 
Ekteki örneği inceleyin. Sayfa2 deki kodların bir önemi yoktur. Sayfa1 in kopyası olduğundan bu kodlarda oluşmaktadır.
 
:lol: Haklısınız zaten kod sayfa2yı kaydederken siliyordu.Dalgınlık işte :lol:
Kod çok güzel olmuş çok teşekkürler.Minnettarım!...
 
Sayın leventm,
Bu uyarıyı her seferinde vermesini nasıl sağlarız. Yani kayıtlı verilerin olduğu hücreler her değiştiğinde uyarıyı tekrar vermesi mümkünmü?
 
"incele" isimli makroyu aşağıdaki ile değiştirin.

[vb:1:1c400876b0]Sub incele()
adr = Sheets("sayfa2").[aa65536]
sor = MsgBox(adr & " HÜCRESİNDEKİ VERİYİ DEÐİÞTİRMEK İSTEDİÐİNİZDEN EMİNMİSİNİZ?", vbYesNo)
If sor = vbNo Then
Range(adr) = Sheets("sayfa2").Range(adr)
Exit Sub
End If
Sheets("sayfa2").Range(adr) = Range(adr)
End Sub
[/vb:1:1c400876b0]
 
Sayfa 2 deki kodları silmek için

[vb:1:fb3716b626]
Sub VBAsil()
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
If VBComp.Name = "Sayfa2" And VBComp.Type = 100 Then
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Next VBComp
End Sub
[/vb:1:fb3716b626]
 
Geri
Üst