Alt+Enter hücrelerini ayrı satırlara yapıştırmak

Katılım
29 Mayıs 2012
Mesajlar
5
Excel Vers. ve Dili
2007 türkçe
Sayın Adminler;
Ekteki listede L kolonunda bulunan ve Alt+Enter ile geçilen değerleri ayrı ayrı satırlara yapıştırmak istiyoruz.
Bunu yaparken K Kolunundaki Değerlerin eklenen satır sayısı kadarar alanması ve birleştirilmesi gerekiyor.

bunu yapabileceğimiz bir makro veya komut varmıdır.

Yardımlarınız için şimdiden teşekkürler
 

Ekli dosyalar

Necdet

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

Sorunuzdan hiç bir şey anlamadım. Ayrı ayrı satırlara yapıştırmaktan kastınız nedir? başka bir sütuna mı yapıştıracaksınız, yoksa verileri Alt+Enter dan mı kurtarmak istiyorsunuz?

Dosyanızda olması gerekeni belirtirseniz anlaşılması daha kolay olacaktır.
 
Katılım
29 Mayıs 2012
Mesajlar
5
Excel Vers. ve Dili
2007 türkçe
Merhaba,

Sorunuzdan hiç bir şey anlamadım. Ayrı ayrı satırlara yapıştırmaktan kastınız nedir? başka bir sütuna mı yapıştıracaksınız, yoksa verileri Alt+Enter dan mı kurtarmak istiyorsunuz?

Dosyanızda olması gerekeni belirtirseniz anlaşılması daha kolay olacaktır.
Merhaba
Şöyle anlatayım daha açıklayıcı olur
L kolonundaki alt+Enter ile geçilen 4 adet satır var diyelim. Bunu 4 ayrı excel satırına yapıştırmak istiyoruz.

Ama sol taraftaki K satırının eklenen satır sayısı kadar karşılğa gelecek şekilde Birleştir ve ortala yapılması gerekiyor. bu olay en alt satıra kadar devam edecek
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,374
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba
Şöyle anlatayım daha açıklayıcı olur
L kolonundaki alt+Enter ile geçilen 4 adet satır var diyelim. Bunu 4 ayrı excel satırına yapıştırmak istiyoruz.

Ama sol taraftaki K satırının eklenen satır sayısı kadar karşılğa gelecek şekilde Birleştir ve ortala yapılması gerekiyor. bu olay en alt satıra kadar devam edecek

Hâlaa anlamakta güçlük çekiyorum. 5 bin küsur satırlık veri ekleyeceğinize 2-3 satırlık bir veri ekleyip, durum bu, olması gereken de bu diye gösterseniz şimdiye kadar çözülürdü sorunuz diye düşünüyorum.

Toplam 5000 satırınız var hem k hem l sütununda. L sütunundakilerden de alt+enter ile bölünenleri düşünürsük atıyorum 10.000 satır oldu, bu durumda bu işlemi 5 bin satırda mı kesilecek? Çünkü K 5000 satır diyelim.

Bence siz örnek dosyanızda çözümü de gösterin.
 
Katılım
29 Mayıs 2012
Mesajlar
5
Excel Vers. ve Dili
2007 türkçe
Hâlaa anlamakta güçlük çekiyorum. 5 bin küsur satırlık veri ekleyeceğinize 2-3 satırlık bir veri ekleyip, durum bu, olması gereken de bu diye gösterseniz şimdiye kadar çözülürdü sorunuz diye düşünüyorum.

Toplam 5000 satırınız var hem k hem l sütununda. L sütunundakilerden de alt+enter ile bölünenleri düşünürsük atıyorum 10.000 satır oldu, bu durumda bu işlemi 5 bin satırda mı kesilecek? Çünkü K 5000 satır diyelim.

Bence siz örnek dosyanızda çözümü de gösterin.
Merhaba
Ekteki sayda 2 deki gibi formata çevirmek istiyoruz.
ilk 30 satır 2li oldugundan dolayı 60 satır olarak yapıldı. ilerleyen satırlar içerisinde 3 lü ve 4lü satır olarak bölünmesi gerekenlerdevar. tek tek yapmak çok uzunsürecek olduğundan dolayı bir kısayol arıyoruz.

Selamlar
 

Ekli dosyalar

Necdet

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

