Satır ve Sütundaki değerlere göre veri bulma

Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
İyi çalışmalar. Yapmak istediğim çalışma biraz karışık. Bu sebeple tablo örneği paylaşıyorum. Böyle bir çalışma yapılabilir mi?
Teşekkür ediyorum.

 

Ekli dosyalar

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba deneyiniz..


Sayfanın kod bölümüne , ay değişikliğinde çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("AJ5")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Dim Syf As Worksheet, i As Integer, x As Integer, bulTarih, bulAd
    Range("F10:AJ110").ClearContents
    On Error Resume Next
    Set Syf = Sheets(Range("AJ5").Value)
    For i = 6 To 36
        If Cells(9, i) <> "" Then
            Set bulTarih = Syf.Range("A7:A100").Find(Cells(9, i), , xlValues, xlWhole)
            If Not bulTarih Is Nothing Then
                For x = 3 To 4
                    If Syf.Cells(bulTarih.Row, x) <> "" Then
                        Set bulAd = Range("C10:C110").Find(Syf.Cells(bulTarih.Row, x), , xlValues, xlWhole)
                        If Not bulTarih Is Nothing Then
                            Cells(bulAd.Row, i) = "+"
                        End If
                    End If
                Next
            End If
        End If
    Next
    MsgBox "islem tamam"
End Sub
 

Ekli dosyalar

Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Merhaba deneyiniz..


Sayfanın kod bölümüne , ay değişikliğinde çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("AJ5")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Dim Syf As Worksheet, i As Integer, x As Integer, bulTarih, bulAd
    Range("F10:AJ110").ClearContents
    On Error Resume Next
    Set Syf = Sheets(Range("AJ5").Value)
    For i = 6 To 36
        If Cells(9, i) <> "" Then
            Set bulTarih = Syf.Range("A7:A100").Find(Cells(9, i), , xlValues, xlWhole)
            If Not bulTarih Is Nothing Then
                For x = 3 To 4
                    If Syf.Cells(bulTarih.Row, x) <> "" Then
                        Set bulAd = Range("C10:C110").Find(Syf.Cells(bulTarih.Row, x), , xlValues, xlWhole)
                        If Not bulTarih Is Nothing Then
                            Cells(bulAd.Row, i) = "+"
                        End If
                    End If
                Next
            End If
        End If
    Next
    MsgBox "islem tamam"
End Sub
Çok teşekkür ederim. Bazı aylarda kod çalışıyor. Bazı aylarda çalışmıyor.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Sadece "Mart" ve "Nisan" da mı çalışıyor ?
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Diğer aylardaki tarihlerler yanlış , mesela "OCAK" sayfasındaki tarihleri kontrol ettiğinizde mart ayının günlerini göreceksiniz , diğer sayfalarda aynı şekilde , sadece "Mart" ve "Nisan" sayfalarının tarihleri doğru , bu şekilde tekrar kontrol etmenizi rica ederim.
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Diğer aylardaki tarihlerler yanlış , mesela "OCAK" sayfasındaki tarihleri kontrol ettiğinizde mart ayının günlerini göreceksiniz , diğer sayfalarda aynı şekilde , sadece "Mart" ve "Nisan" sayfalarının tarihleri doğru , bu şekilde tekrar kontrol etmenizi rica ederim.
Çalıştı. Çok çok teşekkür ederim.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Rica ederim , iyi çalışmalar..
 
Üst