- Katılım
- 2 Ekim 2011
- Mesajlar
- 356
- Excel Vers. ve Dili
- excel 360 TR 64bit
- Altın Üyelik Bitiş Tarihi
- 15-04-2025
makro için "AN"sütununda herhangi satır hücresinde metin yok ise sadece o satırı 25 hücre yüksekliğine ayarlayabilirmiyiz
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("AN:AN")) Is Nothing Then
If Target = "" Then
Rows(Target.Row).RowHeight = 25
End If
End If
End Sub
cevabınız için çok teşekkür ederim.kodu ekledim.nasıl çalışıyor .bir hareket olmadı onun içinMerhaba.
Sayfanın kod kısmına aşağıdaki kodları kopyalayın.
AN sütununda bir değişiklik olduğunda kodlar çalışacak ve istediğinizi yapacaktır.Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("AN:AN")) Is Nothing Then If Target = "" Then Rows(Target.Row).RowHeight = 25 End If End If End Sub
Sub Test()
Dim Bak As Range
For Each Bak In Range("AN:AN")
If Bak = "" Then
Rows(Bak.Row).RowHeight = 25
End If
Next
End Sub
bu kod tercihimdir.ancak 20 dk bekledim hala işlemdeydi. kapattım. dosyamında 30 mb büyüklüğünde .o yüzdenmi bilemedim.belki sayfanın bütün satırlarınamı bakıyor?. 500 satıra kadar verilerim. işin içinden çıkamadımYukarıdaki kod "AN" sütununda herhangi bir hücrede değişiklik yaptığınızda sadece değişiklik yapılan hücre için çalışır.
Aşağıdaki kodu normal çalıştırdığınızda "AN" sütunundaki tüm hücreleri kontrol ederek çalışır.
Hangisi işinizi görüyorsa onu kullanırsınız.Kod:Sub Test() Dim Bak As Range For Each Bak In Range("AN:AN") If Bak = "" Then Rows(Bak.Row).RowHeight = 25 End If Next End Sub
Sub Test()
Dim Bak As Range
Dim SonSatir As Long
SonSatir = Cells(Rows.Count, "AN").End(xlUp).Row
For Each Bak In Range("AN1:AN" & SonSatir)
If Bak = "" Then
Rows(Bak.Row).RowHeight = 25
End If
Next
End Sub
evet bu gayet hızlı saniyesinde işlem yaptı çok teşekkür ederim ellerinize sağlıkO zaman şu kodu kullanın.
Kod:Sub Test() Dim Bak As Range Dim SonSatir As Long SonSatir = Cells(Rows.Count, "AN").End(xlUp).Row For Each Bak In Range("AN1:AN" & SonSatir) If Bak = "" Then Rows(Bak.Row).RowHeight = 25 End If Next End Sub
evet metin yoksa boş.dalgalıkur un verdiği kod çok iyi iş gördü.teşkkür ederim"metin yoksa" ifadenizden ne anlamalıyız. Hücre boşsa mı demek istiyorsunuz?
Option Explicit
Sub Satir_Yuksekligi_Ayarla()
Dim Son_Satir As Range, Veri As Range, X As Long, Alan As Range, Zaman As Double
Zaman = Timer
Set Son_Satir = Cells.Find("*", , , , xlByRows, xlPrevious)
For Each Veri In Range("AN1:AN" & Son_Satir.Row)
If Veri.Value = "" Then
If Alan Is Nothing Then
Set Alan = Veri
Else
Set Alan = Union(Alan, Veri)
End If
End If
Next
If Not Alan Is Nothing Then Alan.RowHeight = 25
MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
Option Explicit
Sub Satir_Yuksekligi_Ayarla()
Dim Son_Satir As Range, Zaman As Double
Zaman = Timer
Set Son_Satir = Cells.Find("*", , , , xlByRows, xlPrevious)
Range("AN1:AN" & Son_Satir.Row).SpecialCells(xlCellTypeBlanks).RowHeight = 25
MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
ellerinize sağlık ......Alternatif;
Hız olarak biraz daha avantaj sağlayacaktır.
C++:Option Explicit Sub Satir_Yuksekligi_Ayarla() Dim Son_Satir As Range, Veri As Range, X As Long, Alan As Range, Zaman As Double Zaman = Timer Set Son_Satir = Cells.Find("*", , , , xlByRows, xlPrevious) For Each Veri In Range("AN1:AN" & Son_Satir.Row) If Veri.Value = "" Then If Alan Is Nothing Then Set Alan = Veri Else Set Alan = Union(Alan, Veri) End If End If Next If Not Alan Is Nothing Then Alan.RowHeight = 25 MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _ "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation End Sub
Eğer AN sütununda hücreler gerçekten boş ise yani (formül girişi sonucu boş olanlar hariç) aşağıdaki kod ile de sonuca gidebilirsiniz.
C++:Option Explicit Sub Satir_Yuksekligi_Ayarla() Dim Son_Satir As Range, Zaman As Double Zaman = Timer Set Son_Satir = Cells.Find("*", , , , xlByRows, xlPrevious) Range("AN1:AN" & Son_Satir.Row).SpecialCells(xlCellTypeBlanks).RowHeight = 25 MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _ "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation End Sub