• DİKKAT

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

Korumalı sayfada korumasız hücrelere giriş yapılırken ...

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,904
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Merhaba Arkadaşlar,
Korumalı sayfada korumasız hücrelere giriş yapıldıktan sonra imlecin kendiliğinden sonraki hücreye geçmesi için ne yapabilirim?
Bu konuda yapılmış bir çalışma da bulamadım.
Aklınıza geleni paylaşırsanız sevinirim.
Saygılarımla
 
Merhaba Sayın KURŞUN.

-- sayfadaki tüm hücreleri seçin (satır numaralarıyla sütun adlarının kesiştiği köşeye tıklayarak seçebilirsiniz)
-- HÜCRELERİ BİÇİMLENDİR menüsündeki KORUMA kulakçığından KİLİTLİyi seçili hale getirin,
-- Sayfa koruması uygulandığında işlem yapılacak hücreleri CTRL tuşu basılıyken birar kez tıklayarak seçili hale getirin,
-- İlgili hücreler seçiliyken HÜCRE BİÇİMLENDİRME menüsünde aynı yerden KİLİTLİ seçeneğindeki onay işartini kaldırın,
-- Sayfa korumasını uygularken karşınıza gelen parola yazma ekranında alt taraftaki listeden KİLİTLİ HÜCRELERİ SEÇ'in onay işaretini kaldırın,
KİLİDİ AÇIK HÜCRELERİ SEÇ'in onay işareti işaretli olsun,
-- Veri yazılacak hücrelerin veri yazma sırasına göre sağa ve alta doğru konumlanmasını sağlayın,
-- Parola ekleyerek SAYFAYI KORUMAya alın.

Artık TAB tuşuyla sağdan başlayarak veya ENTER tuşuyla Excel'in SEÇENEKLER kısmındaki ENTER ile gidilecek yön ayarına göre sağa/aşağı doğru KİLİTLİ olmayan hücreler arasında gezintinin mümkün olması gerekir.
 
Merhaba Sayın Ömer Baran hocam,
İlginize teşekkür ederim. Bunu zaten yaptım (Halit3 Hocamdan öğrenmiştim). Harf ve ok tuşlarıyla giriş yapılıyor. Benim düşündüğüm, harfe basınca hem harf yazılsın hem de bir sonraki hücreye gitsin. Bir ileri aşamasında da aklımdan geçen, belirlenen harflerin tek olarak girilebilmesi (aynı hücreye birden fazla karakter girilememesi).
Saygılarımla
 
Bu tür karakter sınırlaması için metin uzunluğu sınırlaması da kullanılabilir.

Tabi konuyu Makro-VBA bölümüne açtığınıza göre, konuyu biraz daha netleştirmenizde ve
şu hücreye şu yazılınca şuraya gitsin filan gibi kuralları net belirtmenizde yarar var sanırım.

Hayalen elbette birşeyler yazılabilir ama beklentiyi, belge yapısını, kuralları bilmeden boşa kürek çekme anlamına gelir diye düşünüyorum.
.
 
Merhaba Sayın Hocam,
Örneğin çözülmesi işimi büyük ölçüde görür.
Saygılarımla
 

Ekli dosyalar

Tekrar merhaba.

İlgili sayfanın kod bölümüne uygulayın.
-- D sütununda sayı olan I ve J sütunundaki hücreye veri yazılabilir,
-- D sütununda sayı olmayan I veya J'ye yazılan veri silinir.
-- I ve J 'ye aynı harf yazılamaz,
-- Sadece büyük harf A, B veya C yazılabilir,
-- Küçük harf veya aynı harf yazılırsa son yazılan veri silinir,
.
Kod:
[B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
If Intersect(Target, [I:J]) Is Nothing Then Exit Sub
If Cells(Target.Row, 4) = "" And Target <> "" Then Target = ""
If Cells(Target.Row, 4) >= 1 Then
        If Target <> "" And Target <> "A" And Target <> "B" And Target <> "C" Then
            Target = ""[COLOR="Red"]: Target.Activate[/COLOR]: Exit Sub
        End If
    If Target = "A" Or Target = "B" Or Target = "C" Then
        If Target.Column = 9 Then
            If Cells(Target.Row, 10) = Target Then
                Target = ""[COLOR="red"]: Target.Activate[/COLOR]
            End If
        ElseIf Target.Column = 10 Then
            If Cells(Target.Row, 9) = Target Then
                Target = ""[COLOR="red"]: Target.Activate[/COLOR]
            End If
        End If
    End If
End If
[B]End Sub[/B]
 
Sayın Ömer Baran Hocam,
İlginize çok teşekkür ederim, hemen deneyeceğim.
Görüşmek ümidiyle
Saygılarımla
 
Sayın Ömer Baran Hocam,
İlginize çok teşekkür ederim, harf yazıldıktan sonra ok ya da tab tuşuna gereksinimi var. Bir harf yazıldığında girişin bitmiş olduğunu düşünemiyor. Farklı bir giriş yapıldığında da silip aynı yerde kalabilir. Bu da uygulama yapanın mutlaka her soruyu yanıtlamasını sağlar.
Saygılarımla
 
Hatalı giriş için önceki kod'da kırmızı kısımları ekledim.
Doğru girişte bir sonraki adım örgörülebiliyor mu acaba?
Bu da öngörüelbiliyorsa ona da bakayım.
 
Günaydın Sayın Ömer Hocam,
" Target.Activate: " eklentisi görevini yaptı. Bir de sonraki hücreye geçse harika olacak. Pek çok test girişi manuel olarak yapılabilecek.
Saygılarımla
 
Tevfik Ustadım. Aşağıdaki şekilde olur mu?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I:J]) Is Nothing Then Exit Sub
If Cells(Target.Row, 4) = "" And Target <> "" Then Target = ""
If Cells(Target.Row, 4) >= 1 Then
        If Target <> "" And Target <> "A" And Target <> "B" And Target <> "C" Then
            Target = "": Target.Activate: Exit Sub
        
        End If
    If Target = "A" Or Target = "B" Or Target = "C" Then
        If Target.Column = 9 Then
            If Cells(Target.Row, 10) = Target Then
                Target = "": Target.Activate
            Else
                Cells(Target.Row + 3, 9).Select
            End If
        ElseIf Target.Column = 10 Then
            If Cells(Target.Row, 9) = Target Then
                Target = "": Target.Activate
            Else
                Cells(Target.Row + 3, 10).Select
            End If
        End If
    End If
