Çözüldü Excel Hücrenin Genişliğinin Otomatik Büyümesi

merakli

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Resimde kırmızı çerçeve ve ok ile belirttiğim alan bazen kısa bazen de uzun metinler içeriyor.
Bu hücrelerin uzunluğu mu yoksa yüksekliği mi diye ifade etmem lazım emin değilim ancak satır yüksekliğinin metnin 200 satır yüksekliğine kadar ulaşıncaya kadar otomatik büyümesi mümkün müdür? maximum 200 de kalsın şeklinde de belirtilebilir mi?

Screenshot_4.webp
 
Moderatörün son düzenlenenleri:
Merhabalar Sn. @merakli

-- Hücre içindeki değerlere göre satırın yüksekliğinin ayarlanması için örnek olarak
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
satırını kullanabilirsiniz.
-- Resimde hangi satır olduğu belli olmadı için Rows("1:1") kısmındaki 1 değerleri yerine çalışma dosyanızdaki satır numarasını yazınız.
-- Bu kod, 1. satırın yüksekliğini kelimelerin uzunluğuna göre ayarlar.

-- Sütun genişliğini ayarlamak içinde örnek olarak
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
satırını kullanabilirsiniz.
-- A sütunun genişliğini hücredeki değerlerin uzunluğuna göre ayarlar.
 
Rows("1:1").EntireRow.AutoFit

üstteki sanırım 1. satırın 1. sütununu otomatik yüksekliğini ayarlıyor
bana D2:M2 arasındaki hücrelerin yüksekliğini otomatik yapmam lazım
bu durumda üstteki formülü nasıl yazmalıyız?

Peki satırın yüksekliğinin en tepe değerinin 200 ile sınırlama yapılabilir mi?
Örneğin şuanki satır yüksekliğimiz 50 olsun yeni bir metin geldi otomatik 150 oldu sonrasında daha uzun bir metin girildi 230 oldu ama biz onu 200 de kalmasını sağlamak gibi...
 
Koşul ile satır yüksekliği kontrolü yapabilirsiniz.

-- Örnek olarak aşağıdaki kod bloğu 1. satırın yüksekliğini kontrol eder.
Eğer satır yüksekliği 200 den büyükse, satır yüksekliğini 200 e eşitler.
Eğer satır yükseliği 200 den büyük değilse hücre içindeki değere göre otomatik yükseklik verir.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(5 satır)
 
Rows("1:1") ifadesi 1. satırın tamamı kapsar.
2. satır için yapmak istiyorsanız Rows("2:2") olarak kullanmalısınız.

2 numaralı mesajda belirtmiştim.
-- Resimde hangi satır olduğu belli olmadı için Rows("1:1") kısmındaki 1 değerleri yerine çalışma dosyanızdaki satır numarasını yazınız.
-- Bu kod, 1. satırın yüksekliğini kelimelerin uzunluğuna göre ayarlar.
 
Rows("2:2").EntireRow.AutoFit

VBA da çok yeni olduğum için en basit bir şeyi bile sorma gereği duyuyorum.
Kodlama mantığını bildiğim için kodları okuyup anlayabiliyorum ama nasıl kullanılacağı konusunda çok bilgim yok.

Bunu nereye yazacağım her sayfanın code kısmına mı yoksa modül içine mi?

Rows("1:1") ifadesi 1. satırın tamamı kapsar.
2. satır için yapmak istiyorsanız Rows("2:2") olarak kullanmalısınız.

2 numaralı mesajda belirtmiştim.
 
Kod:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
satırı Sheet1 isimli sekmede içerisinde veri bulunan tüm sütunların genişliğini otomatik olarak ayarlar.

Modül içerisine Rows("1:1").RowHeight = 200 satırını yazarsanız, hangi sayfa aktif ise o sayfanın 1. satırı için işlem yapar.
-- Sayfa ismi kullanmadan sadece ilgili sayfanın kod bölümüne ekleyip çalıştırabilirsiniz.
-- Modül içerisinde kullanırken sayfa ismi belirtmeniz daha uygun olacaktır.
örnek olarak
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
gibi.
 
Kodların çalışması için bir prosedür içerisine yazılması gerekir.

Örnek olarak paylaştığınız dosyada Veri isimli sayfaya kayıt girdikçe sayfa isimli sekmede 2. satırın, satır yüksekliğini değiştirmek için Veri isimli sayfanın kod bölümüne şu kodları ekleyiniz.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(7 satır)

-- Worksheet_Change prosedürü sayfada herhangi bir hücrede işlem yapıldığı zaman çalışmaya başlar.

Sadece belirli bir sütuna veri girdikçe çalışması için ne yapılabilir?
-- Worksheet_Change(ByVal Target As Range) başlığında Target isimli değişken ile sayfadaki hücreler belirtilmiştir.
** Target.Column ile işlem yapılan hücrenin sütun numarası bulunur.

Sütun numarasını bulduktan sonra geri kalan işlem koşul ile kontrol sağlamak.
-- If Target.Column <> 3 Then Exit Sub
Bu satırın anlamı: İşlem yapılan hücrenin sütun numarası 3 den faklı ise kodları çalıştırma.
Sütun numaraları soldan sağa doğru A=1, B=2, C=3 ... şeklinde devam eder.

-- If Target.Column <> 3 Then Exit Sub satırını yukarıdaki kodların ilk satırına ekleyip kullanırsanız;
Sadece C sütununda işlem yaptığınız zaman kodlar çalışır.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(8 satır)
 
Konuyu başlatan
Site Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Genel Excel Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
10
Üst