• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

  • Konbuyu başlatan Konbuyu başlatan asdsxx
  • Başlangıç tarihi Başlangıç tarihi

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
510
Excel Vers. ve Dili
Excel 2016 Türkçe
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?
 
Merhaba,

Örnek dosya olsa belki bir yapan çıkar sanırım.
 
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:
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
 
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
 
Necati Bey selamlar...
Ctrl+J özel karakter derken neyi kastediyorsunuz anlayamadım. Excel de özel karakter bulamadım.
 
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.
 
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...
 
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.
 
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
 
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?
 
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
 
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.
 
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...
 
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.
 
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
 
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.
 
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
 
Malesef yukarıdaki kod gibi yaptı
 
Paylaşım sitelerine örnek paylaşabilirseniz biz de nasıl olduğunu görebilelim.
 
Geri
Üst