Çözüldü Formülü Koda Çevirip Mevcut Kodlara Ekleme

  • Konuyu başlatan Konuyu başlatan vurkan
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

vurkan

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Arkadaşlar Merhaba ;

Kod:
You must log in to view content
(10 satır)

Kodlarıyla V ve AS sütunlarına bir şey yazınca W ile AT sütunlarına günün tarihi otomatik yazılıyor.
Ben bu kodlara yapılacak bir ilave ile;

1) V sütunu boşken B:U aralığındaki satırlara yazacağım "X" leri saymasını ve 20 den çıkararak W sütununa yazmasını,
AS sütunu boşken Y:AR aralığındaki satırlara yazacağım "X" leri saymasını ve 20 den çıkararak AT sütununa yazmasını,
V:V,AS:AS sütunlarına birşey yazınca W ile AT sütunlarına tarih yazmasını istiyorum.

Dosyamda =EĞER(B2="";"";20-EĞERSAY(B2:U2;"X")) ile =EĞER(Y2="";"";20-EĞERSAY(Y2:AR2;"X")) Formüllerini yazıp aşağı çoğaltarak bu saydırmayı yapıyorum. Ama hücre birleştirmelerinde sıkıntı çıkarıyor ve kod çalışınca haliyle formül kalıcı olarak siliniyor. Dosyayı temizleyip tekrar kullanmak istesem tüm formülleri yeniden tek tek yazmam gerekecek.

2) Bu dosyadaki W ile AT sütunlarındaki tarih ve rakamlar ile, dosyadaki "X" leri temizleyecek bir kod yazılabilir mi?

Saygılar.
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Çözüm
Sağ kısımda ki tarih yazması şu şekilde. En son tarih olarak biçimlendirilmiştir. Temizlendikten sonra numara formatına dönmezse tarih olarak görünecektir.
B sütununda ki birleştirme ile ilgili bir kod mevcut değil. İster birleştirin ister birleştirmeyin. Ben en iyisi dosyanın çalışma mantığını açıklayayım. Yanlışı varsa düzeltelim.
- D ve W sütunları arasında X leri çift tıklama sürükle bırak ve kopyala yapıştır yöntemi ile yazılıyor.
- D ve W sütunları arasında değişiklik olunca X sütununda hesaplama yapılıyor. Son X değeri yazılana kadar tarih kısmı yazılmayacak. Yazıldıktan sonra otomatik olarak birleştirilip tarih işleniyor.

Yukarıda ek olarak dosya eklemeyi unutmuşum galiba. Ben çalıştırdığımda bir hata almadım. Ekli dosyayı...
Dosyanız gizlenen satırları göster diyince kasmaya başladı. Ve hata almaya başladım. Bu nedenle sadece kodları yazarak cevap vereceğim. Lakin size önerim sayfanızı kasmayacak daha kullanışlı bir kullanıma geçmeniz.

Sayfa1 deki kodları aşağıdaki ile değiştiriniz. İstenilen birinci durum oluşmakta.
2. kısım içinde 600 küsurlu satırlardan başladığı için dosyanız gizlenen yerlerdeki x leri de temizlemeli mi?

Kod:
You must log in to view content
(55 satır)
 
Sayın Cakarem İlginize çok teşekkür ederim.

Bu dosyanın kullanımı tamamlandığında Sure isimlerini içeren başlık kısımlarıyla ayet numaralarını gösteren A ve X sütunları hariç tamamı temizlenmeli

Dosyanın kasmaması için nasıl bir öneriniz olabilirdi acaba Saygılar.
 
Sayın Cakarem
X ler tek tek klavyeden veya çift tıklamayla girilince verdiğiniz kodlar çalıştı ancak; sürükleyerek doldurma veya kopyala yapıştır yapınca kodlar tetiklemedi.

(Yukarıdaki mesajı düzenlemede süre yetmeyince yeni mesaj yazdım) Saygılar
 
Merhabalar Sayın @Vurkan .

