Sayfada birden fazla makro ile düşeyara

Katılım
13 Kasım 2007
Mesajlar
309
Excel Vers. ve Dili
2007
Formlar sekmesindeki adı soyadı alanlarından seçtiğim isimlerin gerekli bilgilerini makro aracılığı ile düşeyarayı kullanarak "data" sekmesinden verilerini çekmek istiyorum. Formlar sekmesinde birden çok isim seçileceğinden düşeyara makrosunun mantığını kuramadım.

İlgilenirseniz sevinirim. Teşekkürler
 

Ekli dosyalar

İ

İhsan Tank

Misafir
Formlar sekmesindeki adı soyadı alanlarından seçtiğim isimlerin gerekli bilgilerini makro aracılığı ile düşeyarayı kullanarak "data" sekmesinden verilerini çekmek istiyorum. Formlar sekmesinde birden çok isim seçileceğinden düşeyara makrosunun mantığını kuramadım.

İlgilenirseniz sevinirim. Teşekkürler
merhaba
illa makro ile istemezseniz lütfen eki inceleyiniz
 

Ekli dosyalar

Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Selamlar,

Belki işini görür zamanında yurttaş hocamız bir çalışma hazırlamıştı

Ekli dosyayı inceleyin.

'kodları yazan: Yurttaş
Kod:
Function DUSEYARASAYFALAR(Look_Value As Variant, Tble_Array As Range, _
                          Col_num As Integer, Optional Range_look As Boolean)
Dim wSheet As Worksheet
Dim vFound
On Error Resume Next
    For Each wSheet In ActiveWorkbook.Worksheets
    With wSheet
    Set Tble_Array = .Range(Tble_Array.Address)
            vFound = WorksheetFunction.VLookup _
            (Look_Value, Tble_Array, _
            Col_num, Range_look)
    End With
    If Not IsEmpty(vFound) Then Exit For
    Next wSheet
    Set Tble_Array = Nothing
    DUSEYARASAYFALAR = vFound
End Function
 

Ekli dosyalar

Korhan Ayhan

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

Alternatif olarak "formlar" isimli sayfanızın kod bölümüne aşağıdaki kodu uygulayıp denermisiniz. İsim seçtikçe veriler aktarılır.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bul As Range
    
    On Error GoTo Son
    If Intersect(Target, Range("C5:C65536")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Target.Offset(0, -1) = "adı soyadı" And Target <> "" Then
        Set Bul = Sheets("data").Range("B:B").Find(Target, LookAt:=xlWhole)
        If Not Bul Is Nothing Then
            Target.Offset(1, 0) = Bul.Offset(0, 1)
            Target.Offset(2, 0) = Bul.Offset(0, 2)
            GoTo Son
        Else
            MsgBox Target & " isimli kayıt bulunamamıştır !", vbCritical
            GoTo Son
        End If
    Else
        Target.Offset(1, 0).ClearContents
        Target.Offset(2, 0).ClearContents
    End If
Son:
    Set Bul = Nothing
    Application.EnableEvents = True
End Sub
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,554
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın drumers ve sayın Korhan Ayhan;

Merhaba..

Sizin örneğinizde "data" sayfasına bir isim, sokak ve vergi no satırı ekledim, "formlar" sayfasında herhangi bir ekleme olmadı..

İsim seçmekten neyi almalıyım? Acaba nerede yanlış ya da eksik bir şey yapıyorum?

Bilgilerinize... Teşekkürler..
 

Korhan Ayhan

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

Benim önerdiğim kodu "FORMLAR" sayfasına uygulayacaksınız. Zaten bunuda mesajımda belirtmiştim. Aynı sayfadaki C5 hücresinden isim seçip sonucu gözlemleyin. Aynı şekilde alt hücrelerdeki "ADI SOYADI" hücrelerinin yanıdaki açılır listelerden isim seçip deneyin.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,554
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın Korhan Ayhan;

Kısa süredeki yanıtınız ve inceliğiniz için teşekkürler.

Sevgi ve saygılar..
 
Üst