Soru Ara Makrosu

TUNCA ERSİN

Altın Üye
Katılım
18 Ağustos 2021
Mesajlar
131
Excel Vers. ve Dili
Office Professional plus 2016 Tr
Altın Üyelik Bitiş Tarihi
18-08-2026
Sy. Hocalarım ;

Düşeyara ve ara formüllerinin makro ile yapılması ile ilgili bir talebim olacaktı. Ekli dosyada açıklamaları yaptım.

Elinize ve Emeğinize sağlık Teşekkür ederim.
 

Ekli dosyalar

Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
merhaba. istediğiniz gibi olacak şekilde aşağıdaki 2 makroyu gpt yazdı. size kullanın.

JSON:
Sub MakroDuseyara()
    Dim i As Long 'Döngü değişkeni
    Dim kaynak As Range 'Kaynak veri aralığı
    Dim hedef As Range 'Hedef veri aralığı
    Dim sonuc As Variant 'Düşeyara sonucu
    
    Set kaynak = Sheets("Kod").Range("A2:B26") 'Kaynak veri aralığını belirle
    Set hedef = Sheets("Veri").Range("C2:C26") 'Hedef veri aralığını belirle
    
    For i = 1 To hedef.Rows.Count 'Hedef veri aralığındaki her satır için döngü başlat
        sonuc = Application.VLookup(hedef.Cells(i, 1), kaynak, 2, 0) 'Düşeyara işlevini uygula
        If IsError(sonuc) Then 'Eğer sonuç hata ise
            Sheets("Veri").Cells(i + 1, 15) = "Bulunamadı" 'Veri sayfasındaki O sütununa "Bulunamadı" yaz
        Else 'Eğer sonuç hata değilse
            Sheets("Veri").Cells(i + 1, 15) = sonuc 'Veri sayfasındaki O sütununa sonucu yaz
        End If
    Next i 'Döngüyü bir sonraki satıra geçir
    
End Sub



Sub MakroYakit()
    Dim i As Long 'Döngü değişkeni
    Dim arac As Range 'Araç isimleri aralığı
    Dim yakit As Range 'Yakıt türleri aralığı
    Dim km As Range 'Kilometre aralığı
    Dim sonuc As Range 'Sonuç aralığı
    
    Set arac = Sheets("Veri").Range("B2:B26") 'Araç isimleri aralığını belirle
    Set yakit = Sheets("Veri").Range("O2:O26") 'Yakıt türleri aralığını belirle
    Set km = Sheets("Veri").Range("I2:I26") 'Kilometre aralığını belirle
    Set sonuc = Sheets("Veri").Range("P2:P26") 'Sonuç aralığını belirle
    
    For i = 1 To arac.Rows.Count 'Araç isimleri aralığındaki her satır için döngü başlat
        If yakit.Cells(i, 1) = "Mazot" Then 'Eğer yakıt türü Mazot ise
            sonuc.Cells(i, 1) = km.Cells(i, 1) 'Sonuç hücresine kilometreyi yaz
        Else 'Eğer yakıt türü Mazot değilse
            sonuc.Cells(i, 1) = "" 'Sonuç hücresini boş bırak
        End If
    Next i 'Döngüyü bir sonraki satıra geçir
    
End Sub
 

TUNCA ERSİN

Altın Üye
Katılım
18 Ağustos 2021
Mesajlar
131
Excel Vers. ve Dili
Office Professional plus 2016 Tr
Altın Üyelik Bitiş Tarihi
18-08-2026
Sy. @Kumpasta ;
Hocam MakroYakıt Kodu sondan bir önceki veriyi getirmesi gerekiyor.
 
Üst