otomatik satır yüksekliği

Katılım
3 Temmuz 2005
Mesajlar
34
merhaba,
ben dosyamda 2.sayfadan 1. sayfaya veri aktarıyorum ama verilerin yazılacağı sütunları birleştirdim ve bu birleşik hücrelere veri kopyalıyorum ancak; yapışan veriler hücreye sığmayacak kadar uzun, hücrenin otomatik olarak yazının sığacağı kadar açılmasını istiyorum.
bu konudaki örnekleri inceledim ancak çözüm olmadı çünkü onlar sabit satır numarası ile çalışıyor oysa benim kullandığım satır numarası girilen değerlere göre bir değişken. Nerede hata yapıyorum ?
yardımlarınız için şimdiden teşekkürler.

hücrenin otomatik genişlemesi için kullandığım kodlar:
x = Len(satır)
y = x / 1
If y > 32 Then
Rows(satır).RowHeight = 409.5
Else
Rows(satır).RowHeight = 12.75 * y
End If
satır = satır + 1
Next a
satır = satır + 1
End If
Else
satır = 12
End If
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
aşağıdaki kodları bir dene sutun birleştirme yapmadan çalışır

[vb:1:920d5288cb]Sub dene()
Sayfa1.Cells.Delete Shift:=xlUp
ilgi = Sayfa2.Cells(1, 15).Value
If ilgi > 0 Then
Sayfa1.Cells(12, 1) = "İLGİ"
Sayfa1.Cells(12, 2) = ":"
For x = 1 To ilgi
Sayfa1.Cells(x + 11, 3) = "'(" & x & ")"
Sayfa1.Cells(x + 11, 4) = Sayfa2.Cells(x + 1, 15)
Next x
End If
Columns("D:D").ColumnWidth = 44.43
Rows("12:" & ilgi + 11).EntireRow.AutoFit

Range("A12:D" & ilgi + 11).Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
End With

Columns("D:D").ColumnWidth = 44.43
Rows("12:" & ilgi + 11).EntireRow.AutoFit

End Sub [/vb:1:920d5288cb]
 
Katılım
3 Temmuz 2005
Mesajlar
34
sonunda başardım ama öncelikle birleştirdiğiniz hücreye kac karakter sığdığını bulmanız gerekiyor bunuda hücreye tam sığan bit metnin karakterlerini "len" komutu ile saydırıp bir yere yazdırarak yapabilirsiniz.
yinede herkese teşekkür. :hihoho:

son hali ile kodlar ve yenilenen örnek ekte

'satır genişliğini ayarlar
y = Len(Cells(satır, 4))
x = Round((x / 80), 0) '80 birleştirdiğim hücreye sığan karakter sayısı
If x > 80 And y > 0 Then
Cells(satır, 1).RowHeight = 5
Else
Rows(satır & ":" & satır).RowHeight = 12.75 * y + 3 '12.75 normal satır yüksekliği
End If
 
Katılım
7 Ağustos 2004
Mesajlar
35
Nihat Bey Merhaba
Eline emeğine sağlık
Bu kodların Yalnızca satır yüksekliği ile ilgili olanlarını
Biz acemiler için ayırıp yazabilirmisin
İYİ AKÞAMLAR
 
Katılım
3 Temmuz 2005
Mesajlar
34
Merhabalar,
sayın sevindi ikinci mesajda yazdığım kodlar zaten sadece satır yüksekliği için olan kısım örnek dosyayı inceler ve ona göre anlayamadığınız bir husus olursa yardımcı olmaya çalışırım. ama yinede biraz daha açıklayayım:

x = Len(Cells(satır, 4)) '=> burada x'e birleşmiş hücreye yazdığımız textin karakter sayısını veriyoruz

y = Round((x / 80), 0) '=> 80 birleştirdiğim hücreye sığan karakter sayısı, bunu hücreye tam sığan bir metin yazarak tespit edebilirsiniz, round da sayıyı yuvarlayarak tam sayılı bir yükseklik elde etmek için(1,2,3 katı gibi)

If x > 80 And y > 0 Then '=> burada textin bir satırdan fazla olması koşulu aranıyor

Rows(satır & ":" & satır).RowHeight = 12.75 * y '=> koşul doğru ise normal satır yüksekliği ile bizim textin kaç katı olduğu çerpılıyor.

Else
Rows(satır & ":" & satır).RowHeight = 12.75 '=> koşul sağlamıyor ise normal satır yüksekliği

End If ' => koşullandırma bitti.


bu arada yukarıdaki ile farklılık olduğunun farkındayım hatalar varmış fark edememişim düzelttim. ayrıca hala daha net bir çözüm arıyorum çünkü bu yolla bile bazen tam bir yükseklik alınamıyor, ekli örnek dosyayıda tekrar kontrol edicem.
 
Katılım
3 Temmuz 2005
Mesajlar
34
yukarıdaki örneği düzelttim gerçektende hata varmış.! :oops:
 
Üst