Bir pencere yardımıyla değişken olan aralığa veri çağırma

Çözüldü Bir pencere yardımıyla değişken olan aralığa veri çağırma

  • Konuyu başlatan Konuyu başlatan Akif59
  • Başlangıç tarihi Başlangıç tarihi

Akif59

Yıllık Forum Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba
Dosyadaki 10 11 13 14 16 17 satırlara E:W sütun aralığına dosyanın alt bölümündeki verileri kopyalayarak Almak zorunda kalıyorum

dosyanın alt bölümünde bulunan kopyalayarak alınan verilerin başında o gurubu ifade eden Plas Bayan 1 Erkek 1 Bayan 2 Gibi başlıklar var
veri doğrulamada olduğu gibi bir pencere yardımıyla gurup başlığını seçerek ilgili satır ve aralığa seçilen gruptaki verileri getirmek istiyorum.
yardım ve destek rica edemiyorum.
 

Ekli dosyalar

  • 1.webp
    1.webp
    30.9 KB · Görüntüleme: 2
Akif Bey istediğiniz VERİ DOĞRULAMA >> LİSTE özelliğini uygun bir hücreye (C9-W9 yerine, E9:W9 aralığını birleştirip VERİ DOĞRULAMA işlemini C9-D9 birleştirilmiş alanında yapabilirsiniz gibi görüyorum) uygulayın. Listedeki seçenek sayısı sadece dosyadakiyeler midir bilemiyorum.
Gördüğüm kadarıyla alttaki lesteler için "aralarda birer satırlık boşluk olan 2'şer satırlık 3 grup toplam 6 satır ve ardından 2 satır boşluk ve bir sonraki veri kaynağı" gibi bir düzen var, bu düzen sabit midir?

Gereksiz yazışma yapılmaması bakımından bu hususlarada bir şeyler yazın ve VERİ DOĞRULUMA uygulamasını uygun alan neresiyse kendiniz uygulayıp dosyayı yenileyin bence.

Ayrıca işlem için WORKSHEET_CHANGE kodu kullanmak uygun gibi görünüyor ancak gerçek belgenizde bu tür kodlama var mıdır bunun da bilinmesi/varsa görülmesi gerekir.
.
 
Merhaba Sayın BARAN
Bende bu işlemi bu forumun sizlerin desteğinle WORKSHEET_CHANGE koduyla yapmak istiyorum dosyada var olanlar haricinde bir kod yok

dosyamın alt bölümde bulunan guruplar halinde bulunan veriler ilerleyen süreçte oldukça çoğalacak o yüzden her gurubun başına dikey metinle bir isim koydum kod yardımıyla tabloda belirtilen satırlara alınacak gurubun başlığını seçip içeriğini almak istiyorum

her bir gurubu anlaşılır olması için farklı renklere boyadım evet haklısınız bazı guruplar 6 satırdan bazı guruplar 4 bazı guruplarda 2 satırdan oluşuyor ileride yeni oluşturulacak guruplarda hep böyle olacak

6 satırdan oluşan bir veri gurubunu iki satırda bir boşluk bırakmamın sebebi tabloda gurubun çekileceği satır aralığında 2 satırda bir formüllerin olmasıdır.
 
Öncelikle veri doğrulama liste kaynağı olarak, uygun bir alana liste yazıp, veri doğrulama listesini oradan alın (hatta bu alan için AD TANIMLAMASI olması da işlemi/alınacak veri satırlarının balangıç ve bitiş numaralarını bulmayı kolaylaştırır) .

Veri gruplarının keni aralarındaki birer satırlık boşluk ve veri grupları arasındaki ikişer satırlık boşluk isabetli olmuş.
Pratiklik/düzen bakımından veri grupları arasındaki 2'şer satırlık boşluk, 8'er satırlık (aralardaki boşluklar dahil) veri alanı düzeni iyi.

Ancak son mesajınızdaki "bazı guruplar 6 satırdan bazı guruplar 4 bazı guruplarda 2 satırdan oluşuyor ileride yeni oluşturulacak guruplarda hep böyle olacak"
kısmı sorun olabilir. Veri grupları gerçekte 6 satırlık olmasa bile, alt tarafta herbiri için 6 satırlık alan ayırıp, veri satırlarını da doğrudan kopyala yapıştır yapmaya müsait olacak şekilde korumlandırısanız iyi olur.
Birinci görseldeki SARI zeminli kısmı anlaşılabilirlik bakımından ekledim o kısmı yok sayın ama
her veri grubuna görseldeki ÇERÇEVE gibi 6 satırlık alan varmış gibi düşünüp, aktarılacak veri üstteki alanda hangi konuma denk düşüyorsa o satıra yazın.