End If
End Sub
 
Sayın askm,
İlginize teşekkür ederim. Dediğiniz pek işe yaramadı.
Sanırım girişin sadece 1 karakter uzunlukta olduğunu anlatabilmemiz lazım diye düşünüyorum.
Saygılarımla
 
Üstadım aşağıdaki kodlarda eğer I veya J sütununa A B C veya 1 karakterden uzun bir veri girerseniz hücreyi silip tekrar giriş yapmanızı istiyor.
Eğer I dolu ve J ye girilen değer - I dan farklı ise bir sonraki I hücresine gidiyor. +3 ile. J boş ise J ye geçiyor. Sonraki hücreden kasıt bu şekilde anladım. Yalnış olmuş olabilir.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I:J]) Is Nothing Then Exit Sub
If Cells(Target.Row, 4) = "" And Target <> "" Then Target = ""
If Cells(Target.Row, 4) >= 1 Then
        If Len(Target) > 1 And Target <> "" And Target <> "A" And Target <> "B" And Target  <> "C" Then 'BU SATIRDA GİRİLEN DEĞER A B C VEYA 1 KARAKTERDEN UZUNSA AYNI HÜCREDE KALIYOR.
            Target = "": Target.Activate: Exit Sub
        
        End If
    If Target = "A" Or Target = "B" Or Target = "C" Then
        If Target.Column = 9 Then
            If Cells(Target.Row, 10) = Target Then
                Target = "": Target.Activate
            Else
                Cells(Target.Row, 10).Select
            End If
        ElseIf Target.Column = 10 Then
            If Cells(Target.Row, 9) = Target Then
                Target = "": Target.Activate
            Else
                Cells(Target.Row + 3, 9).Select
            End If
        End If
    End If
End If
End Sub
[CODE]
 
Sayın askm,
İlginize çok teşekkür ederim.
Kod:
If Len(Target) > 1 And Target <> "" And Target <> "A" And Target <> "B" And Target <> "C" Then 'BU SATIRDA GİRİLEN DEĞER A B C VEYA 1 KARAKTERDEN UZUNSA AYNI HÜCREDE KALIYOR.
bu satırı ekleseniz de eklemeseniz de her halükarda, bir harf girildiğinde sonraki hücreye gitmiyor. Mutlaka ya TAB ya OK ya da ENTER tuşlarından birini istiyor.
Benim istediğim ise bu tuşları istemesin, harf girildiğinde bir sonraki hücreye geçsin.
Saygılarımla
 
Hücre aktifken çalışan bir kod yoktur. Kodun çalışması için tab-enter-ok tuşları ile tetiklenmesi gerekir.

Bunun yerine sayfanıza verileri userform yardımı ile girebilirsiniz.
 
Sayın Korhan Ayhan Hocam,
Bilgi için çok teşekkür ederim, bu aklıma gelmemişti.
Saygılarımla
 
Sayın Arkadaşlarım,
Harf yazmaya odaklanmıştık. Korhan Ayhan hocanın ifadesi ile konu kapandı derken yeni çalışma deyip temizlemeye çalışınca Run-time Error '13': ve type mismatch verdi. Excelin beğenmediği şey ne olabilir?
Saygılarımla
 

Ekli dosyalar

Merhaba Arkadaşlar,
Problemimi On Error Resume Next satırı ile çözdüm diye düşündüm ama bu defa da sürekli döngüye giriyor. Nasıl çözülebilir?
Hepinize teşekkür ederim.
Saygılarımla
 
Son düzenleme:
Geri
Üst