Otomatik satır yüksekliği

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Forumda biraz aradım hatta bazılarını denedim ama olmadı. Birleşik yada birleşik olmayan hücre olsun satır yükseklikleri metne göre ayarlamak istiyorum. Genel sayfa içi. Hücre aralığı olmadan. Metne kaydır aktif ama deneme yaptım olmadı.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu şekilde kendinize uyarlayınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
[a1].RowHeight = Len([a1].Value)
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Üstad bu şekilde yazınca kodu kırmızı uyarı veriyor. Yanlışmı yapıyorum.
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
sanırım kodu kullanamıyorum
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Örnek dosya veya kodunuz varsa paylaşınız.
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
HOCAM HİÇ KOD YOK
 

Ekli dosyalar

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Üstadım aşağı doğru en az 1000 satır hücre belirsiz. Ekleme yapılacak daha.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Aşağıdaki kodları deneyebilir misiniz

Kod:
Sub OtomatikSütunGenişliği()
Cells.Select 
Cells.EntireColumn.AutoFit
End Sub

Sub OtomatikSatırGenişliği()
Cells.Select
Cells.EntireRow.AutoFit
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sayın @burhancavus61,
Bu tür problemle ben de karşılaşmıştım ve çözüm olarak şunu uygulamıştım.
C++:
        If Len(Madde) <= 120 Then GoTo DevamKapak
        For i = 125 To Len(Madde) Step 120
            For j = i To 1 Step -1
                If Mid(Madde, j, 1) = " " Then
                    Madde = Left(Madde, j) & Chr(10) & Right(Madde, Len(Madde) - j)
                    i = j
                    Range("A" & MaddeYaz, "B" & MaddeYaz).RowHeight = Range("A" & MaddeYaz, "B" & MaddeYaz).RowHeight + 11
                    Exit For
                End If
            Next j
        Next i
Bu kodla, kullanıdığım yazı tipine göre belirlediğim hücre genişliğinde kaç karakterden sonra satır atlamam gerektiğine bakıp (sizinkinde bu değr 100-110 arasında bir sayı) , toplam satır sayısını buluyorum.
Satır oluşturmak için Chr(10) ilave ediyorum ve işlemin sonunda her bir ilave satır için satır yüksekliğini 11 arttırıyorum.
Böyle bir mantık kurabilirsiniz. Pratik oluyor.
 

ismailozkan4224

Altın Üye
Katılım
22 Kasım 2011
Mesajlar
175
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
22-12-2027
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To 1000
a = "a" & i

