Hücre içindeki Boş satırları silme

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Arkadaşlar excelde bir sütun içinde yüzlerce hücrede metin paragraflar var. Bu paragraflar arasında bazen boş satırlar var. (boş hücre değil) hücre içinde boş satırları silmemiz mümkün mü? Bu iş makro ile yapılabilir mi?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,441
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Örnek dosya olsa belki bir yapan çıkar sanırım.
 
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Kod:
Sub trım()
For Each t In Sheets("sayfa1").Range("e1:e1847").Cells

    If Not t.HasFormula Then

        t.Value = WorksheetFunction.Trim(t.Value)

    End If

Next
End Sub
Exceldeki gibi kırpma yapmak istiyorsunuz değil mi ?
 
Son düzenleme:

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Bir hücrenin içinde aşağıdaki gibi metin var

Deneme için yazılmıştır.

Deneme için yazılmıştır.

Deneme için yazılmıştır.

Deneme için yazılmıştır.

Yukarıdaki 4 satır da örneğin A1 hücresinin içinde metin paragrafları olarak var. Bu A1 hücresi aşağıdaki gibi olacak

Deneme için yazılmıştır.
Deneme için yazılmıştır.
Deneme için yazılmıştır.
Deneme için yazılmıştır.

Word'daki boş satırları silme gibi. Ama burada boş satırları değil aynı hücre içindeki metinde var olan boş satırları silmek
 
Katılım
20 Şubat 2007
Mesajlar
670
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Bul kutusuna 2 defa Ctrl+J ile özel karakteri girin
Değiştir kutusuna 1 defa Ctrl+J ile özel karakteri girin
Tümünü değiştir
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Necati Bey selamlar...
Ctrl+J özel karakter derken neyi kastediyorsunuz anlayamadım. Excel de özel karakter bulamadım.
 
Katılım
20 Şubat 2007
Mesajlar
670
Excel Vers. ve Dili
2007 Excel, Word Tr
Ctrl+J Tuş kombinasyonu. Yani Ctrl ve J tuşlarına birlikte basmayı demek istedim. Özel karakter dememin sebebi de bunları tuşlayınca birşey olmadı gibi görünür ama imleç küçük bir nokta karakteri gibi yanıp söner.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Ctrl+J Tuş kombinasyonu. Yani Ctrl ve J tuşlarına birlikte basmayı demek istedim. Özel karakter dememin sebebi de bunları tuşlayınca birşey olmadı gibi görünür ama imleç küçük bir nokta karakteri gibi yanıp söner.
Necati Bey Teşekkürler...
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Necati Bey Tekrar çok teşekkür ederim. Bu yardımınız çok faydalı oldu.
Size bir sorum daha olacak eğer bu sorunumun çözümü varsa benim için adeta kolaylık açısından bir dönüm noktası olacak.
Excel panoya 24 adet bilgi kopyalayabiliyoruz ve tümünü yapıştır deyince her kopya bir hücreye (Sütun sırasına göre) yapıştırılıyor. Ancak metinde paragraf varsa (yukarıdaki soruda olduğu gibi) bir sonraki hücreye taşarak yapıştırıyor. Bunun çözümü varmı?
Yani panodaki her bir kopya birden fazla paragraf bile olsa bir hücrenin içine yapışacak.
Bunu şuan ben tek tek Formül satırına yada hücreye çift tıklatarak hücrenin içine yapıştırarak yapıyorum. Bunu toplu olarak yapabilirmiyiz

Tekrar yardımlarınız için teşekkürler.
 
Katılım
20 Şubat 2007
Mesajlar
670
Excel Vers. ve Dili
2007 Excel, Word Tr
Sanırım Korhan Bey'in buna benzer bir paylaşımı olmuştu. F3'e bastıkça hafızaya topluyor, F4'e bastıkça da hücreye yapıştırıyordu. Bu sorunun cevabını da O verilebilir diye düşünüyorum. O paylaşımı buldum Sayılarla ilgili ve şöyleydi:
Kod:
Dim My_Total As Double

Sub Auto_Open()
    Application.OnKey "{F3}", "Selection_Sum"
    Application.OnKey "{F4}", "Write_Sum"
End Sub

Sub Selection_Sum()
    My_Total = WorksheetFunction.Sum(Selection)
End Sub

Sub Write_Sum()
    Selection = My_Total
End Sub

Sub Auto_Close()
    Application.OnKey "{F3}"
    Application.OnKey "{F4}"
End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Ctrl+J Tuş kombinasyonu. Yani Ctrl ve J tuşlarına birlikte basmayı demek istedim. Özel karakter dememin sebebi de bunları tuşlayınca birşey olmadı gibi görünür ama imleç küçük bir nokta karakteri gibi yanıp söner.
Necati Bey Selamlar...
yukarıdaki yöntem ile bazı durumlarda işlemi gerçekleştirmiyor sebebini anlayamadım.
"Değiştirilecek bir şey bulamadık, başka arama yöntemi için seçenekleri kullanın
Bu arada değiştirmeye çalıştığınız hücre korumalı olabilir"
diye mesaj çıkıyor. halbuki hem hücrede boş satırlar var hem de hücre korumalı değil.

Bu yöntemin makro kod ile bir seçeneği olabilir mi acaba?
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
729
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Necati Bey Selamlar...
yukarıdaki yöntem ile bazı durumlarda işlemi gerçekleştirmiyor sebebini anlayamadım.
"Değiştirilecek bir şey bulamadık, başka arama yöntemi için seçenekleri kullanın
Bu arada değiştirmeye çalıştığınız hücre korumalı olabilir"
diye mesaj çıkıyor. halbuki hem hücrede boş satırlar var hem de hücre korumalı değil.