1610288938882.webp


Neticede 2'nci görseldeki gibi bir veri doğrulama uyulandığında, seçilen liste elemanı üzerinden;
= (KAÇINCI ELEMAN SEÇİLDİ - 1) x 10 + 71 gibi bir matematiksel işlemle kopyalanacak veri alanının başlangıç satır numarası,
= BAŞLANGIÇ SATIRI + 7 şeklinde de veri bitiş satır numarası bulunabilsin.

1610291285222.webp
 
Moderatörün son düzenlenenleri:
Öncelikle veri doğrulama liste kaynağı olarak, uygun bir alana liste yazıp, veri doğrulama listesini oradan alın (hatta bu alan için AD TANIMLAMASI olması da işlemi/alınacak veri satırlarının balangıç ve bitiş numaralarını bulmayı kolaylaştırır) .

Veri gruplarının keni aralarındaki birer satırlık boşluk ve veri grupları arasındaki ikişer satırlık boşluk isabetli olmuş.
Pratiklik/düzen bakımından veri grupları arasındaki 2'şer satırlık boşluk, 8'er satırlık (aralardaki boşluklar dahil) veri alanı düzeni iyi.

Ancak son mesajınızdaki "bazı guruplar 6 satırdan bazı guruplar 4 bazı guruplarda 2 satırdan oluşuyor ileride yeni oluşturulacak guruplarda hep böyle olacak"
kısmı sorun olabilir. Veri grupları gerçekte 6 satırlık olmasa bile, alt tarafta herbiri için 6 satırlık alan ayırıp, veri satırlarını da doğrudan kopyala yapıştır yapmaya müsait olacak şekilde korumlandırısanız iyi olur.
Birinci görseldeki SARI zeminli kısmı anlaşılabilirlik bakımından ekledim o kısmı yok sayın ama
her veri grubuna görseldeki ÇERÇEVE gibi 6 satırlık alan varmış gibi düşünüp, aktarılacak veri üstteki alanda hangi konuma denk düşüyorsa o satıra yazın.

Ekli dosyayı görüntüle 7815

Neticede 2'nci görseldeki gibi bir veri doğrulama uyulandığında, seçilen liste elemanı üzerinden;
= (KAÇINCI ELEMAN SEÇİLDİ - 1) x 10 + 71 gibi bir matematiksel işlemle kopyalanacak veri alanının başlangıç satır numarası,
= BAŞLANGIÇ SATIRI + 7 şeklinde de veri bitiş satır numarası bulunabilsin.

Ekli dosyayı görüntüle 7816
Sayın BARAN
İnanın yazdıklarınız kafamı karıştırdı
Ben veri doğrulama istemiyorum evet ilk mesajımda bu cümle geçti sadece veri doğrulamada olduğu gibi tabloya almak istediğim gurubun başlığını seçerek istediğim gurubu tabloda ilgili satırlara bir kod yardımıyla kopyalamak mesala tabloya bir list box ekleyip kopyalanacak gurubun başlığını bu list box tan seçebilir miyim yada Sayın BARAN'ın her zaman dahiyane bir fikiri vardır.

dosyanın alt bölümündeki tüm gurupları aynı yaptım sanırım 4 satırlık ve iki satırlık guruplar kod yazarken sorun olacak bunun için kopyalanacak tüm gurupları 6 satırlık guruplar olarak düzenledim
 

Ekli dosyalar

  • 1610293989326.webp
    1610293989326.webp
    6.7 KB · Görüntüleme: 2
Son belgenize henüz bakmadım.
Özetle söylediğim, aralarda 2'şer satırlık aralıklarla, 8 satırlık hücre grup yapısını tüm seçenekler için oluşturmanızdı.
Diyelim bir veri grubu için normalde 6'sı dolu 8 satırdan oluşan grupta sadece 1 ve 4'üncüsü için veri var;
o durumda aktarılacak verileri ilgili grubun 1 ve 4'ücü satırına yazın.

Böylece 8 satırlık alanı kopyala >> E10 hücresini SEÇ >> özel yapıştır >> BOŞ OLANLARI ATLA seçeneği işaretli >> YAPIŞTIR
işlemi yapıldığında veriler olması gereken yere aktarılmış olur.
 
