• DİKKAT

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

Mizan Analizi için mizandan istenilen hücredeki bilgiyi yeni bir dosyaya almak

Katılım
22 Ekim 2012
Mesajlar
311
Excel Vers. ve Dili
Office 2016 Türkçe
Herkese merhaba

Sorunumu bir türlü çözemedim.
Mizandan; istediğim hücrelerdeki veriyi yeni bir dosyaya almak istiyorum.

Örnek olarak 2 adet küçük dosya ektedir.

Herkese teşekkür ederim.

Ahmet
 

Ekli dosyalar

Merhaba,

Aşağıdaki kodu deneyiniz.

Kod:
Sub AKTAR()
    Dim K1 As Workbook, K2 As Workbook
    
    On Error Resume Next
    
    Set K1 = ThisWorkbook
    Set K2 = Workbooks("Mizan (1).xls")
    
    K1.Sheets("Sayfa1").Range("G11:I12").ClearContents
    
    With K1.Sheets("Sayfa1")
        .Range("G11") = WorksheetFunction.VLookup("100.01", K2.Sheets(1).Range("A:H"), 6, 0)
        .Range("G12") = WorksheetFunction.VLookup("102", K2.Sheets(1).Range("A:H"), 6, 0)
        .Range("H11") = WorksheetFunction.VLookup("102.02", K2.Sheets(1).Range("A:H"), 5, 0)
        .Range("H12") = WorksheetFunction.VLookup("120", K2.Sheets(1).Range("A:H"), 8, 0)
        .Range("I11") = WorksheetFunction.VLookup("121.01", K2.Sheets(1).Range("A:H"), 7, 0)
        .Range("I12") = WorksheetFunction.VLookup("153", K2.Sheets(1).Range("A:H"), 6, 0)
    End With
    
    Set K1 = Nothing
    Set K2 = Nothing
 
    MsgBox "Veriler aktarılmıştır.", vbInformation
End Sub
 
Veri aktarma ile ilgili

Korhan Bey,

Önce teşekkür ederim. Kodlarınızı uyguladım. Ancak verileri aktarılacak sayfaya aktarmadı. Hata da vermedi. Sanırım aktarılacak dosya adını bulamadı Örn: aktarılacak dosya adı Mizan.xlsx olacak diye kontrol ederseniz sevinirim.

Yardımlarınız için teşekkür ederim.

Ahmet
 
Merhaba,

Kod içindeki aşağıdaki satırı sizdeki dosya adına göre değiştiriniz.

Kod:
Set K2 = Workbooks("[COLOR=red]Mizan (1).xls[/COLOR]")
 
Korhan Bey rahatsız ediyorum ama kusuruma bakmayın. Dediğiniz satırda kendimin dosya adını
Set K2 = Workbooks("Kitap.xlsm")
olarak yaptım. Yine olmadı bilgiler aktarıldı diyor ve hata vermiyor.

Bu durumda birinci dosya olan Mizan (1) . xml Kodların arasında yok. Olması gerekmiyor mu?

Ama; şu satır görev yapıyor.
K1.Sheets("Sayfa1").Range("G11:I12").ClearContents
verilerin yazılacağı alanı temizliyor ama verileri yerine koymuyor.

Teşekkür ederim.
 
Merhaba,

Ben eklediğiniz örnek dosyalarda denedim ve olumlu sonuç aldım. Sizin orjinal dosyalarınızın içeriğini bilmem mümkün değil. Siz sonuç alamıyorsanız dosyalarınızı ekleyin. Dosyalarınız üzerinden sonuca gidelim.
 
Veri kodları

Merhaba,

Dosya ektedir.
Mizan adlı dosyadan alınan bilgiler Kitap1 dosyasındaki küçük tablonun içine yazılacak.
Ben daha sonra gerekli olan diğer hesap kodlarını sizin kodlara ilave edeceğim.

Bu kadar.

Saygılar sunar ve çok teşekkür ederim.
 

Ekli dosyalar

Veri aktarma ile ilgili

Korhan Bey, Merhaba

Eksikliğimi buldum. Kodlarda Dosya adı ve uzantısı arasında fazla boşluk olduğundan veri aktarım olmadı. Şimdi sorun kalmadı.
Sizden ricam veri dosyası olan mizan kapalı ise kodlara ne ilave etmem gerekir.

Tüm uğraşmalarınız için teşekkür eder saygılar sunarım.

Hoşçakalın..
Ahmet
 
Merhaba,

İki dosyayı da aynı klasöre yerleştirdikten sonra aşağıdaki kodu deneyin.