Nihayet ne demek istediğinizi anladım. Aşağıdaki kodlar Sayfa1 deki K ve L sütununu Sayfa2 de A ve B sütununa düzenleyerek yazar.

Siz gerektiğinde bu yeni düzünlenmiş veriyi istediğiniz yere kopyalayabilirsiniz.

Kodlarda bir takım kontroller koydum, zira L sütununda birleştirilmiş hücreler vardı. Kodların çalışma sonrasında B sütununda boşluklar görürseniz L sütunundaki birleştirilmiş hücrelerin sonucudur.

Kod:
Sub Duzenle()
    
    Dim i   As Long, _
        j   As Long, _
        k   As Long, _
        m   As Integer, _
        d, _
        Sh1 As Worksheet, _
        Sh2 As Worksheet
    
    Set Sh1 = Sheets("Sayfa1")
    Set Sh2 = Sheets("Sayfa2")
    
    Application.ScreenUpdating = False
    On Error Resume Next
    Sh2.Range("A:B").Clear
    j = 2
    k = 1
    
    For i = 6 To Sh1.Cells(Rows.Count, "K").End(3).Row
    
        d = Split(Sh1.Cells(i, "L"), Chr(10))
        Sh2.Cells(j, "A") = Sh1.Cells(i, "K")
        For m = 0 To UBound(d)
            If Not d(m) = "" Then
                k = k + 1
                Sh2.Cells(k, "B") = d(m)
            End If
        Next m
        If k > j Then
            With Sh2.Range("A" & j & ":A" & k)
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .WrapText = False
                .MergeCells = True
            End With
            j = k + 1
        Else
            j = j + 1
            k = j - 1
        End If
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "İşlem Tamamlanmıştır....", vbInformation, "Excel.Web.Tr"
    
End Sub
 

Ekli dosyalar

Katılım
29 Mayıs 2012
Mesajlar
5
Excel Vers. ve Dili
2007 türkçe
Teşekkürler

Çok çok teşekkürler Necdet bey,
beni büyük bir zahmetten kurtardınız.



Merhaba,

Nihayet ne demek istediğinizi anladım. Aşağıdaki kodlar Sayfa1 deki K ve L sütununu Sayfa2 de A ve B sütununa düzenleyerek yazar.

Siz gerektiğinde bu yeni düzünlenmiş veriyi istediğiniz yere kopyalayabilirsiniz.

Kodlarda bir takım kontroller koydum, zira L sütununda birleştirilmiş hücreler vardı. Kodların çalışma sonrasında B sütununda boşluklar görürseniz L sütunundaki birleştirilmiş hücrelerin sonucudur.

Kod:
Sub Duzenle()
    
    Dim i   As Long, _
        j   As Long, _
        k   As Long, _
        m   As Integer, _
        d, _
        Sh1 As Worksheet, _
        Sh2 As Worksheet
    
    Set Sh1 = Sheets("Sayfa1")
    Set Sh2 = Sheets("Sayfa2")
    
    Application.ScreenUpdating = False
    On Error Resume Next
    Sh2.Range("A:B").Clear
    j = 2
    k = 1
    
    For i = 6 To Sh1.Cells(Rows.Count, "K").End(3).Row
    
        d = Split(Sh1.Cells(i, "L"), Chr(10))
        Sh2.Cells(j, "A") = Sh1.Cells(i, "K")
        For m = 0 To UBound(d)
            If Not d(m) = "" Then
                k = k + 1
                Sh2.Cells(k, "B") = d(m)
            End If
        Next m
        If k > j Then
            With Sh2.Range("A" & j & ":A" & k)
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .WrapText = False
                .MergeCells = True
            End With
            j = k + 1
        Else
            j = j + 1
            k = j - 1
        End If
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "İşlem Tamamlanmıştır....", vbInformation, "Excel.Web.Tr"
    
End Sub
 

Korhan Ayhan

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

Sami bey gereksiz yere alıntı yaparak yanıtlar verirseniz forum altyapısı gereksiz yere şişer. Verilen cevap sizin için yeterli ise teşekkür etmeniz ya da dönüş yapmanız forum düzeni için yeterli olacaktır. Aksi halde her cevapta alıntı yaparsak okuma düzeni bozulur. Lütfen bu konuya özen gösterelim.
 
Üst