Hücre Veri Girişi Engelleme

schlecht

Altın Üye
Katılım
13 Kasım 2009
Mesajlar
337
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-02-2025
Merhaba, A1 hücresine @ işareti yazılmaz ise giriş yapılmamasını engellemek istiyorum. Yardımcı olursanız sevinirim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
A1 hücresine "@" ile başlayan bir veri girilmezse, uyarı verilsin ..... demek istiyorsunuz. Doğru mu anladım ?

Eğer öyleyse;

- Söz konusu A1 hücresini Metin (Text) olarak biçimlendirin,

-Aşağıdaki kodu, ilgili sayfa modülüne ekleyin,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Not Left(Range("A1").Text, 1) = "@" Then MsgBox "Oppppssss....."
    End If
End Sub
.
 

schlecht

Altın Üye
Katılım
13 Kasım 2009
Mesajlar
337
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-02-2025
Haluk Bey, @ ile başlayan değil @ içermeyen, mail adresi yazılması zorunlu olması için.
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,649
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
a1 seçili iken veri doğrulama yapın ve özeli seçerek aşağıdaki formülü deneyin gerekli uyarı ve düzenlemeleri yapıp denermisiniz.
=BUL("@";A1)>0
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yani; A1 hücresine yazılan verinin bir e-posta adresi olup olmadığını kontrol etmek istiyorsunuz .... öyle mi?

.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,608
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Resmi inceleyiniz.

Uygulama yaparken formül hata verecektir. Tamam diyerek işlemi tamamlayın.

Ayrıca "Hata Uyarısı" penceresine dilediğiniz mesajı yazarak gelen uyarı mesajını kişiselleştirebilirsiniz.

1546935476335.png
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bence; girilen verinin içerisinde "@" olsa bile, iyi kötü bir kontrol yaparak bu verinin geçerli bir e-posta adresi olup olmadığını da kontrol etmek iyi olur....


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objRegEx As Object
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Range("A1") = Empty Then Exit Sub
        Set objRegEx = CreateObject("VBscript.RegExp")
        With objRegEx
            .Pattern = "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,3})$"
            .Global = True
            If Not .Test(Range("A1").Text) Then
                MsgBox "Geçerli bir e-posta adresi girin!", vbCritical
                Range("A1") = Empty
                Range("A1").Select
            End If
        End With
        Set objRegEx = Nothing
    End If
End Sub
.
 
Son düzenleme:

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,649
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Haluk Hocam yine hünerinizi konuşturmuşsunuz. :D Elinize sağlık.
 

schlecht

Altın Üye
Katılım
13 Kasım 2009
Mesajlar
337
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-02-2025
Haluk Hocam, "Geçerli bir e-posta adresi girin! uyarısından sonra uygun olmayan metni hücrede bırakıyor. Örneğin Haluk yazdım hücreye
"Geçerli bir e-posta adresi girin!" uyarısı çıktı tamam a bastıktan sonra Haluk yazısı hücrede kaldı. Engellemedi sadece uyarı verdi.
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,649
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Hocamın izniyle denermisiniz.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRegEx As Object
If Not Intersect(Target, Range("A1")) Is Nothing Then
Set objRegEx = CreateObject("VBscript.RegExp")
With objRegEx
.Pattern = "^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,3})$"
.Global = True
If Not .Test(Range("A1").Text) Then
MsgBox "Geçerli bir e-posta adresi girin!", vbCritical
Range("A1").Text=""
End If
End With
Set objRegEx = Nothing
End If
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
7 No'lu mesajdaki kodu güncelledim, onu kullanın...

.
 

schlecht

Altın Üye
Katılım
13 Kasım 2009
Mesajlar
337
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-02-2025
Haluk Bey çok teşekkür ederim. Elinize sağlık.
 
Katılım
1 Eylül 2010
Mesajlar
20
Excel Vers. ve Dili
Excel 2013 Türkçe
Altın Üyelik Bitiş Tarihi
11.11.2022
7 No'lu mesajdaki kodu güncelledim, onu kullanın...

.
Hocam, liste halindeki mail adreslerini kontrol ettirip hatalı olan/olanları nasıl belirleyebiliriz?
 
Üst