Son belgenize henüz bakmadım.
Özetle söylediğim, aralarda 2'şer satırlık aralıklarla, 8 satırlık hücre grup yapısını tüm seçenekler için oluşturmanızdı.
Diyelim bir veri grubu için normalde 6'sı dolu 8 satırdan oluşan grupta sadece 1 ve 4'üncüsü için veri var;
o durumda aktarılacak verileri ilgili grubun 1 ve 4'ücü satırına yazın.

Böylece 8 satırlık alanı kopyala >> E10 hücresini SEÇ >> özel yapıştır >> BOŞ OLANLARI ATLA seçeneği işaretli >> YAPIŞTIR
işlemi yapıldığında veriler olması gereken yere aktarılmış
Merhaba Sayın BARAN
-Zaten şu anda alt bölümdeki gurupları tabloma bahsettiğiniz şekilde kopyalıyorum.
-Dosyada çekilecek veri guruplarının bulundurduğu bölüm yeni burup ihtiyacı oluşana kadar sürekli gizli olacak bahsettiğiniz şekilde işim görülüyor fakat kopyalamak istediğim gurubu görebilmek için sürekli gizli satırları göster istediğim gurubu kopyaladıktan sonrada gizlemek zorunda kalıyorum
Amacım bu gereksiz adımlardan kurtulmak
Tablonun içine yerleştirilecek gurup başlıklarını görebildiğim Bir listeden kopyalamak istediğim veri gurubunun başlığını seçerek manuel yaptığım bu işlemi bir WORKSHEET_CHANGE koduyla yapabilmek
 
Uygun bbir hücreye VERİ DOĞRULAMA >> LİSTE özelliği uygulaması için C7:D7 (birleştirerek) adresini önermiş,
bu açılır liste kaynağı olarak da uygun bir alana Plas, Bayan 1...gibi aşağıdaki tabloların sırasına uygun boşluksuz bir liste hazırlamanızı yazmıştım zaten.
Bu işlemi belgenizde son belgenizde görseydim kodlama olayına bakacaktım ancak dosyada,
ne veri doğrulama uygulanmış bir hücre var ne de bu listenin kaynağı olarak kullanılacak boşluksuz bir liste.
.
 
Uygun bbir hücreye VERİ DOĞRULAMA >> LİSTE özelliği uygulaması için C7:D7 (birleştirerek) adresini önermiş,
bu açılır liste kaynağı olarak da uygun bir alana Plas, Bayan 1...gibi aşağıdaki tabloların sırasına uygun boşluksuz bir liste hazırlamanızı yazmıştım zaten.
Bu işlemi belgenizde son belgenizde görseydim kodlama olayına bakacaktım ancak dosyada,
ne veri doğrulama uygulanmış bir hücre var ne de bu listenin kaynağı olarak kullanılacak boşluksuz bir liste.
.
Sayın BARAN Sağlık olsun
Sanırım bahsettiğiniz veri doğrulama standart bir veri doğrulama değil ve boşluksuz listeden kastınız nedir inanın anlamadım
Anlamadığım bir şeyi de yapmam mümkün değil yine de zaman ayırıp ilgilendiğiniz için çok teşekkür ederim
Hayırlı akşamlar diliyorum.
 
Anlaşıldı.
O halde aşağıdaki kodları SAYFANIN kod bölümüne yapıştırın.
Gerçek belgenizde başka sayfalarında var olacağını düşünerek veri doğrulama listesinin YENİLENME işini
Worksheet_Activate koduna atadım.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(25 satır)
 
Moderatörün son düzenlenenleri:
Anlaşıldı.
O halde aşağıdaki kodları SAYFANIN kod bölümüne yapıştırın.
Gerçek belgenizde başka sayfalarında var olacağını düşünerek veri doğrulama listesinin YENİLENME işini
Worksheet_Activate koduna atadım.

CPP:
Görüntülemek için giriş yapmanız gerekmektedir.
(24 satır)
Sayın BARAN elinize sağlık yine kayıtsız kalmadınız çok teşekkür ederim
lakin alt bölümden istediğim veri gurubunu tabloda ilgili alana koda nasıl kopyalatacağım
 
Makroları geçici olarak devre dışı bırakın.
daha evvel de belirttiğim gibi
-- 9'uncu satırdaki C9 : W9 hücre birleştirmesini iptal edin ve mevcut başlığı E9'a alıp E9 : W9'u tekrar birleştirin.
-- C9 : D9'u birleştirin.
-- Belgeye bir sayfa daha ekleyip, eklenen sayfaya geçin, makroları çalışır hale getirin
-- Satınalma sayfasına geçin

