• Web sitemizin SORU-CEVAP bölümünde dosya yüklemek ve dosya indirmek günlük limitlere bağlı olarak ÜCRETSİZ'dir.
    Gizlilik kapsamında, sadece site yöneticilerimizin ve üyenin kendisinin görebileceği ÜCRETLİ ÖZEL DESTEK alanımız mevcuttur.

Soru Makro ile birleştirme ve veri alma

REKLAM

muyat

VIP
VIP
Kullanıcı
Versiyon
  1. Excel 2016
Sürüm
  1. 64 bit
Dil
  1. Türkçe

Reputation:

Merhabalar.
isimler isminde bir dosya ekledim.
Dosyada "kisiler"isimli sayfada 07,P7 VE Q7 hücrelerinde kişilerin ad soyadları ve tcleri yazılı.
İsimlerin sayısı değişken fakat her zaman 7.satırdan başlayacak..
İstedigim şey şu:
Bu isimleri 2.sayfadaki f9 hücresine aktarırken aşagıda şekilde aktarılsın nistiyorum:
ALİ YILMAZ(12345678901), AHMET KORKMAZ(23456789012), MEHMET ÇİÇEK(34567890123), SERKAN ÖZDEMİR (45678901234)
Aktarırken tabi virgülden sonra boşluk da olcak ve ve hücreye sığması için de metni otomatik kaydıracak.
Başlangıç olarak aşagıdaki kodlardan sonra devamını getiremedim.Yardımcı olur musunuz?

Kod:
Set S1 = Sheets("kisiler") 'AKTARILACAK SAYFAYA İSİM  VERDİK
Set s10 = Sheets("kisiler2")
Sheets("kisiler ").Select


s1son = S1.Cells(Rows.Count, "O").End(3).Row   'S1 DEKİ O SUTUNUNDAKİ EN SON DOLU HÜCRENİN SATIR NUMARASINI BUL

If s1son < 7 Then: MsgBox "Aktarılacak veri yok!", vbCritical: Exit Sub

For s1sat = 7 To s1son                           '7.satırdan başlayarak son dolu satıra kadar işlem yap

next
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ekli dosyalar

  • isimler.xlsm
    9 KB · Görüntüleme: 2

52779

Forum Yönetimi
Yönetici
Site Yöneticisi
Versiyon
  1. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Selamlar,
İsteğinizin karşılığı olamayacaktır. Şimdiden, isteğinize alternatif bir çözüm olarak,
Resimden de görüleceği üzere,
Kullanıcı Tanımlı Fonksiyon (KTF) ile ve de office 2019 ve 365 için geçerli olan METİNBİRLEŞTİR işlevi ile çözüm örneği vermek isterim.

1614128289441.png

KTF, mevcut KTF kodlarının sizin durumunuza göre uyarlanması ile yapıldı.
İsimler kolonu baz alındı ve isimlere soy isimlerle TC No birleşimleri yapıldı.

Module deki KTF Kodu

Kod:
Function Birlestir(alan As Range, Optional Sembol As String = ";") As String
    Dim c As Range
         For Each c In alan
             If c.Value <> "" Then
                 Birlestir = IIf(Birlestir = "", c.Value & " " & c.Offset(0, 1).Value & "(T.C " & c.Offset(0, -1).Value & ")", _
                 Birlestir & Sembol & c.Value & " " & c.Offset(0, 1).Value & "(T.C " & c.Offset(0, -1).Value & ")")
             End If
         Next
End Function

KTF kullanımı ise, isimlerin olduğu kolon ve sembol (isteğinize göre virgül ve boşluk idi) kullanımı ile

Kod:
=Birlestir(kisiler!P7:P10;", ")

şeklindedir.
Dosya ektedir.... İncelersiniz....

Mesajınızda belirttiğiniz kodlar ise benim makro bilgimi aşmakta. Umuyorum ki, bu konuda "Üstat" lar destek verecektir.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ekli dosyalar

  • isimler.xlsm
    131.1 KB · Görüntüleme: 1

Feyzullah

Feyzullah KILINÇ - XD Yönetim
Yönetici
Site Yöneticisi

Reputation:

Merhaba,
Sn. @52779 hocam çözüm vermiş. Alternatif olarak yazdığının kodların devamı olacak nitelikte olacak şekilde kodlarınız aşağıdadır.

CSS:
Sub birlestirme()

Set s1 = Sheets("kisiler") 'AKTARILACAK SAYFAYA İSİM  VERDİK
Set s10 = Sheets("kisiler2")
Rem Sheets("kisiler ").Select ' makrolarda select kullanmamaya dikkat edin.


s1son = s1.Cells(Rows.Count, "O").End(3).Row   'S1 DEKİ O SUTUNUNDAKİ EN SON DOLU HÜCRENİN SATIR NUMARASINI BUL

If s1son < 7 Then: MsgBox "Aktarılacak veri yok!", vbCritical: Exit Sub

For s1sat = 7 To s1son                           '7.satırdan başlayarak son dolu satıra kadar işlem yap
birles = s1.Cells(s1sat, "P") & " " & s1.Cells(s1sat, "Q") & "(T.C " & s1.Cells(s1sat, "O") & ")"
birlestir = IIf(birlestir = "", birles, birlestir & ", " & birles)
Next

s10.Range("F9").WrapText = True
s10.Range("F9") = birlestir
End Sub
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

muyat

VIP
VIP
Kullanıcı
Versiyon
  1. Excel 2016
Sürüm
  1. 64 bit
Dil
  1. Türkçe

Reputation:

Feyzullah Hocam çok teşekkür ederim.
Yalnız şunu sormak istiyorum
birlestir = IIf(birlestir = "", birles, birlestir & ", " & birles)

Burda IIf anlamı nedir.?
If ,else then karar yapılarını inceledigimde böyle bir kod göremedim...Bu kod aynı işi yapacak başka bir kodun kısa yazılmışı ise uzun halini de yazar mısınız
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Feyzullah

Feyzullah KILINÇ - XD Yönetim
Yönetici
Site Yöneticisi

Reputation:

birlestir = IIf(birlestir = "", birles, birlestir & ", " & birles)
Formüllerde bildiğiniz EĞER fonksiyonun aynısı diye bilirim.

Bu kodun uzun hali

CSS:
If birlestir = "" Then
birlestir = birles
Else
birlestir = birlestir & ", " & birles
End If
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Üst