Makro ile iki sheet arasındaki değerleri getirme

Katılım
7 Mayıs 2020
Mesajlar
17
Excel Vers. ve Dili
Ofis 2016 dili ingilizce
Merhaba Arkadaşlar ,

aynı excelde iki adet sheet bulunuyor.Bu sheet1 deki Bölge kolonunu sheet2 altında Bölge kolonu açıp yanına yazdırmak istiyorum.

Bunu nasıl makro ile yapabilirim.

sheet1 ve sheet2

sheet1 altında ;
BHM:aaa,bbb,ccc ve Bölge : İç Anadolu, İstanbul,Ankara

sheet2 altında;
BHM :aaa,bbb,ccc
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
DÜŞEYARA formülünü denediniz mi?

Makro istemenizin başka özel bir sebebi mi var?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Örnek bir dosya paylaşır mısınız?
 

Korhan Ayhan

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

SME Fiberli&RL Devam Eden sayfasında B2 hücresine uygulayıp alt hücrelere sürüleyiniz.

C++:
=VLOOKUP(A2;Sheet1!A:B;2;0)
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Bolge_Bul()
    Dim S1 As Worksheet, S2 As Worksheet, Dizi As Object, Say As Long
    Dim Veri As Variant, Son As Long, X As Long, Zaman As Double

    Application.ScreenUpdating = False

    Zaman = Timer

    Set S1 = Sheets("Sheet1")
    Set S2 = Sheets("SME Fiber&RL Devam Eden")
    Set Dizi = CreateObject("Scripting.Dictionary")

    S2.Range("B2:B" & S2.Rows.Count).Clear

    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    Veri = S1.Range("A2:B" & Son).Value

    For X = LBound(Veri) To UBound(Veri)
        Dizi.Item(Veri(X, 1)) = Veri(X, 2)
    Next

    Son = S2.Cells(S2.Rows.Count, 1).End(3).Row
    Veri = S2.Range("A2:A" & Son).Value

    ReDim Liste(1 To Son, 1 To 1)
    
    For X = LBound(Veri) To UBound(Veri)
        If Dizi.Exists(Veri(X, 1)) Then
            Liste(X, 1) = Dizi.Item(Veri(X, 1))
        Else
            Liste(X, 1) = "Bulunamadı!"
        End If
    Next

    S2.Range("B2").Resize(Son) = Liste
    S2.Columns.AutoFit

    Set S1 = Nothing
    Set S2 = Nothing
    Set Dizi = Nothing

    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Katılım
7 Mayıs 2020
Mesajlar
17
Excel Vers. ve Dili
Ofis 2016 dili ingilizce
Sub Bolge_Bul() Dim S1 As Worksheet, S2 As Worksheet, Dizi As Object, Say As Long Dim Veri As Variant, Son As Long, X As Long, Zaman As Double Application.ScreenUpdating = False Zaman = Timer Set S1 = Sheets("Sheet1") Set S2 = Sheets("SME Fiber&RL Devam Eden") Set Dizi = CreateObject("Scripting.Dictionary") S2.Range("B2:B" & S2.Rows.Count).Clear Son = S1.Cells(S1.Rows.Count, 1).End(3).Row Veri = S1.Range("A2:B" & Son).Value For X = LBound(Veri) To UBound(Veri) Dizi.Item(Veri(X, 1)) = Veri(X, 2) Next Son = S2.Cells(S2.Rows.Count, 1).End(3).Row Veri = S2.Range("A2:A" & Son).Value ReDim Liste(1 To Son, 1 To 1) For X = LBound(Veri) To UBound(Veri) If Dizi.Exists(Veri(X, 1)) Then Liste(X, 1) = Dizi.Item(Veri(X, 1)) Else Liste(X, 1) = "Bulunamadı!" End If Next S2.Range("B2").Resize(Son) = Liste S2.Columns.AutoFit Set S1 = Nothing Set S2 = Nothing Set Dizi = Nothing Application.ScreenUpdating = True MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _ "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation End Sub
tşk ederim.
 
Üst