Soru Makro İle Veri Doğrulama

Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
İyi günler;
Ekli dosyada veri girişi sayfasından D9 hücresinden Girişler sayfasındaki C4:C100 hücre aralığından köyünü seçtiğim zaman D16 hücresine Girişler sayfasındaki E4:E100 hücresindeki veriler gelecek. Yine veri girişi sayfasından D19 hücresinden C4:C100 hücre aralığından köyünü seçtiğim zaman D27 hücresine girişler sayfasından E4:E100 hücresindeki veriler D31 hücresine ise girişler sayfasından D4:D100 hücre aralığındaki karşılığına gelen veriyi makro ile aldırabilir miyiz.?
https://dosyam.org/V7r/ÖRNEK.xlsm
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
VERİ GİRİŞİ isimli sayfanızın kod bölümüne uygulayıp deneyiniz.

Sarı renkli hücrelere köy isimlerini yazıp deneyiniz.

C++:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Veri As Range, Bul As Range
    
    If Not Intersect(Target, Range("D9")) Is Nothing Then
        For Each Veri In Intersect(Target, Range("D9"))
            If Veri.Value <> "" Then
                Set Bul = Sheets("GİRİŞLER").Range("C:C").Find(Veri.Value, , , xlWhole)
                If Not Bul Is Nothing Then
                    Range("D16").Value = Bul.Offset(, 2).Value
                Else
                    MsgBox "Köy bulunamadı!", vbCritical
                End If
            Else
                Range("D16").Value = ""
            End If
        Next
    ElseIf Not Intersect(Target, Range("D19")) Is Nothing Then
        For Each Veri In Intersect(Target, Range("D19"))
            If Veri.Value <> "" Then
                Set Bul = Sheets("GİRİŞLER").Range("C:C").Find(Veri.Value, , , xlWhole)
                If Not Bul Is Nothing Then
                    Range("D27").Value = Bul.Offset(, 2).Value
                    Range("D31").Value = Bul.Offset(, 1).Value
                Else
                    MsgBox "Köy bulunamadı!", vbCritical
                End If
            Else
                Range("D27").Value = ""
                Range("D31").Value = ""
            End If
        Next
    End If
End Sub
 
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Korhan bey teşekkür ederim
 
Üst