Satır Yüksekliği Sütun Genişliği

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba Hocalarımız

Sorum çok kısa.

Önce satır yüksekliği sorumu sorayım,
kafam karışmasın diye daha sonra sütun genişliği sorumu soracağım. (ayrıca örnek2 dosyası yükleyeceğim)


örnek1 dosyasında:
İlk önce A sütunundaki tüm hücrelerin satır yüksekliği Autofit olacak.
Daha sonra
A1 hücresinin satır yüksekliği (başlık satırı olduğu için) 100 olacak.

Soru bu kadar.

Rows.AutoFit ile olmuyor, çünkü sanıyorum bütün hücrelere göre yüksekliği fit yapıyor.

Mesela beşinci satırın yüksekliğinin artmasını istemiyorum.
Ama Rows.AutoFit yapınca artıyor. Yani olmuyor.
Şu ana kadar hep Rows.AutoFit kullanıyordum.
 

Ekli dosyalar

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Merhaba,

Altın üyeliğim olmadığı için dosyayı açamıyorum fakat, aşağıdaki kodlarla istediğiniz satır / sütunların genişliklerini ayarlayabilirsiniz.

Columns("D:D").ColumnWidth = 100
Rows("8:8").RowHeight = 50

yada aşağıdaki gibi sadece belirtilen satır / sütunlara AutoFit uygulayabilirsiniz.

Columns("D:D").EntireColumn.AutoFit
Rows("8:8").EntireRow.AutoFit
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Bu şekilde dener misiniz ?
Kod:
Sub Düğme1_Tıkla()
    Rows.AutoFit
    Rows("1:1").RowHeight = 100
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Bu şekilde dener misiniz ?
Kod:
Sub Düğme1_Tıkla()
    Rows.AutoFit
    Rows("1:1").RowHeight = 100
End Sub
Hamitcan hocam sağ olunuz. Fakat mesajımda belirtmiştim. Rows.AutoFit yapınca yükselmemesi gereken birinci sütundaki satırlar da yükseliyor.

