• DİKKAT

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

Excel zorunlu alanlar dolmadan kayıt yapmasın

  • Konbuyu başlatan Konbuyu başlatan fkara
  • Başlangıç tarihi Başlangıç tarihi
Katılım
10 Ocak 2013
Mesajlar
13
Excel Vers. ve Dili
2007
Merhabalar, İyi akşamlar,

Vba konusunda biraz yeniyim bu sebeple kodları biraz anlasam da
tam olarak yazamıyorum.

2 çalışma sayfam var ve g sütununda bir satıra veri yazarsam aynı satırda h, ı, j ve k sütunlarının da dolmasını istiyorum. Bu koşul 2 çalışma sayfası içinde geçerli olacak.

Örneğin g3 satırına bir şey yazarsam h3, ı3, j3, k3 hücrelerine de veri yazmalıyım.

g4 satırına bir şey yazmadan g5 satırına bir şey yazarsam h5, ı5, j5, k5 e veri zorunlu olacak ve dosya kayıt edilemeyecek.

Umarım anlatabilmişimdir. Ekte örnek dosya ve sitelerden bulunup biraz devşirdiğim kod var.

Yardımlarınız için şimdiden teşekkürler. İyi akşamlar
 

Ekli dosyalar

Arkadaşlar Günaydın,

Bu konu hakkında yardımcı olabilecek birisi var mı?
 
İyi akşamlar,

Sanırım çözüm bulunamamış. Makro dışında çözüm var ise oda olur arkadaşlar.
 
Anlaşılan cevap verecek arkadaş bulamadık. Sağlık olsun.
 
Userform kullanın.:cool:
 
Cevap verdiğiniz için teşekkür ederim. User form hakkında pek bir bilgim yok. Bu işi çözmekten daha uzun sürecektir.

Teşekkürler iyi akşamlar.

O zaman 1 sayfa yapın.Orada girilecek verileri oluşturun.O sayfaya girdiğiniz verileri ilgili sayfaya aktarmak için bir buton koyun.O butonla verileri girilecek sayfaya aktarın.Butona girilecek kodları yazarken önce bir koşul oluşturun.O koşula göre verilerinizi aktarın.:cool:
 
Deneyiniz.

Kod:
Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Sayfa(), S1 As Worksheet, X As Byte, Veri As Range, Onay As Byte
    
    Sayfa = Array("Sayfa1", "Sayfa2")
    
    For X = 0 To UBound(Sayfa)
        Set S1 = Sheets(Sayfa(X))
        S1.Select
        For Each Veri In S1.Range("G2:G1000")
            If Veri.Value <> "" Then
                If WorksheetFunction.CountA(Veri.Offset(0, 1).Resize(1, 4)) <> 4 Then
                    Cancel = True
                    Onay = MsgBox("Zorunlu hücreler doldurulmadığı için dosyayı kaydet işlemi yapamazsınız !" & Chr(10) & Chr(10) & _
                                  "(Evet) - Bilgileri gireceğim." & Chr(10) & "(Hayır) - Veriyi sileceğim.", vbYesNo + vbCritical, "Uyarı")
                    If Onay = vbYes Then
                        Veri.Select
                        Exit Sub
                    End If
                    If Onay = vbNo Then
                        Veri.Select
                        Veri.Resize(1, 5).ClearContents
                        Exit Sub
                    End If
                End If
            End If
        Next
    Next
End Sub
 
Korhan Bey çok teşekkür ederim. Çalışıyor. Çok yardımcı oldu bana.. Nasıl bir yük kalktı üzerimden anlatamam.. Sağolun..

Orion Bey size de teşekkürler.
 
Geri
Üst