Çözüldü Silinen Tarih Hücresi İçin Uyarı Çıkarma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

hakki83

Site Üyesi

Excel Versiyonu
Excel 2016
Excel Sürümü
32 Bit
Excel Dili
Türkçe
Selamlar


A2 ile A10000 arası sırayla tarihler yazılı.

Eğer yanlışlıkla bu tarihlerden bir veya birden fazlası yanlışlıkla silinirse,

Activate olayında MsgBox ile " ........ Hücre-Hücrelerdeki Tarihler Yanlışlıkla Silinmiş, Düzeltiniz"

uyarısı verdirebilir miyiz?

Silinmiş bir tarih yoksa, herhangi bir uyarı vermeyecek.

(Not: Sayfayı Koru özelliğini bu dosyada kullanmıyorum)
 
Çözüm
Daha evvel de belirtmişimdir.
On Error Resume Next kod satırı mümkün olduğunca kullanılmamalıdır.
Sebebi ve yapılacak işlem net/biliniyor olduğunda kullanılmalıdır.

Her neyse; A2 ve son dolu hücre dahil hatalı veri girişi (tarih dışında bir değer içermesi) veya
DELETE ile içeriğinin silinmesini de kapsayacak şekilde kodu düzenledim.

Kodun kapsamadığı durum, son dolu hücrenin DELETE ile içeriğinin boşaltılmış olması halidir.

VBA:
Görüntülemek için giriş yapmalısınız.
(7 satır)
Merhaba @hakki83

İlk netleştirilmesi gereken şey listedeki başlangıç tarihi.
Diyelim A2'ye 1/5/2022 yazılmış durumda ve devam eden satırlarda da ardışık tarihler mevcut.
2'nci satır silinirse görüntüye göre başlangıç tarihi 2/5/2022 olarak görünür ve eksiklik (1/5/2022) tespit edilemez.

Başlangıç tarihinin ne olduğu makro kodu içerisinde belirlenebilir veya
örneğin A1 hücresine HÜCRE AÇIKLAMASI olarak yazılarak belirlenebilir
ya da başka bir sayfada yahut asıl sayfanın konuyla/işlemlerle ilgisi olmayan bir hücresine yazılarak belirlenebilir.

Başlangıç tarihinin A1 (başlık) hücresine HÜCRE AÇIKLAMASI olarak yazıldığını varsaydım.

VBA:
Görüntülemek için giriş yapmalısınız.
(7 satır)
 
Ömer hocam merhaba
Emeğinize sağlık.
A1 hücresinde sadece başlık var.

Fakat A2 ile A10.000 arasında tarihler var ardışık.
Ve bu tarihlerde, A sütunun hiçbir yerinde açıklama (Comment) yok. (Açıklama olan hücreler iç bölgede)

MsgBox ile yanlışlıkla silinen hücreler için bir uyarı verdirebilirsek, yeterlidir.

Ama eğer yapılabilirse MsgBox ile hücrenin içindeki veri yazılsa çok iyi olur. Çünkü dosya gönderdiğim yerlerin çoğu çok acemi.

Ctrl + Yukarı - Aşağı Ok ile bulamazlar, yapamazlar.

Örnek: "10.09.2023 tarihini yanlışlıkla silmişsiniz, düzeltiniz." gibi. Bu kadar olsa yeterlidir.

Eğer bu kodu yazmak zor olursa, hücrenin adresi de olur.

Bu arada tarihleri 01.01.2022'den (A2) itibaren başlattım.

….

Bunların haricinde eğer tutup da yanlışlıkla bir satır silerlerse ne olur? Dosya tamamen bozulmuş olur. Onu da yapmasınlar artık.
 
Açıklamam tam anlaşılamamış sanırım.
-- Veri silmekten kastınız hücre içeriğinin boşaltılması mıdır yoksa komple SATIR SİLİNİRSE ne yapılacaktır?
-- Başlangıç tarihi (A2 hücresindeki tarih) nereden alınacaktır.
Unutmayın A2 hücresi de silinebilir veya 2'nci satır komple silinebilir.
Bu nedenle başlangıç tarihinin başka bir hücreden, uygun göreceğiniz bir hücrenin hücre açıklamasından alınması veya
doğrudan kod içerisinde tanımlanması gerekir diye düşünmüştüm.
 
Ömer hocam
Veri silmekten kastım, A sütunundaki herhangi bir hücreyi, Delete tuşuna yanlışlıkla basarak silmek.

Fakat olayı şöyle de düşünebiliriz.

Hiç tarih verisi olarak düşünmeyelim, A2:A10000 arasındaki veriler diyelim.
Bu hücrelerden biri yanlışlıkla silinirse, hücre adresiyle birlikte uyarı versin.



Diyelim ki yanlışlıkla satırı komple sildiler. Bu durumda ne olur? Ben de çözemiyorum.

Tarihler eksilir. Ve bunu zaten satır ekleyerek düzeltemezler. Tekrar temiz yeni dosya göndermem gerekir.
 
Siz işleyişi/düzeni belirteceksiniz ki pratik/düzene uygun kodlama oluşturulabilsin.

Benim anladığım şöyle oldu:

VBA:
Görüntülemek için giriş yapmalısınız.
(5 satır)
 
A2 hücresinin de silinmiş olabileceğini düşünerek kodu yeniden düzenledim.
A sütunundaki son dolu hücredeki tarihten hareket etmek daha doğru olacak gibi görünüyor.

VBA:
Görüntülemek için giriş yapmalısınız.
(6 satır)
 
Ömer hocam denedim.

Birinci kod biraz sayfayı yavaşlatmıştı. Ama ikinci kodda hiç yavaşlatma olmadı. Alan eklemeye de gerek kalmadı sanıyorum.

Çok teşekkürler bütün emekleriniz için.
 
Bir de diyelim ki kullanıcı Delete’ye basmadı da, tarih sütununda yanlışlıkla bir harfe bastı. Ve farkında değil.
Bu durumda en başa On Error eklemek yeterli olur mu? Yoksa başka bir şey mi eklemek gerekir Ömer hocam?
 
Daha evvel de belirtmişimdir.
On Error Resume Next kod satırı mümkün olduğunca kullanılmamalıdır.
Sebebi ve yapılacak işlem net/biliniyor olduğunda kullanılmalıdır.

Her neyse; A2 ve son dolu hücre dahil hatalı veri girişi (tarih dışında bir değer içermesi) veya
DELETE ile içeriğinin silinmesini de kapsayacak şekilde kodu düzenledim.

Kodun kapsamadığı durum, son dolu hücrenin DELETE ile içeriğinin boşaltılmış olması halidir.

VBA:
Görüntülemek için giriş yapmalısınız.
(12 satır)
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Site Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
13
Geri
Üst