En son dolu hücreye kadar seçme

Katılım
7 Aralık 2006
Mesajlar
160
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
27-05-2023
Merhabalar,
Bir tablomdaki
A sütunundaki değerleri (dolu hücrelerde) ve
B sütunundaki değerleri (dolu hücrelerde)
kopyalayıp G sütununa yapıştırmasını
ve yinelenenleri kaldırmasını makro ile
nasıl sağlayabilirim

 
Katılım
5 Nisan 2008
Mesajlar
352
Excel Vers. ve Dili
Microsoft Office Standard 2010 TR
32 Bit
Altın Üyelik Bitiş Tarihi
31-01-2024
Deneyiniz

Sub VeriKopyalaYapistirKaldir()
Dim ws As Worksheet
Dim sonSatir As Long, i As Long
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

' Çalışmak istediğiniz sayfayı belirleyin
Set ws = ThisWorkbook.Sheets("Sayfa1") ' Sayfa adını değiştirin

' Son dolu satırı bulun
sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

' A ve B sütunlarındaki verileri G sütununa kopyala
For i = 1 To sonSatir
If ws.Cells(i, "A").Value <> "" And ws.Cells(i, "B").Value <> "" Then
ws.Cells(i, "G").Value = ws.Cells(i, "A").Value & " - " & ws.Cells(i, "B").Value
End If
Next i

' G sütunundaki yinelenen değerleri kaldır
For i = 1 To sonSatir
If ws.Cells(i, "G").Value <> "" Then
If Not dict.Exists(ws.Cells(i, "G").Value) Then
dict(ws.Cells(i, "G").Value) = True
Else
ws.Cells(i, "G").ClearContents
End If
End If
Next i

Set dict = Nothing
End Sub
 
Katılım
7 Aralık 2006
Mesajlar
160
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
27-05-2023
Deneyiniz

Sub VeriKopyalaYapistirKaldir()
Dim ws As Worksheet
Dim sonSatir As Long, i As Long
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

' Çalışmak istediğiniz sayfayı belirleyin
Set ws = ThisWorkbook.Sheets("Sayfa1") ' Sayfa adını değiştirin

' Son dolu satırı bulun
sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

' A ve B sütunlarındaki verileri G sütununa kopyala
For i = 1 To sonSatir
If ws.Cells(i, "A").Value <> "" And ws.Cells(i, "B").Value <> "" Then
ws.Cells(i, "G").Value = ws.Cells(i, "A").Value & " - " & ws.Cells(i, "B").Value
End If
Next i

' G sütunundaki yinelenen değerleri kaldır
For i = 1 To sonSatir
If ws.Cells(i, "G").Value <> "" Then
If Not dict.Exists(ws.Cells(i, "G").Value) Then
dict(ws.Cells(i, "G").Value) = True
Else
ws.Cells(i, "G").ClearContents
End If
End If
Next i

Set dict = Nothing
End Sub

Cevabınız için teşekkür ederim,
Belki de ben tam ifade edemediğim için bir hata oldu,
Yazdığınız Makroda A ve B sütununu birleştirerek listeliyor,
Benim istediğim A ve B sütunundaki tüm değerleri önce alt alta listeleyip sonra tüm bu listeden yinelenenleri kaldırmasıydı,

Örnek A sütununda:
A123
A456
A789
A123 değerleri var.

B sütununda ise
A123
A456
B123
B456 değerleri var,

Bunları tek sütunda listeleyip yinelenenleri kaldırıp bana:
A123
A456
A789
B123
B456 şeklinde liste vermesini istiyorum
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Test()
    Columns("G:G").ClearContents
    Range("A1:A" & Cells(Rows.Count, "A").End(3).Row).Copy Cells(1, "G")
    Range("B1:B" & Cells(Rows.Count, "B").End(3).Row).Copy Cells(Rows.Count, "G").End(3)(2, 1)
    Range("G:G").RemoveDuplicates Columns:=1, Header:=xlNo
    Range("G:G").Sort Range("G1"), xlAscending
End Sub
 
Üst