• DİKKAT

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

hücre boşsa kaydetme uyarı ver

Katılım
23 Mayıs 2014
Mesajlar
92
Excel Vers. ve Dili
2013 türkçe
merhaba;

forumdaki bütün konuları inceledim kodlarıda uygulamaya çalıştım fakat başarılı olamadım. örnek bir excel tablosun e4,e40,c40,e6,c4,c62,e62 hücreleri boşken kaydedilmeye çalışılırsa uyarı vermesini ve kaydetmemesini istiyorum.

aşağıdaki kodu kullandım fakat başarılı olamadım.
yardımcı olursanız çok sevinirim.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [e4,e40,c40,e6,c4,c62,e62]) Is Nothing Then Exit Sub
If Target.Value = "" Then
MsgBox "Boş Geçilemez..!!", vbCritical, Application.UserName
Else

End If

End Sub
 
. . .

BuÇalışmaKitabı kod bölümüne yapıştırın.

Sayfa1 deki ilgili hücreler boş ise uyarı verir ve kaydetmez.

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim S1 As Worksheet
    Set S1 = Sheets("Sayfa1")
    
    If S1.Range("e4") = "" Or S1.Range("e40") = "" Or _
    S1.Range("c40") = "" Or S1.Range("e6") = "" Or _
    S1.Range("c4") = "" Or S1.Range("c62") = "" Or _
    S1.Range("e62") = "" Then
    
    Cancel = True
    MsgBox "Boş Hücre Var", vbCritical
    Exit Sub
    End If

End Sub

. . .
 
Kodu, ThisWorkbook kısmına ekleyin.
Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Arr()
    Arr = Array("e4", "e40", "c40", "e6", "c4", "c62", "e62")
    For i = 0 To UBound(Arr)
        If Range(Arr(i)) <> "" Then s = s + 1
    Next
    If s <> 7 Then MsgBox "Boş Hücreleri Doldurunuz": Cancel = True
End Sub
 
Sn. Hüseyin Çoban Ve Sn. Hamit can desteğiniz ve yardımlarınız için teşekkürler.
iyi çalışmalar
 
Alternatif olsun,

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim dizi()
dizi = Array("A1", "A2", "A3")
For Each say In dizi
If Range(say) = "" Then
MsgBox say & " hücresini doldurunuz": Cancel = True
Exit For
End If
Next say
End Sub
 
Merhaba bu işlemi istenilen sheete mi yazacağız, yoksa ayrı bir modül e mi?

Teşekkürler.

Alternatif olsun,

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim dizi()
dizi = Array("A1", "A2", "A3")
For Each say In dizi
If Range(say) = "" Then
MsgBox say & " hücresini doldurunuz": Cancel = True
Exit For
End If
Next say
End Sub
 

Ekli dosyalar

Son düzenleme:
3 nolu mesajda sayın hamitcan'ın belirttiği gibi kod sayfasında ThisWorkbook (BuÇalışmaKitabı) bölümüne yapıştırmanız gerekiyor.
 
3 nolu mesajda sayın hamitcan'ın belirttiği gibi kod sayfasında ThisWorkbook (BuÇalışmaKitabı) bölümüne yapıştırmanız gerekiyor.

Teşekkür ederim, ancak dosyayı da ekledim olmadı.
 

Ekli dosyalar

Hatalı bölüme uygulamışsınız.

ThisWorkBook bölümüne uygulamanız gerekiyor.
 
Geri
Üst