Kapalı dosyadan istenilen ilin ücretini çekme

Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Merhaba arkadaşlar; elimde Bir kapalı olan SÜREKLİ GÖREV YOLLUĞU 2020 (kapalı dosya) adlı bir dosyam var. Bu dosyamın yolu aşağıda;
yol = "D:\Belgelerim\Personel\İlişik Kesen Personel\"
dosya = "SÜREKLİ GÖREV YOLLUĞU 2020.xls"
Sayfaadı = "MESAFE"


Kapalı olan bu dosyadan B4 Sütununda bulunan ve bunun karşılığı olan CF4 sütununda bulunan Taşıt Ücretlerinin GEÇİCİ GÖREV YOLLUĞU 2020 (açık dosya) dosyasının D8 Hücresine yazmış olduğum ile göre taşıt ücretini bularak K8 hücresine yazmasını için bir kod yazmanızı saygıyla arz ediyorum. İyi akşamlar.
 

Ekli dosyalar

Korhan Ayhan

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

"d8:d17" hücre aralığında il adı yazdığınızda sonucu getirecektir.

C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim File_Path As String, My_File As String, My_Cell As Range
   
    File_Path = "D:\Belgelerim\Personel\İlişik Kesen Personel\"
    My_File = "[SÜREKLİ GÖREV YOLLUĞU 2020.xls]MESAFE'!"
           
    For Each My_Cell In Intersect(Target, Range("D8:D17")).Cells
        If My_Cell.Value <> "" Then
            With Cells(My_Cell.Row, "K")
                .Formula = "=INDEX('" & File_Path & My_File & "A:CF,MATCH(""" & My_Cell.Value & """,'" & File_Path & My_File & "B:B,0),84)"
                .Value = .Value
            End With
        Else
            Cells(My_Cell.Row, "K").ClearContents
        End If
    Next
End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Merhabalar; Sayın abim bu kodu dosyama uyguladığımda;
"Object variable or with block vaiable not set" diye bir uyarı veriyor. ve
For Each My_Cell In Intersect(Target, Range("D8:D17")).Cells bu satır sarı yandı, buna bakar bilir misin?
Abim sana zahmet bunu Sayfanın koduna değilde, modülde çalışacak şekilde yazar mısın? Çünkü sayfanın kodunda sicille birlikte bilgileri getiren başka kod var. O yüzden istiyorum.
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Import_Data()
    Dim File_Path As String, My_File As String, My_Cell As Range
    
    File_Path = "D:\Belgelerim\Personel\İlişik Kesen Personel\"
    My_File = "[SÜREKLİ GÖREV YOLLUĞU 2020.xls]MESAFE'!"
            
    For Each My_Cell In Range("D8:D17").Cells
        If My_Cell.Value <> "" Then
            With Cells(My_Cell.Row, "K")
                .Formula = "=INDEX('" & File_Path & My_File & "A:CF,MATCH(""" & _
                           My_Cell.Value & """,'" & File_Path & My_File & "B:B,0),84)"
                .Value = .Value
            End With
        Else
            Cells(My_Cell.Row, "K").ClearContents
        End If
    Next
    
    MsgBox "Your transaction is complete."
End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Elinize sağlık Korhan bey çok güzel oldu ve çalıştı. Teşekkür ediyorum Sağlıcakla kalın.
Bilgi amaçlı soruyorum, 2 nolu mesajınızdaki kodda neden çalışmıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodu deneyerek paylaşmıştım. Siz asıl dosyanızda başka kod olduğunu ifade etmiştiniz. Belki çakışma oluşmuştur.
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Sayın Hocalarım; şu kod işime yaradı. Bunun sayın Korhan Ayhan hocam yazmıştı. Buna ek olarak şunu istiyorum.
Sub Import_Data()
Dim File_Path As String, My_File As String, My_Cell As Range

File_Path = "D:\Belgelerim\Personel\İlişik Kesen Personel\"
My_File = "[SÜREKLİ GÖREV YOLLUĞU 2022.xls]MESAFE'!"

For Each My_Cell In Range("P6:p20").Cells
If My_Cell.Value <> "" Then
With Cells(My_Cell.Row, "R") ' R Kolonuna taşıt ücretini yazıyor.
.Formula = "=INDEX('" & File_Path & My_File & "A:CF,MATCH(""" & _
My_Cell.Value & """,'" & File_Path & My_File & "B:B,0),84)"
.Value = .Value
End With
Else
'Cells(My_Cell.Row, "R").ClearContents
End If
Next

MsgBox "Taşıt Ücreti Getirildi."
End Sub
Q Kolonunda Özel Oto yazıyorsa sadece bu satırdaki ilin ücretini getirsin. Resmi oto yazıyorsa getirmesin
Herkese teşekkür ederim.
 
Son düzenleme:
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Merhaba arkadaşlar; Korhan Ayhan hocamın yazmış olduğu koda ek yapmak istiyorum, isteğimi 8 nolu mesajda anlattım. Bakarsanız sevinirim. Teşekürler.
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Import_Data()
    Dim File_Path As String, My_File As String, My_Cell As Range
    
    File_Path = "D:\Belgelerim\Personel\İlişik Kesen Personel\"
    My_File = "[SÜREKLİ GÖREV YOLLUĞU 2022.xls]MESAFE'!"
    
    For Each My_Cell In Range("P6:P20").Cells
        If My_Cell.Value <> "" Then
            If Cells(My_Cell.Row, "Q") = "Özel Oto" Then
                With Cells(My_Cell.Row, "R") ' R Kolonuna taşıt ücretini yazıyor.
                    .Formula = "=INDEX('" & File_Path & My_File & "A:CF,MATCH(""" & _
                    My_Cell.Value & """,'" & File_Path & My_File & "B:B,0),84)"
                    .Value = .Value
                End With
            Else
                Cells(My_Cell.Row, "R").ClearContents
            End If
        Else
            Cells(My_Cell.Row, "R").ClearContents
        End If
    Next
    
    MsgBox "Taşıt Ücreti Getirildi."
End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Sayın abim, eline sağlık çalıştı çok teşekkür ederim. Allaha emanet ol.
 
Üst