bağlantılı listeleme yapma

Katılım
1 Şubat 2017
Mesajlar
22
Excel Vers. ve Dili
Office Excel 2016 verisoyonu
Dolaylı Veri doğrulama

Ben excelde bağlantılı liste yapıyorum. Bu işlem için formüller ksımında seçimden oluştur sadece üst satır seçili olacak şekilde hazılrıyorum ürünlerin olduğu satırı başka bir sayfada veri doğrulama listemele yöntemi ile getirtiyorum ve ürüne bağlı çeşitleri listelemek için yine veri doğrulama yapıyorum =dolaylı(ı3) formülüyle. Ama şöyle bir sıkıntı var ürüne bağlı çeşit kısmından bazıları açılıyor bazıları açılmıyor.

Liste yapılacak sayfa

Listenecek ürün ve çeşitleri
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
916
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kontrol etmen gerekenler
1. Adlandırılmış Aralıklar ve İsim Eşleşmesi
  • Her ürün için ayrı bir adlandırılmış aralık (named range) tanımlanmış olmalı.
  • Bu aralıkların isimleri, ürün adlarıyla birebir aynı olmalı (boşluk, alt çizgi, özel karakter farkı olmamalı).
  • Excel, ad tanımlarında boşluk, noktalama vb. karakterleri desteklemez; örneğin "Yeşil Elma" yerine "Yesil_Elma" gibi olmalıdır
2. Formül Doğruluğu
  • I3 hücresinde ürün adı doğru yazılmış mı? Büyük küçüklük önemli değil ama boşluk/alt çizgi farkı önemli.
  • Veri doğrulamanın Kaynak (Source) formülü =DOLAYLI(I3) olarak doğru hücreye (örneğin C3 veya D3) işaret ediyor mu? Eğer başka satırlarda kullanacaksan $ işareti yanlış referans kilitleyebilir
3. Aralıktaki Boş Satırlar veya Hücreler
  • Adlandırılmış aralıklarda boş hücreler varsa, dolaylı listede bu boşlar hata verebilir veya çalışmayabilir.
  • Excel 365 kullanıyorsan dolgu (spill) dizileriyle FILTER, UNIQUE, SORT gibi fonksiyonları kullanarak boş hücre atlayarak temiz listeler oluşturabilirsin
4. Çoklu Satırda Kullanım
  • Aynı veri doğrulama formülünü birden fazla satırda uyguladıysan, satır referanslarının (örneğin I3 yerine I4, I5…) göreceli olup olmadığını kontrol et.
  • Eğer mutlak referans ($I$3) kullanırsan tüm satırlarda aynı ürün seçilip aynı çeşitler gösterilir
Farz edelim şu şekilde bir yapı:

Sayfa1 (Ana Sayfa)
  • C3 hücresinde ürün listesi (Veri Doğrulama → Liste): Örneğin A2:A10
  • D3 hücresinde ürün çeşidi (Veri Doğrulama → Liste): Kaynak olarak =DOLAYLI(C3)

Sayfa2 (Veri Sayfası)
  • Her ürün için ayrı sütunlarda veya satırlarda çeşit listesi:
    • Yesil_Elma adında bir named range — içerik: "Granny", "Golden" ...
    • Kirmizi_Elma, Armut, Muz vb. aynı şekilde

Bu yapıda:
  1. C3 → ürün seçim dropdown
  2. D3 → =DOLAYLI(C3) ile ilgili named range çalışır

Eğer Yesil Elma gibi isim boşluk içeriyorsa hem Excel sayfadaki hem de range adında boşluk yerine alt çizgi kullanılmalı.
 