Tabi belge ve tasarım size ait ama fikrimi belirteyim istedim.
-- Anlıyorum kitap gibi bir görünüm elde etmek istiyorsunuz ama neden tek sütun bloku şeklinde (A-W sütunları) bir yapı olmasın ki?
-- Keşke belgenizde bir kılavuz sayfası olsaymış, Örneğin SIRA NO / SURE ADI / SAYFA NO / ilgili
sayfanın, surenin kaçıncı ayetinden başladığı / o sureye ait o sayfadaki son ayetin numarası gibi bir liste mesela.
Hatta KAÇINCI CÜZ olduğu, NUZÜL sıra no vs gibi başka istatistiki bilgiler eklemek için de kullanılabilir.
-- TEKRAR SAYISI / SURE ADI / SAYFA / TARİH şeklinde aralara eklenmiş satırlar yerine bu bilgiler için de sütun açılabilirdi bence.
Mantık olarak bir sütunda TEK TİP veri olması (veri tabanı mantığı), belgenin kullanımını, üzerinde işlemler yapılmasını kolaylaştırır.

Yukarıda belirttiğim gibi bir kılavuz sayfası olursa;
gerek hücre birleştirme işlemi ve gerekse de ilgili formüllerin yazdırılması makro ile yapılabilir gibi görünüyor.
Hatta siz x'leri yazdıkça bu x lerin adeti hücreye değer olarak da yazdırılabilir gibi görünüyor.

Sayfayı A-W // X-AT diye iki bloka bölmeniz bence belgenin kullanımını zorlaştıran bir yapı olmuş.
Hücre birleştirme işlemini çok tavsiye etmiyoruz ama bu konuda zorunluluk varsa diyecek bir şey yok.

Aynı hücreyi (ya da sütunu) neden 2 işlev için kullanmak istiyorsunuz?
x'lerin adeti için bir sütun, tarih bilgisi için başka bir sütun kullanılması daha sağlıklı/kullanışlı olmaz mı sizce de?

Alanı temizlemenin çok mesele olacağını sanmıyorum.

.
 
Sayın Ömer BARAN üstadım merhaba. Yıllardır soru ve sorunlarıma içtenlikle çözüm bulucu cevaplar veriyorsunuz. Rabbim razı olsun. Bu dosyama da ilgi duymanız beni ayrıca sevindirdi.
Aynı anda 20 hatim okumaya karar verince bunun çetelesini tutma gereği hasıl oldu. Her gün bir cüz okunsa kolay. Ancak bir veya daha fazla sayfayı yada bir veya bir kaç ayeti 20 defa tekrar tekrar okuyunca şaşırmamak ve eksik bırakmamak için bu sayfayı düzenledim.
Önce tek bölüm halindeydi. Sonra ekranın yarısı boş kalınca sureyi ikiye böldüm. Soldaki sıra numaraları gibi görünenler ayet numaraları. Hücre birleştirmelerini Sayfa numaralarını göstermek için yaptım. Tarih kısmı ise hatimleri tamamlamak için koyduğum hedefi kontrol edebilmek içindi.
Kılavuz sayfasından kastınız bir Kuran Fihristi gibi mi acaba. Yoksa aynı sayfaya ilave edilecek ilave sütunlar mı tam anlamadım.
Şimdi dosyayı dediğiniz gibi tek bölüm haline getirmeye çalışacağım. Tamamlayınca buradan paylaşırım. Siz değerli üstadlarım da gerekli düzenleme ve yardımlarınızı esirgemezsiniz inşallah. Saygılar sunuyorum.
 
Son eklediğiniz belgeye bakmadan bu mesajı hazırlamıştım ve gönderiyorum.

Evet kastım fihrist gibi bir yapı idi.

Burada, hem SURE'den hareketle AYET - SAYFA, hem de SAYFA'dan hareketle SURE - AYET durumu olmalı gibi geliyor bana.
Çünkü hem 1 sayfada 1'den fazla sure olma durumu var, hem bir surenin 1'den fazla sayfaya taşması durumu.