Kod:
Sub AKTAR()
    Dim K1 As Workbook, K2 As Workbook
    
    On Error Resume Next
    
    Application.ScreenUpdating = False
    
    Set K1 = ThisWorkbook
    Set K2 = Workbooks.Open(K1.Path & "\Mizan(1).xls")
    
    K1.Sheets("Sayfa1").Range("G11:I12").ClearContents
    
    With K1.Sheets("Sayfa1")
        .Range("G11") = WorksheetFunction.VLookup("100.01", K2.Sheets(1).Range("A:H"), 6, 0)
        .Range("G12") = WorksheetFunction.VLookup("102", K2.Sheets(1).Range("A:H"), 6, 0)
        .Range("H11") = WorksheetFunction.VLookup("102.02", K2.Sheets(1).Range("A:H"), 5, 0)
        .Range("H12") = WorksheetFunction.VLookup("120", K2.Sheets(1).Range("A:H"), 8, 0)
        .Range("I11") = WorksheetFunction.VLookup("121.01", K2.Sheets(1).Range("A:H"), 7, 0)
        .Range("I12") = WorksheetFunction.VLookup("153", K2.Sheets(1).Range("A:H"), 6, 0)
    End With
    
    K2.Close False
    
    Set K1 = Nothing
    Set K2 = Nothing
 
    Application.ScreenUpdating = True
    
    MsgBox "Veriler aktarılmıştır.", vbInformation
End Sub
 
Makro çalışıyor

Korhan Bey,

İyi akşamlar. Kodlar eksiksiz çalışıyor. Mizandan farklı hücre bilgilerini almak için ben çoğaltırım.

Herşey için teşekkür ederim.

Esen kalın...
 
Veri aktarma küçük bir sorun

Korhan Bey merhaba,

Veri arama ile ilgili en son verdiğiniz kodlarda bir sorun yok. Tekrar çok teşekkür ederim. Yanlız şöyle bir sorunum var.
Ben, .
Range("CC26") = WorksheetFunction.VLookup("780", K2.Sheets(1).Range("A:H"), 5, 0) satırındaki
Bu kodları mizandan veri almak için çoğaltıyorum. Yukarıdaki kodları aynen yazıyorum ("A:H") görüldüğü gibi sütünlar arasında 7 adet sütün var. Ben son sütundan veri almak istersem 7, 0 demem gerekir. Bu şekilde yazdığımda o hücrenin bilgisi gelmiyor 6, 0 yazdığımda istediğim oluyor. Buradaki mantığı çözemedim.
Not: veriyi yazacağım hücre birçok birleştirilmiş hücreden meydana geliyor. Bu sorun olabilirmi yada ne yapmam gerekir.

Şimdiden çok teşekkür ederim.
 
Merhaba,

Birleştirilmiş hücrelerde en soldaki hücre işleme alınır. Buna dikkat edin.
 
Korhan Bey

Zaten birleştirilmiş hücrenin üzerinde iken Görünen hücre adını kullanıyorum.
Yoksa ilk sütün 2'den mi başlıyor. Anlıyamadım.
Teşekkür ederim.
 
"A:H" sütunları arasında 8 sütun var. Başlangıç sütunuda sayılmaktadır.
 
Merhaba Korhan Bey,
Bana yazdığınız kodlarda bir sorun yok. Ancak sizden ricam,
Sanırım, K1.Sheets("Sayfa1").Range("BQ10").ClearContents
kodu ile Sayfa1'in BQ10 hücresine veri yazıyor.
Ben bunun yerine yani Sayfa1'in yerine aktif olan sayfa olmasını istiyorum.
Çünkü her sayfa için sayfa adını yazmak istemiyorum. O an açık olan sayfa hangisi ise
veriler ona yazılsın.
Yardımlarınız için şimdiden çok teşekkür ederim.

Saygılar,
 
Son düzenleme:
Merhaba Korhan Bey,
Bana yazdığınız kodlarda bir sorun yok. Ancak sizden ricam,
Sanırım, K1.Sheets("Sayfa1").Range("BQ10").ClearContents
kodu ile Sayfa1'in BQ10 hücresine veri yazıyor.
Ben bunun yerine yani Sayfa1'in yerine aktif olan sayfa olmasını istiyorum.
Çünkü her sayfa için sayfa adını yazmak istemiyorum. O an açık olan sayfa hangisi ise veriler ona yazılsın.
Yardımlarınız için şimdiden çok teşekkür ederim.

Saygılar,
 
Geri
Üst