• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Dolu Sütun Kadar Gün Yazdırmak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Sahin01

Yeni Üye
Katılım
30 Eyl 2022
Mesajlar
70
Çözümler
6
Aldığı beğeni
32
Excel V
Office 2016 TR
Konu Sahibi
Herkese merhaba,
Makro ile L5- AP5 arasında yatay takvim oluşturuyorum. Oluşturduğum takvim seçilen ayın gün sayısı kadar oluşuyor. Eğer seçilen ay 29 gün ise 30 ve 31. günlere denk gelen sütunlar 30 ise 31. güne denk gelen sütun otomatik olarak gizleniyor.

Örnek dosyadaki makro ile bir sayfa oluşturup Sayfa1'den istediğim verileri oluşturduğum sayfaya alıyorum. Yapmak istediğim takvimde kaç gün var ise gün sayısı kadar oluşturulan sayfanın C1 sütunundan başlayarak sütunlara Gun1, Gun2, Gun3... yazdırmak.
 

Ekli dosyalar

Çözüm
Ek bir bilgi olarak takvim oluşturulduğunda gizlenen sütunlarda hiç bir veri olmuyor boş olarak gizleniyor.
With Sheets(isim)
Range("A1") = "TCKN"
Range("B1") = "Veri Tipi"

End With

Dim ayy As Byte

ayy = Day(WorksheetFunction.EoMonth(Sheets("Sayfa1").Range("L5"), 0))
For A = 3 To ayy + 2
Cells(1, A) = "GÜN" & A - 2

Next


Sheets("Sayfa1").Range("B6:B" & ss).Copy: ActiveSheet.[A2].Activate
Sizin makro arasına yukardaki kodu ekleyin. Ana sayfandali L5 de bulunan tarihe göre gün sayısını getiriyor.
Konu Sahibi
Ek bir bilgi olarak takvim oluşturulduğunda gizlenen sütunlarda hiç bir veri olmuyor boş olarak gizleniyor.
 
Merhaba
Makro ile değil ama ekli dosyayı inceleye bilirsiniz.
I7 hücresine ( Puantaj Başlangıç Tarihi ) kısmına ilgili ayın ilk gününü yazmanız yeterlidir.

İyi çalışmalar.
 

Ekli dosyalar

Konu Sahibi
Sayın KarıncaZ ilginize teşekkür ederim ancak benim istediğim başka bir şey.
L5 - AP5 aralığındaki dolu sütun sayısı kadar başka bir sayfaya işlem yaptırmaya çalışıyorum
 
Merhaba.

Yaptırmak istediğinizi manuel uygulanmış halini paylaşabilir misiniz.

Belirli bir aralıktaki dolu hücre sayısını BAĞ_DEĞ_DOLU_SAY ile bulabilirsiniz. Bulduğunuz sayıyı da Döngüde kullanırsınız, solu hücre kadar işlem yaptırmış olursunuz.

Yinede tam olarak yapmak istediğinizi manuel yapıp dosya paylaşırsanız yardımcı olmaya çalışırız.

İyi çalışmalar.
 
Merhaba.

Aşağıdaki formüllede ilgili ayın son gününü sayı olarak bulabilirsiniz.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

A2 deki tarihe göre ilgili ayın son günü nü sayı olarak bulur. A2 yi dosyanıza göre değiştiriniz.
 
Konu Sahibi
Sayın KarıncaZ çok teşekkür ederim. Formüllü dosyalarda kullanıcı kaynaklı sorunlar yaşadığımız için makro ile yapmak benim için daha iyi olacaktır.

Olması gereken nihai belgenin örneğini ekliyorum. İstediğim L5 - AP5 sütunları arasındaki dolu sütun kadar oluşturulacak sayfaya C1'den itibaren Gun1, Gun2, Gun3 ... şeklinde yan yana yazdırabilmek.
 

Ekli dosyalar

Konu Sahibi
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Sitede ve internette bulduğum kodlarla yukarıdaki gibi bir kod bloğu oluşturdum. Tek sorun Sayfa2'nin A sütunundan başlıyor. C1'den başlayarak yatay devam edecek şekilde nasıl düzeltebilirim.
 
Ek bir bilgi olarak takvim oluşturulduğunda gizlenen sütunlarda hiç bir veri olmuyor boş olarak gizleniyor.
With Sheets(isim)
Range("A1") = "TCKN"
Range("B1") = "Veri Tipi"

End With

Dim ayy As Byte

ayy = Day(WorksheetFunction.EoMonth(Sheets("Sayfa1").Range("L5"), 0))
For A = 3 To ayy + 2
Cells(1, A) = "GÜN" & A - 2

Next


Sheets("Sayfa1").Range("B6:B" & ss).Copy: ActiveSheet.[A2].Activate
Sizin makro arasına yukardaki kodu ekleyin. Ana sayfandali L5 de bulunan tarihe göre gün sayısını getiriyor.
 
Çözüm
Konu Sahibi
Sayın Özcan ÖZBEK ilginize çok teşekkür ederim vermiş olduğunuz kod çalışıyor ancak küçük bir hata var. B1'e Gün yazıyor C1'den başlayarak istenileni yapıyor
Range("B1") = "Veri Tipi" bunu siliyor.
 
Sayın Özcan ÖZBEK ilginize çok teşekkür ederim vermiş olduğunuz kod çalışıyor ancak küçük bir hata var. B1'e Gün yazıyor C1'den başlayarak istenileni yapıyor
Range("B1") = "Veri Tipi" bunu siliyor.
1697922491441.png
Bendeki görüntü
For A = 3 To ayy + 2 burada 3. sütundan (c)
itibaren işlem yapıyor
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst