Soru Doğum günü makrosunu geliştirme..

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Merhaba..
Daha önce excel.web.tr sayfalarından bulduğum "bugün doğum günleri olanlar" makrosunu kendi örneğime zorda olsa uyarlıyabildim..
Yardımcı olursanız üç değişiklik daha yapmak istiyorum;
1."Data" sayfası S sütununda bulunan "YAŞAM" başlığındaki şartlardan sonuç "SAĞ" ise makro çalıştığında istenen sonucu getirsin, "VEFAT" ise sonuç getirmesin. Yani "SAĞ" olanların doğum günlerini getirmek istiyorum.
2."Data" sayfası N sütununda bulunan "DOĞUM GÜNÜ" başlığı makro çalıştığı zaman "Günler" sayfasında C2 hücresine gelsin.
3.Düğmeye bastığımızda sonuçlar gelince; "İŞLEM TAMAMLANMIŞTIR" ama gelecek sonuç yok ise "BUGÜN DOĞUM GÜNÜ OLAN YOKTUR" mesajı çıksın...
Saygılarımla...
 

Ekli dosyalar

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Merhaba
For i = 3 To sp.Cells(Rows.Count, "F").End(3).Row satırı ile başlayan bölümü şu şekilde değiştiriniz.
Kod:
For i = 3 To sp.Cells(Rows.Count, "F").End(3).Row
        If sp.Cells(i, "S").Value = "SAĞ" Then
            If Format(sp.Cells(i, "N"), "mmdd") = Tar Then
                j = j + 1
                Cells(j, "A") = j - 4
                Cells(j, "B") = sp.Cells(i, "A")
                Cells(j, "C") = sp.Cells(i, "F")
                Cells(j, "D") = sp.Cells(i, "G")
                Cells(j, "E") = sp.Cells(i, "H")
                Cells(j, "F") = sp.Cells(i, "N")
            End If
        End If
    Next i
    
sbs = sb.Cells(Rows.Count, "A").End(3).Row
If sbs < 5 Then
sb.Range("C2").Value = ""
    MsgBox "Bugün Doğum Günü Olan Yok.", vbInformation, "Bilgi"
Else
sb.Range("C2").Value = sp.Range("N1").Value
    MsgBox "İşlem tamamlandı.", vbInformation, "Bilgi"
End If
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Sayın faye_efsane; bilginize emeğinize sağlık, çok teşekkür ederim..
Konu çözülmüştür..
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Rica ederim, iyi çalışmalar.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Alternatif olsun:

PHP:
Sub OnemliGunler()
    Dim i, eski, yeni, son As Integer
    Dim s1, s2  As Worksheet
    Dim Tar As String
    Set s1 = Sheets("Data")
    Set s2 = Sheets("Günler")
    s2.Activate
    son = s1.Cells(Rows.Count, "A").End(3).Row
    eski = s2.Cells(Rows.Count, "A").End(3).Row
    If eski > 4 Then
        s2.Range("A5:F" & eski).ClearContents
    End If
    If IsDate(s2.[F1]) Then
        Tar = Format(s2.[F1], "mmdd")
    Else
        MsgBox "Lütfen F1 hücresine tarih giriniz!", vbExclamation
        [F1].Select
        Exit Sub
    End If
    Application.ScreenUpdating = False
        For i = 3 To son
            If Format(s1.Cells(i, "N"), "mmdd") = Tar And s1.Cells(i, "S") = "SAĞ" Then
                yeni = WorksheetFunction.Max(5, s2.Cells(Rows.Count, "A").End(3).Row + 1)
                s2.Cells(yeni, "A") = yeni - 4
                s2.Cells(yeni, "B") = s1.Cells(i, "A")
                s2.Cells(yeni, "C") = s1.Cells(i, "F")
                s2.Cells(yeni, "D") = s1.Cells(i, "G")
                s2.Cells(yeni, "E") = s1.Cells(i, "H")
                s2.Cells(yeni, "F") = s1.Cells(i, "N")
            End If
        Next
        s2.[C2] = [N1]
    Application.ScreenUpdating = True
    If s2.[A5] <> "" Then
        MsgBox "İŞLEM TAMAMLANMIŞTIR", vbExclamation
    Else
        MsgBox "BUGÜN DOĞUM GÜNÜ OLAN YOKTUR", vbExclamation
    End If
End Sub
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Sayın YUSUF44; bilginize emeğinize sağlık, çok teşekkür ederim..
F1 hücresini unutmamak için denetlemek hoş olmuş ama 2 numaralı değişiklik çalışmadı; bilginiz olsun..
Saygılarımla..
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Küçük bir eksiklik var, ilgili kısmı aşağıdaki şekilde düzeltin lütfen:

s2.[C2] = s1.[N1]
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Sayın YUSUF44; bilginize emeğinize sağlık, bu sefer tamamdır.. Tekrar teşekkür ederim..
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
sbs = sb.Cells(Rows.Count, "A").End(3).Row
If sbs < 5 Then
sb.Range("C2").Value = ""

Makronun bu kısmındaki 5 rakamı neyi ifade ediyor?
 

relaxim

Altın Üye
Katılım
30 Ağustos 2009
Mesajlar
526
Excel Vers. ve Dili
Ofis 2016 Tr 64 bit
Altın Üyelik Bitiş Tarihi
15.06.2027
Merhaba,

Günler sayfasındaki 5. satırı yani ilk kaydı.
 

istanbulcahan

Altın Üye
Katılım
11 Ocak 2008
Mesajlar
1,386
Excel Vers. ve Dili
Office 365 (Türkçe)
Altın Üyelik Bitiş Tarihi
05-11-2024
Küçük bir eksiklik var, ilgili kısmı aşağıdaki şekilde düzeltin lütfen:

s2.[C2] = s1.[N1]
İyi geceler. Üstadım. sizin makroyu uyguladım. Ekleme olarak s2.[C2] = s1.[N1] yazmışsınız. Compile error Syntax error veriyor. Nasıl düzelebilir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
İyi geceler. Üstadım. sizin makroyu uyguladım. Ekleme olarak s2.[C2] = s1.[N1] yazmışsınız. Compile error Syntax error veriyor. Nasıl düzelebilir.
Merhaba.

Bu çözüm mevcut soru ve dosyada doğru sonuca ulaşmak için verdiğim ve sorunu çözen bir çözümdü. Sizde çözmüyorsa dosya yapısı farklı olabilir ya da bir şeyleri yanlış yapmışsınızdır.
 
Üst