Cells(i, 1).RowHeight = Len((Cells(i, 1).Value))
Next i
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
deneyeceğim hepsini :)
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Olmadı baya zahmetli olacak.
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Ömer Baran hocamın bir kodunu buldum tek hücrede değişiklik yaparsam bu kod çalışıyor. Bu kod zerinden gitmek mükünmüdür. Birde bu kodun çalışması için o hücreye tıklamak gerekiyor. Ben istiyorumki sayfayı seçtiğimde 1. satordan 1000. satıra kadar ne kadar genişlemesi yada daralması gereken hücre varsa hepsinde etkin olsun.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [J53, B47]) Is Nothing Then Exit Sub
Rows(47).RowHeight = WorksheetFunction.RoundUp((Len(Range("B47")) / 90), 0) * 16
End Sub
Konu linki
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Korhan hocamın bu kodu işimi görecek gibi ama tüm sayfaya uyarlamam gerek. hücre seçmek zorunda kalmadan çalıştırabilirsem bu kod tam bana göre.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim S1 As Worksheet, Genislik As Integer, Yukseklik As Integer
    Dim Veri As Variant, Satir As Integer, X As Integer
 
    If Intersect(Target, Range("A1:L" & Rows.Count)) Is Nothing Then Exit Sub
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
 
    Application.ScreenUpdating = False
    Genislik = Range("A1:L1000").Columns.Width
 
    On Error Resume Next
    Application.DisplayAlerts = False
    Sheets("Test").Delete
    Application.DisplayAlerts = True
    On Error GoTo 0
    
    Sheets.Add
    Set S1 = ActiveSheet
    S1.Name = "Test"
    
    Satir = 2
 
    Application.DisplayAlerts = False
 
    With S1
        .Cells.Delete
        .Cells.Font.Size = Target.Font.Size
        .Range("A1") = Target.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
    Target.RowHeight = Yukseklik
    
    On Error Resume Next
    Application.DisplayAlerts = False
    S1.Delete
    Application.DisplayAlerts = True
    On Error GoTo 0
 
    Set S1 = Nothing
 
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Satir_Yuksekliklerini_Ayarla()
    Dim S1 As Worksheet, S2 As Worksheet, WF As WorksheetFunction
    Dim Veri As Variant, Genislik As Integer, Yukseklik As Integer, Say As Byte
    Dim X As Long, Y As Byte, Z As Integer, Son As Long, Satir As Integer
 
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Set S1 = Sheets("Sözleşme Formülsüz")
    Set WF = WorksheetFunction
    
    On Error Resume Next
    Sheets("Test").Delete
    On Error GoTo 0
    
    Sheets.Add
    Set S2 = ActiveSheet
    S2.Name = "Test"
    
    Son = S1.Cells.Find(What:="*", SearchDirection:=xlPrevious).Row
    
    For X = 1 To Son
        ReDim Liste(1 To 12)
        
        Yukseklik = 0
        Satir = 2
        Say = 0
                
        For Y = 1 To 12
            If S1.Cells(X, Y) <> "" Then
                If S1.Cells(X, Y).MergeCells Then
                    Genislik = S1.Cells(X, Y).MergeArea.Columns.Width
                Else
                    Genislik = S1.Cells(X, Y).Columns.Width
                End If
                
                With S2
                    .Cells.Delete
                    .Cells.Font.Size = S1.Cells(X, Y).Font.Size
                    .Range("A1") = S1.Cells(X, Y).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 Z = 0 To UBound(Veri)
                        .Cells(Satir, 1) = Veri(Z)
                        Yukseklik = Yukseklik + .Cells(Satir, 1).RowHeight
                        Satir = Satir + 1
                    Next
                    
                    .Cells.Delete
                End With
                
                If Yukseklik = 0 Then Yukseklik = 15
                Say = Say + 1
                Liste(Say) = Yukseklik
            End If
        Next
        If Say > 0 Then S1.Cells(X, Y).RowHeight = WF.Max(Yukseklik)
    Next
    
    On Error Resume Next
    S2.Delete
    On Error GoTo 0
 
    Set WF = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
 
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
    MsgBox "Satır yükseklikleri ayarlanmıştır.", vbInformation
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Hocam çok teşekkür ederim süpersiniz. :)
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Hocam tek satırlık kelimelerin olduğu hücreler var onalrıda çok genişletiyor bu kısmı ayarlama şansımız varmı acaba.
 
Katılım
6 Ağustos 2015
Mesajlar
2
Excel Vers. ve Dili
Office Professional Pro 2013 Türkçe
Merhabalar, benim de satır yüksekliğini otomatik ayarlayamama sorunum var. Yukarıda Burhan Bey'in bahsettiği gibi birleştirilmemiş hücrelerde "metni kaydır"a tıklayınca metnin devamı, hücreye sığmadığından aşağıya kayıyor ve satır yüksekliği de büyüyor. Ancak excel birleştirilmiş hücrelerde bunu yapmıyor. Excel yardımdan baktığım kadarıyla Giriş->Biçim->Hücre Boyutu sekmeleri altına gelerek şunu yapın yazıyor:
  • Satır yüksekliğini otomatik olarak ayarlamak için Satır Yüksekliğini Otomatik Sığdır öğesini tıklatın.

oysa orada öyle bir seçenek yok, "Satır Yüksekliği" ve "En Uygun Satır Yüksekliği" seçenekleri var. Burada en yakın seçenek olan "En Uygun Satır Yüksekliği" seçeneğini seçsek bile bu da sanırım "Metni Kaydır" butonunun yaptığı işi yapıyor ama birleştirilmiş hücrede bunlar da işe yaramıyor. Excel sayfasındaki bütün hücrelerde bunu gerçekleştirmek istiyorum. Kodsuz çözümü yok mudur acaba? Şimdiden teşekkür ediyorum.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Birleştirilmiş hücreler görsel olarak excele katkıda bulunsa da daha sonra formül ve farklı işlemlerde sorunlar çıkarıyor. Bunları da çözmek için genellikle makrolu çözümler kullanılıyor.

Siz de çözüm için makro kullanmalısınız.
 
Üst