Katılım
1 Şubat 2017
Mesajlar
22
Excel Vers. ve Dili
Office Excel 2016 verisoyonu
Yeni konu açmamak adına bir soru sormak istiyorum. Yapmış olduğumuz exceli 4 kişi kullanacak ama her 4 kişi kendi sorumlu olduğu sütunu dolduracak başka bir yere müdahale etmeyecek. Yani her sütun o görevi alan sorumlu olan personele özgü olacak. Bu mümkün mü?
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
916
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
1. Belirli sütunları düzenlenebilir bırak:
  • Tüm sayfayı seç (Ctrl + A).
  • Sağ tıkla, "Hücreleri Biçimlendir" > "Koruma" sekmesine gel ve "Kilitli" seçeneğini kaldır.
  • Ardından sadece her personelin sorumlu olduğu sütunu seç (örneğin, B sütunu) ve bu alanlar için "Kilitli"yi aktif et.

2. Sayfayı koru:
  • Giriş sekmesinden → "Gözden Geçir" > "Sayfayı Koru" seçeneğine tıkla.
  • Bir şifre belirle (isteğe bağlı).
  • Kullanıcıların sadece kilitli olmayan hücreleri düzenlemesine izin veren kutucukları işaretle.
Bu yöntem herkesin dosyayı açmasına izin verir ama kilitli sütunları düzenleyemezler.
Eksisi: Belirli sütunlara kişisel erişim atanamaz, yani herkes her alanı görebilir ama düzenleyemez.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
916
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
  • Her kullanıcı kendi küçük dosyasını doldurur.
  • Ana Excel dosyası bu 4 dosyadan veriyi çeker (Power Query kullanılarak).
  • Böylece kimse kimsenin dosyasına müdahale etmez.
Bu yöntem uzun vadede daha güvenli ve kullanışlıdır.
 
Katılım
6 Mart 2024
Mesajlar
309
Excel Vers. ve Dili
2010 TR & 2016 TR
Merhaba,
Yeni konu açmamak adına bir soru sormak istiyorum. Yapmış olduğumuz exceli 4 kişi kullanacak ama her 4 kişi kendi sorumlu olduğu sütunu dolduracak başka bir yere müdahale etmeyecek. Yani her sütun o görevi alan sorumlu olan personele özgü olacak. Bu mümkün mü?
ilk olarak Yeni konu açman daha iyi olurdu.

Sorunuza cevap olarak basit bir senaryo ile,
Sayfa adını sağ tık > Kod görüntüle tıklanıp açılan sayfaya yazılacak
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sifre As String
    Dim i As Long
    Dim kullanicilar() As Variant
    Dim sifreler() As Variant
    Dim sutunlar() As Variant
    Dim uygunSutun As Boolean
    Dim aktifKullaniciIndex As Long

    If Target.Cells.CountLarge > 1 Then
        MsgBox "Aynı anda birden fazla hücre değiştiremezsiniz!", vbExclamation
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        Exit Sub
    End If

    kullanicilar = Array("ahmet", "ayşe", "mehmet", "fatma")
    sifreler = Array("1111", "2222", "3333", "4444")
    sutunlar = Array("B", "C", "E", "K")

    uygunSutun = False

    For i = 0 To UBound(sutunlar)
        If Not Intersect(Target, Range(sutunlar(i) & ":" & sutunlar(i))) Is Nothing Then
            uygunSutun = True
            aktifKullaniciIndex = i
            Exit For
        End If
    Next i

    If uygunSutun = False Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        Exit Sub
    End If

    ' Şifre giriş (string al, biz kontrol edelim)
    sifre = InputBox("Sayın " & kullanicilar(aktifKullaniciIndex) & ", lütfen sadece rakamlardan oluşan şifrenizi girin:", "Şifre Girişi")

    ' İptal edildi ya da boşsa
    If sifre = "" Then
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        Exit Sub
    End If

    ' Rakam kontrolü
    If Not IsNumeric(sifre) Then
        MsgBox "Sadece sayısal şifre girilmelidir!", vbCritical
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        Exit Sub
    End If

    ' Doğrulama
    If sifre <> sifreler(aktifKullaniciIndex) Then
        MsgBox "Yetkisiz işlem veya hatalı şifre!", vbCritical
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
    End If
End Sub
 
Son düzenleme:
Üst