• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makro ile başka kitaptan veri almak

Katılım
5 Kasım 2007
Mesajlar
10
Excel Vers. ve Dili
Ofis Wista
Merhabalar,

aşağıdaki gibi bir makro var.
makrolu.xlsm kitabındaki a sütununda olan değerlere göre başka konumdan kitap açıyor.
Bundan sonrasında yapmak istediğim makronun açtığı kitaptaki d sütunundaki değerlerin ortalamasını bulup "makrolu.xlsm" kitabındaki d2 hücresine yazdırmak. Ancak açılacak dosya adı değişken olduğu için bu işlemi bir türlü sağlayamadım. yardımlarınızı rica ederim.

iyi çalışmalar.

Dim m As Integer
Dim yol As String

For m = 2 To 1000

i = Cells(m, 1)

yol = "D:\DATALAR\ARAÇ_RAPORLARI\ekim_2013\ftl\" & i

Workbooks.Open Filename:=yol

Windows("makrolu.xlsm").Activate

Cells(2, 2).Select

Next m
End Sub
 
Cüneyt Bey, örnek dosyalarınızı yollayabilirseniz, yardımcı olmaya çalışırım.
 
Tüm dosyalar aynı klasörde olsun.

Şu kodları kullanabilirsiniz;
Kod:
Sub Dosyalardan_Ortalama_Al()
    Dim i As Integer, yol As String, ac As Workbook
    yol = ThisWorkbook.Path & "\"
    With ThisWorkbook.Sheets(1)
        For i = 2 To Range("A65536").End(3).Row
            If Cells(i, 1) <> "" Then
                Set ac = Workbooks.Open(yol & .Cells(i, 1))
                .Cells(i, "D") = FormatNumber(WorksheetFunction.Average(Columns(5)), 2)
                ac.Close False
            End If
        Next i
    End With
    Set ac = Nothing: yol = "": i = Empty
End Sub
 
Merhabalar,

makro dosya açma konumundan sonra

.Cells(i, "D") = FormatNumber(WorksheetFunction.Average(Columns(5)), 2) ifadesinde
application defined or object-defined error

hatasını veriyor.

birde .cells(i,"d") ifadesindeki d nin neyi ifade ettiğini anlayamadım.

kolay gelsin.
 
Dosyalarınızı ekliyorum. Makrolu dosyasındaki, üzerinde TIKLA yazan kırmızı butona basıp deneyebilirsiniz...



.Cells(i, "D")

Buradaki D harfi, D sütununu ifade ediyor.
 

Ekli dosyalar

Murat Bey merhaba,yardım için teşekkürler. çok işime yaradı.

bir sorum daha olacak. aradığı kaydı belirtilen klasörde bulamaz ise bir alt satıra geçmesini nasıl sağlayabiliriz.

kolay gelsin.
 
makrolu dosyasındaki 21251-a nolu kayıdı klasörün içerisinde olmadığını düşünelim.
böyle olunca makro dosya yolu bulunamadı diye hata veriyor.
istediğim bu hatayı vermesin, dosyayı bulamaz ise 21267-b kaydını bulup açsın.
 
Anladim.

Bunun için kodlarin üst satırlarda bir yere on error resume next yazmanız yeterli olacaktır.
 
Geri
Üst