Veri doğrulama listesi birleştirilmiş C9 : D9 da hazır
Açılır listeden seçimi yapın sonuca bakın.
 
Verdiğim kodda bir şeyi atlamışım.
Önceki kod cevabımda yeşil renklendirdiğim satır eklendi.
Sayfayı yenileyerek önceki kod cevaımı kontrol edin.
Sayın BARAN Sayfayı yeniledim eklediğiniz yeşil satırı göremedim dosya ekte ben mi eksik bir işlem yaptım bilemiyorum hata veriyor.
 

Ekli dosyalar

Önceki cevabın biçimlendirme ayarlarını değiştirmemişim.
Sayfayı yenileyerek tekrar kontrol edebilirsiniz (yeşil)
Merhaba SAYIN BARAN
kodlar çalışıyor istediğim veri gurubunu veri doğrulamadan başlığını seçip tabloma kopyalayabiliyorum

lakin iki sıkıntı var
- dosyada sayfalar arası gezindiğimde satınalma sayfasına geçişte hata alıyorum

- ikinci sorun ise tablodaki tüm formülleri korumak için sayfa koruması kullanıyorum çöp kovası nesnesine bağlanan makro ile tüm sayfayı temizliyorum temizleme kodlarının içinde sayfa korumasını kaldır komutu olmadığı halde sayfa koruması kalkıyor.
 

Ekli dosyalar

-- Satınalma sayfası aktif hale geldiğinde VERİ DOĞRULAMA listesinin güncellenmesi kodundaki sorun;
Worksheet_Activate kod blokunda VD_YENILE şeklindeki satırın
... hemen üstüne ActiveSheet.Unprotect "1007"
... hemen altına da ActiveSheet.Protect "1007"
şeklinde iki satır ekleyin.

-- Satınalma_Veri_Sil makrosunun sayfa korumasını kaldırması sorunu:
Satınalma sayfasının kod bölümündeki Worksheet_Change kodunda yer alan
ActiveSheet.Unprotect "1007" satırını If Intersect(Target.... satırının hemen altına taşıyın.

.
 
Merhaba SAYIN BARAN
kodlar çalışıyor istediğim veri gurubunu veri doğrulamadan başlığını seçip tabloma kopyalayabiliyorum

lakin iki sıkıntı var
- dosyada sayfalar arası gezindiğimde satınalma sayfasına geçişte hata alıyorum

- ikinci sorun ise tablodaki tüm formülleri korumak için sayfa koruması kullanıyorum çöp kovası nesnesine bağlanan makro ile tüm sayfayı temizliyorum temizleme kodlarının içinde sayfa korumasını kaldır komutu olmadığı halde sayfa koruması kalkıyor.

-- Satınalma sayfası aktif hale geldiğinde VERİ DOĞRULAMA listesinin güncellenmesi kodundaki sorun;
Worksheet_Activate kod blokunda VD_YENILE şeklindeki satırın
... hemen üstüne ActiveSheet.Unprotect "1007"
... hemen altına da ActiveSheet.Protect "1007"
şeklinde iki satır ekleyin.

-- Satınalma_Veri_Sil makrosunun sayfa korumasını kaldırması sorunu:
Satınalma sayfasının kod bölümündeki Worksheet_Change kodunda yer alan
ActiveSheet.Unprotect "1007" satırını If Intersect(Target.... satırının hemen altına taşıyın.

.
Sayın @Ömer BARAN
Desteğinizle işi kolaylaştırmak adına doğan ihtiyaç çözüme kavuşmuştur desteğiniz için gönülden teşekkür ederim.
İzninizle çözüldü olarak işaretliyorum
 
Sayın BARAN Merhaba konu çözüldü olarak işaretledim fakat gözden kaçırdığım bir sorun devam ediyor
Başka sayfaya geçtiğimizde satınalma sayfasına geri döngümüzde verdiği hata

ama hatanın nedeni 58 satırdan sonrasının gizli olması biliyorsunuz bu bölüme çekilecek guruplar bir kereye mahsus girilecek o bölümde bir daha çalışma olmayacak o yüzden gizli kalması gerekiyor. hatayı o bölüm gizliyken sayfalar arası gezintide veriyor o bölüm gizli değilse her şey normal çalışıyor.
 

Ekli dosyalar

Üst