Bu yöntemin makro kod ile bir seçeneği olabilir mi acaba?
Aşağıdaki mesajı inceleyiniz.

A'da işlem yapar B'ye yazar.



Sadece A sütununda işlem yapar.

C++:
Sub ReplaceLineBreak()
Dim rng As Range
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(i, "A")
rng.Value = Replace(rng.Value, Chr(10), " ") 'Tırnak işareti arasına değişecek değer girilir.
Next i
End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Aşağıdaki mesajı inceleyiniz.

A'da işlem yapar B'ye yazar.



Sadece A sütununda işlem yapar.

C++:
Sub ReplaceLineBreak()
Dim rng As Range
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(i, "A")
rng.Value = Replace(rng.Value, Chr(10), " ") 'Tırnak işareti arasına değişecek değer girilir.
Next i
End Sub
Teşekkürler... Çalışıyor.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Aşağıdaki mesajı inceleyiniz.

A'da işlem yapar B'ye yazar.



Sadece A sütununda işlem yapar.

C++:
Sub ReplaceLineBreak()
Dim rng As Range
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(i, "A")
rng.Value = Replace(rng.Value, Chr(10), " ") 'Tırnak işareti arasına değişecek değer girilir.
Next i
End Sub
RBozkurt Bey Selamlar
yukarıda kod çalışıyor demiştim ama detaylı incelediğimde tüm paragrafları silip düz metin haline getiriyor.
Ben 4. mesajda anlattığım gibi;
Bir hücrenin içinde aşağıdaki gibi metin var

Deneme için yazılmıştır.

Deneme için yazılmıştır.

Deneme için yazılmıştır.

Deneme için yazılmıştır.

Yukarıdaki 4 satır da örneğin A1 hücresinin içinde metin paragrafları olarak boş satırlar var. Bu A1 hücresi aşağıdaki gibi sadece boş satırlar silinecek ama paragraflar kalacak

Deneme için yazılmıştır.
Deneme için yazılmıştır.
Deneme için yazılmıştır.

Deneme için yazılmıştır.

Sizin yazdığınız kod ise aşağıdaki gibi yapıyor

Deneme için yazılmıştır. Deneme için yazılmıştır. Deneme için yazılmıştır. Deneme için yazılmıştır.

Halbuki "Alt+Enter" ile yapılan paragraflar kalacak. sadece aynı hücre içindeki boş satırlar silinecek

Selamlar...
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
729
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Paylaşmış olduğum kod ALT+ENTER işevini kaldırmak içindi. Vermiş olduğunuz şekilde alt alta yine ALT+ENTER işlevi kullanılıyor. Boş satır gibi görünsede ALT+ENTER karakterini içeriyor. Bu sebepten tek satır haline getirdi.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Paylaşmış olduğum kod ALT+ENTER işevini kaldırmak içindi. Vermiş olduğunuz şekilde alt alta yine ALT+ENTER işlevi kullanılıyor. Boş satır gibi görünsede ALT+ENTER karakterini içeriyor. Bu sebepten tek satır haline getirdi.
Peki kod sadece boş satırları silecek şekilde düzenlenebilir mi acaba
 
Katılım
20 Şubat 2007
Mesajlar
670
Excel Vers. ve Dili
2007 Excel, Word Tr
Necati Bey Selamlar...
yukarıdaki yöntem ile bazı durumlarda işlemi gerçekleştirmiyor sebebini anlayamadım.
"Değiştirilecek bir şey bulamadık, başka arama yöntemi için seçenekleri kullanın
Bu arada değiştirmeye çalıştığınız hücre korumalı olabilir"
diye mesaj çıkıyor. halbuki hem hücrede boş satırlar var hem de hücre korumalı değil.

Bu yöntemin makro kod ile bir seçeneği olabilir mi acaba?
Tekrar merhaba,
O mesaj seçili alanda değiştirilecek veri olmadığında çıkıyor.
Ya tüm sayfada alan seçmeden yada yeni alanı seçerek tekrar deneyiniz.
Başka türlü bir alternatifi yok. Olmazsa örnek dosya paylaşınız.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
729
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Aşağıdaki şekilde bi deneyin. Örnek yok kendim yazarak denedim oldu gibi. Başka aklıma gelen yok ustalara kaldı artık :)

C++:
Sub ReplaceLineBreak()
Dim rng As Range
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim e As Long
Dim f As Long
Dim g As Long

For a = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(a, "A")
rng.Value = Replace(rng.Value, Chr(10), "~")
Next a

For b = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(b, "A")
rng.Value = Replace(rng.Value, "~~~~~~", Chr(10))
Next b

For c = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(c, "A")
rng.Value = Replace(rng.Value, "~~~~~", Chr(10))
Next c

For d = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(d, "A")
rng.Value = Replace(rng.Value, "~~~~", Chr(10))
Next d

For e = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(e, "A")
rng.Value = Replace(rng.Value, "~~~", Chr(10))
Next e

For f = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(f, "A")
rng.Value = Replace(rng.Value, "~~", Chr(10))
Next f

For g = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Cells(g, "A")
rng.Value = Replace(rng.Value, "~", "")
Next g

End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
498
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2027
Malesef yukarıdaki kod gibi yaptı
 
Katılım
20 Şubat 2007
Mesajlar
670
Excel Vers. ve Dili
2007 Excel, Word Tr
Paylaşım sitelerine örnek paylaşabilirseniz biz de nasıl olduğunu görebilelim.
 
Üst