• DİKKAT

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

Üç ayrı hücredeki veriyi tek hücrede toplamak

  • Konbuyu başlatan Konbuyu başlatan sakoz
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Üstadlarım Merhaba ,

Elimizdeki dosyada C;D;E sütunlarında veriler var. Parça kodu olarak geçiyor.
Bu 3 sütunun birleşmiş halini F sütununda görmek istiyoruz. Satır sayıları 100,000 in üzerinde ve epey bir sayfa var. Bunu yapacak bir makroya ihtiyacımız var.

Yalnız c1,d1,e1 hücrelerindeki verilerin sonunda boşluklar var onların silinmesi gerekiyor.
Yardımcı olursanız çok memnun olurum.
Şimdiden teşekkürler...

Örnek ;
C1 - 938AB
D1 - AC15
E1 - 0025

F1 - 938ABAC150025
 
ornek dosya ekleyebilirmisiniz prensip gereği cevaplamıyorum
 
Merhaba.

Aslında ihtiyacınızı en basit haliyle aşağıdaki formül görür ancak;
hücrede en sonda olduğunu belirttiğiniz BOŞLUK karakterinin özelliğine göre durum değişebilir.
Sizin BOŞLUK diye tanımladığınız karakter bilinen BOŞLUK karakterinden farklı bir karakter de olabilir.

Sayın parametre'nin de belirttiği gibi en iyisi; bütünü temsil edebilecek türden
(çok fazla satır olmasına gerek yok elbette)
veriler içeren ve gerçek belgenizle aynı yapıda bir örnek belge yüklerseniz kısa sürede, net ve kesin sonuca ulaşabilirsiniz diye düşünüyorum.

Örnek belge özellikleri ve örnek belge yükleme konusundaki açıklama cevabımın altındaki İMZA bölümünde var.
.
Kod:
=[COLOR="red"]KIRP[/COLOR](C1)&[COLOR="red"]KIRP[/COLOR](D1)&[COLOR="Red"]KIRP[/COLOR](E1)
 
ornek dosya ekleyebilirmisiniz prensip gereği cevaplamıyorum

Merhabalar,

Örnek dosyayı ekledim.

C;D;E sütunlarında veriler var. Parça kodu olarak geçiyor.
Bu 3 sütunun birleşmiş halini F sütununda görmek istiyoruz.

Ayrıca N,O,P sütunlarındada aynı şekilde veriler var. Parça kodu olarak geçiyor.
Bunlarında birleşmiş halini Q sütununda görmek istiyoruz.

Satır sayıları 100,000 in üzerinde ve epey bir sayfa var. Bunu yapacak bir makroya ihtiyacımız var.

Yalnız bu hücrelerdeki verilerin sonunda boşluklar var onların silinmesi gerekiyor.

Şimdiden herkese teşekkür ederim.

http://s2.dosya.tc/server5/tk9cli/ornek.xlsx.html
Saygılarımla,
 
Merhaba,

....

Kod:
Option Explicit
Sub Birlestir()
Dim a(), b(), i As Long, Say As Long
Dim j As Byte, S1 As Worksheet
Application.ScreenUpdating = False
For j = 1 To Worksheets.Count
    Set S1 = Sheets(j)
    a = S1.Range("N2:P" & S1.Cells(Rows.Count, "N").End(3).Row)
    ReDim b(1 To UBound(a), 1 To 1)
    For i = 1 To UBound(a)
        Say = Say + 1
        b(Say, 1) = Trim(a(i, 1)) & Trim(a(i, 2)) & Trim(a(i, 3))
    Next i
    S1.[Q2].Resize(Say) = b
    Say = 0
Next j
Application.ScreenUpdating = True
MsgBox "İşlem Tamam.", vbInformation
End Sub
 
Bu da alternatif olsun..
Seçilen hücreleri yan sütunda birleştirir.


Kod:
[SIZE="2"]DefInt I-J, S: DefStr M
Sub SutunBirlestir()
    ilksut = ActiveWindow.RangeSelection.Column
    ilksat = ActiveWindow.RangeSelection.Row
    sutsay = ActiveWindow.Selection.Columns.Count
    satsay = ActiveWindow.Selection.Rows.Count
    For j = 1 To satsay
        sat = ilksat + j - 1
        Metin = ""
        For i = 1 To sutsay
            sut = ilksut + i - 1
            Metin = Metin & Cells(sat, sut).Text
            Cells(sat, sut).Value = ""
        Next i
        Cells(sat, ilksut + sutsay).Value = Trim(Metin)
    Next j
    MsgBox "İşlem Tamamlandı.", vbInformation, "Www.ExcelArsivi.Com"
End Sub
[/SIZE]
 
Merhaba;

Sayın Ömer BARAN'ın önerdiği yöntem hem makrosuz hem de zahmetsizce işinisi görecektir. İncelemenizi tavsiye ederim.
 
Merhaba.

Önceki cevabımdan asıl maksatımın BOŞLUK karakterinin durumunu netleştirmek üzere
örnek belge yüklenmesini istemek olduğu anlaşılıyordur diye düşünüyorum.

Bir makro önerisi de benden olsun.
KOD, Q1 hücresi "ESKI STOK KODU" olan tüm sayfalardaki;
-- C, D ve E sütunundaki kodları F sütununda,
-- N, O ve P sütunundaki kodları Q sütununda birleştirir.
.
Kod:
[B]Sub STOK_KODU_BIRLESTIR()[/B]
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
    For Each s In ActiveWorkbook.Worksheets
        If s.Cells(1, 17) <> "ESKI STOK KODU" Then GoTo 10
            For satir = 2 To s.Cells(Rows.Count, 1).End(3).Row
                If s.Cells(satir, 14) <> "" Then s.Cells(satir, 17) = _
                    Trim(s.Cells(satir, 14)) & Trim(s.Cells(satir, 15)) & Trim(s.Cells(satir, 16))
                If s.Cells(satir, 3) <> "" Then s.Cells(satir, 6) = _
                    Trim(s.Cells(satir, 3)) & Trim(s.Cells(satir, 4)) & Trim(s.Cells(satir, 5))
            Next
10: Next
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "İşlem tamamlandı.", vbInformation, "..::.. ÖMER BARAN ..::.."
[B]End Sub[/B]
 
Bütün üstadlarımın hepsine çok çok teşekkür ederim. Elleriniz dert görmesin sağolun varolun :)
 
Geri
Üst