(Mesela
Beşinci satırın yükselmemesi gerekir, çünkü A5 ile A6'nın bir farkı yok, ama yükseliyor)
 
Son düzenleme:

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba,

Altın üyeliğim olmadığı için dosyayı açamıyorum fakat, aşağıdaki kodlarla istediğiniz satır / sütunların genişliklerini ayarlayabilirsiniz.

Columns("D:D").ColumnWidth = 100
Rows("8:8").RowHeight = 50

yada aşağıdaki gibi sadece belirtilen satır / sütunlara AutoFit uygulayabilirsiniz.

Columns("D:D").EntireColumn.AutoFit
Rows("8:8").EntireRow.AutoFit
Teşekkürler. Emeğinize sağlık.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit
 
Sub Satir_Yuksekligi()
    Dim S1 As Worksheet, S2 As Worksheet, Genislik As Integer, Yukseklik As Integer
    Dim Alan As Range, Veri As Variant, Satir As Integer, X As Integer
        
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Set S1 = Sheets("Sayfa1")
    
    On Error Resume Next
    Sheets("Test").Delete
    On Error GoTo 0
    
    Sheets.Add
    Set S2 = ActiveSheet
    S2.Name = "Test"
    
    S1.Rows(1).RowHeight = 100
    
    For Each Alan In S1.Range("A2:A" & S1.Cells(S1.Rows.Count, 1).End(3).Row)
        Genislik = Alan.Columns.Width
        Yukseklik = 0
        
        Satir = 2
        
        With S2
            .Cells.Delete
            .Cells.Font.Size = Alan.Font.Size
            .Range("A1") = Alan.Text
            .Range("A:A").WrapText = True
            .Range("A1").VerticalAlignment = xlJustify
            .Range("A1").ColumnWidth = Genislik / 5.3
            .Range("A1").EntireRow.AutoFit
            
            Veri = Split(.Range("A1"), Chr(10))
            
            For X = 0 To UBound(Veri)
                .Cells(Satir, 1) = Veri(X)
                Yukseklik = Yukseklik + .Cells(Satir, 1).RowHeight
                Satir = Satir + 1
            Next
            
            .Cells.Delete
        End With
        
        If Yukseklik = 0 Then Yukseklik = 15
        Alan.RowHeight = Yukseklik
    Next

    On Error Resume Next
    S2.Delete
    On Error GoTo 0
    
    Set S1 = Nothing
    Set S2 = Nothing

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Deneyiniz.

C++:
Option Explicit

Sub Satir_Yuksekligi()
    Dim S1 As Worksheet, S2 As Worksheet, Genislik As Integer, Yukseklik As Integer
    Dim Alan As Range, Veri As Variant, Satir As Integer, X As Integer
      
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
  
    Set S1 = Sheets("Sayfa1")
  
    On Error Resume Next
    Sheets("Test").Delete
    On Error GoTo 0
  
    Sheets.Add
    Set S2 = ActiveSheet
    S2.Name = "Test"
  
    S1.Rows(1).RowHeight = 100
  
    For Each Alan In S1.Range("A2:A" & S1.Cells(S1.Rows.Count, 1).End(3).Row)
        Genislik = Alan.Columns.Width
        Yukseklik = 0
      
        Satir = 2
      
        With S2
            .Cells.Delete
            .Cells.Font.Size = Alan.Font.Size
            .Range("A1") = Alan.Text
            .Range("A:A").WrapText = True
            .Range("A1").VerticalAlignment = xlJustify
            .Range("A1").ColumnWidth = Genislik / 5.3
            .Range("A1").EntireRow.AutoFit
          
            Veri = Split(.Range("A1"), Chr(10))
          
            For X = 0 To UBound(Veri)
                .Cells(Satir, 1) = Veri(X)
                Yukseklik = Yukseklik + .Cells(Satir, 1).RowHeight
                Satir = Satir + 1
            Next
          
            .Cells.Delete
        End With
      
        If Yukseklik = 0 Then Yukseklik = 15
        Alan.RowHeight = Yukseklik
    Next

    On Error Resume Next
    S2.Delete
    On Error GoTo 0
  
    Set S1 = Nothing
    Set S2 = Nothing

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
Korhan hocam teşekkürler, emeklerinize sağlık, olmuştur.

Doğrusu bu kadar uzun ve detaylı bir kod gerekeceğini hiç tahmin etmezdim.

Sadece (A:A) gibi bir satır ilave edilecek ve çözülecek diye düşünüyordum.

Biraz denemeler yapayım, daha sonra sütun sorumu yönelteceğim.

Sütun sorusu basit.

Sağ olunuz Korhan hocamız.
 
Son düzenleme:

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Ayrıca ilk defa şunu fark ettim. (İki durum arasındaki farklılık)

Range("C1:F1").Columns.AutoFit

Sadece birinci satır hücrelerine göre genişliği ayarlıyor;

Benzer kod olan

Range("A3:A6").Rows.AutoFit ise,

sadece birinci sütundaki hücrelere göre yüksekliği ayarlamıyor.

Tüm hücrelere göre ayarlıyor.


Oysa düz mantık, sadece birinci sütundaki hücrelere göre yükseklik ayarlaması gerekirdi.
Çünkü kodlar aynı.

Vardır bu farklılığın da bir sebebi.
 

Ekli dosyalar

Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Mesela beşinci satırın yüksekliğinin artmasını istemiyorum.
5. satır gibi satırın yüksekliğini arttırmak istemediğiniz hücreler neye göre belirlenecek
Kod:
 Columns("A:A").WrapText = True
Rows("1:1").RowHeight = 100
Rows("5:5").WrapText = False
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
5. satır gibi satırın yüksekliğini arttırmak istemediğiniz hücreler neye göre belirlenecek
Kod:
Columns("A:A").WrapText = True
Rows("1:1").RowHeight = 100
Rows("5:5").WrapText = False
Değerli Alicimri hocamız. Mesajınızı şimdi gördüm. Paylaştığınız kod için teşekkürler.
WrapText = False
Bu kod da istenmeyen satır atlamalarını kolayca düze çeviriyor.
True da tersini yapıyor. Sayenizde öğrenmiş oldum.
Hep söylerim, hocalarımızın alternatif kodlarıyla bilmediğimiz şeyleri öğreniyoruz.

Şöyle değiştirdim ve oldu


Kod:
Sayfa1.Rows.AutoFit
Range("B2:Z1000").WrapText = False
Rows("1:1").RowHeight = 100
Teşekkürler hocalarımıza.
 
Üst