AYET-SAYFA ilişkisinde, ayetin başlangıç sayfasında olduğunu düşünmek iyi olur.
Yani bir ayet 32'nci sayfada başlayıp, 33'üncü sayfada bitiyorsa bunu 32'nci sayfada olan ayet gibi düşünüp
sayfa bilgisini buna göre yazmak doğru olur bence. Böylece mükerrer kayıt da olmaz.

Neyse yapı üstünde düşünmek gerekir netice olarak.

Tekrar belirteyim, mümkün olduğunca bir sütunda TEK TİP veri tutmakta yarar var.
 
Sayın Ömer BARAN üstadım Ayetler birden fazla sayfaya taşmaz. Bu sayfada başlamışsa bu sayfada biter. Ama bazen bir sayfada surenin biri bitip diğeri başlıyor. Hatta son sayfalarda (mesela en son) bir sayfada kısa kısa 3 sure olabiliyor.
Fihrist sayfasını da tasarlamaya çalışacağım. Saygılar.
 
Sayın @Vurkan,
Ekli dosyayı inceleyiniz.
  • Çift tıklama ile X işareti yazdırılıyor.
  • Çift tıklama sonucunda X sütununda hesapla yapılıyor.
  • Sürükle bırak sonucunda X değerleri yazdırılıyor.
  • Sürükle bırak sonucunda X sütununda hesapla yapılıyor.
  • Kopyala yapıştır sonucunda X değerleri yazdırılıyor.
  • Kopyala yapıştır sonucun X sütununda değerler hesaplanıyor.
  • B sütununda hücre birleştirme yaptıktan sonra eğer değer yazılırsa X sütununda otomatik temizleme yapılıp birleştirme yapılarak tarih yazdırılıyor.
  • B sütunu silinirse X sütunu tekrardan eski haline dönüyor.
  • X değerleri silinirse hesaplamalar yapılıyor. Eğer X sütununda 20 yazarsa sütunu içeriği siliniyor.

İlgili kod yapısı :
Kod:
You must log in to view content
(41 satır)

1600214701003.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Sayın Cakarem ilginiz ve emekleriniz için çok teşekkür ediyorum.

X lerin sayılıp yazılması problemi çözülmüş.
B sütunundaki birleştirmeye göre X sütunundaki otomatik birleştirme çok güzel. Dosyayı bu haliyle çok rahat kullanabilirim. Allah razı olsun.

Ancak;

Bu dosya tamamlanınca yaklaşık 6800 satırlık bir dosya olacak. Diyelim ki ben veya kullanmak isteyen bir başka kardeşimiz bu dosyayı yeniden kullanmak isteyince bitmiş haliyle değil de X lerden ve tarihlerden temizlenmiş bir halde kullanmaya başlayabilecektir. Bunun için bir düğmeye atanmış temizleme kodu gerekli.

Sayın Ömer BARAN üstadın tavsiyesiyle dosyayı bu şekle getirdim. Dolayısıyla mantık yapısı da biraz değişti.

Burada sayfa numaralarına bağlanan tarih meselesini değiştirmek gerekli. Çünkü sizin bu çalışmanızla sayfa numaralarını silip yeniden yazmanın gereksizliğini anladım.

Mantığı şöyle kurgulasak: B sütunundaki birleştirmeye göre X sütunundaki otomatik birleştirme sayfa numarası yazmadan hemen gerçekleşse ve tarih atamasını sayfa numarasını yazınca değil de W sütununa yazılan son X ile veya X lerin toplamı 20 ye ulaştığında yani X sütunu 0 değerini alacağına günün tarihini atsa daha güzel olacak kanaatindeyim. Saygılar sunuyorum.
 
Temizlemek için aşağıdaki kodu kodlara ekleyip bir butona atayınız. Yada makro kısayolu atayarak da yapabilirsiniz.
Kod:
You must log in to view content
(11 satır)
Mantığı şöyle kurgulasak: B sütunundaki birleştirmeye göre X sütunundaki otomatik birleştirme sayfa numarası yazmadan hemen gerçekleşse ve tarih atamasını sayfa numarasını yazınca değil de W sütununa yazılan son X ile veya X lerin toplamı 20 ye ulaştığında yani X sütunu 0 değerini alacağına günün tarihini atsa daha güzel olacak kanaatindeyim. Saygılar sunuyorum.
Galiba aşağıdaki resimde sarı alana son X değeri yazıldığında tarihi otomatik almasını istiyorsunuz? Doğrumu dur? Sol tarafdaki sayfa numaraları daha önceden yazılmış olacak?
1600234775906.webp
 
Moderatörün son düzenlenenleri:
Sayın Cakarem Üstadım.
Evet gayet güzel anlamışsınız.
Verdiğiniz kod gayet güzel temizledi. Ancak B sütununda ki birleştirmeye göre oluşan X sütunundaki hücre birleşmeleri temizlik esnasında bozuldu. Hücre birleşimini aynı bıraksaydık daha güzel olmaz mıydı acaba? Saygılar
 
Verdiğiniz kod gayet güzel temizledi. Ancak B sütununda ki birleştirmeye göre oluşan X sütunundaki hücre birleşmeleri temizlik esnasında bozuldu. Hücre birleşimini aynı bıraksaydık daha güzel olmaz mıydı acaba? Saygılar
X lerin sayımı yapılmayacak mı? En son X yazılana dek X sütununda hesapla yapılacak. Son X yazıldığında birleştirme yapılıp tarih yazılacak. Bu şekilde kullanacağınızı anladım. Eğer yanlış ise isteğinizi net bir şekilde ifade ediniz. Örnekle açıklarsanız daha güzel olur.
 
İlgili sayfadaki tüm kodları silip aşağıdaki kodu yapıştırınız. Bu şekilde istenilen yada benim anladığım kadarıyla işinizi görecektir.
Not: Temizle makrosuna kısayol atandı. Ctrl + Shift + T tuşlarına aynı anda basarak temizleme işlemi yapılmaktadır.
Not: X sütununda tarih yazma işlemi W sütununa son X değer yazılması ile tetiklenmektedir. Bu nedenle tarih yazıldıktan sadece son X değeri silinirse eski formata dönecektir. Bunun dışındaki silme işlemleri tarih sütununu etkilemektedir. ( Genel silme hariç )


İlgili kod yapısı :


Kod:
You must log in to view content
(48 satır)
 
Sayın Cakarem Üstadım seni çok yordum. Hakkını helal et. Kodları silip son verdiğiniz kodları yapıştırınca ekli dosyadaki sorunlar ortaya çıktı. Saygılar sunuyorum.

1600265558717.webp
 
Sağ kısımda ki tarih yazması şu şekilde. En son tarih olarak biçimlendirilmiştir. Temizlendikten sonra numara formatına dönmezse tarih olarak görünecektir.
B sütununda ki birleştirme ile ilgili bir kod mevcut değil. İster birleştirin ister birleştirmeyin. Ben en iyisi dosyanın çalışma mantığını açıklayayım. Yanlışı varsa düzeltelim.
- D ve W sütunları arasında X leri çift tıklama sürükle bırak ve kopyala yapıştır yöntemi ile yazılıyor.
- D ve W sütunları arasında değişiklik olunca X sütununda hesaplama yapılıyor. Son X değeri yazılana kadar tarih kısmı yazılmayacak. Yazıldıktan sonra otomatik olarak birleştirilip tarih işleniyor.

Yukarıda ek olarak dosya eklemeyi unutmuşum galiba. Ben çalıştırdığımda bir hata almadım. Ekli dosyayı inceleyiniz.

Genel temizleme yaparken uzun sürüyor. Makrolarda revize yapmak gerekebilir. Gerçi bu şekilde de işinizi görecektir. Kodları revize edebilirsem eklerim.
 

Ekli dosyalar

Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst