Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 10-11-2017, 09:25   #1
ozuberk
 
ozuberk kullanıcısının avatarı
 
Giriş: 10/08/2004
Mesaj: 210
Excel Vers. ve Dili:
Excel 2010 - Türkçe ve İngilizce
Varsayılan Kapalı dosyadan veri alma

Merhaba,

Aynı klasör içinde birden fazla kapalı Excel kitabından Kasım adlı kitap sayfalarına veri almak istiyorum. Makroyu çalıştırdığımda Kasım adlı kitabın sayfalarında J1 de kapalı olan kitapların ismi yazılı olan sayfalardaki verileri alsın. Alınacak verideki kitabın adı ile sayfanın adı aynı. Veriler değişkenlik gösterebilir. Alınak verilerin başlangıç yeri A3:E aralığında Kasım adlı kitaba kopyalanacak alan A2:E aralığı.

Örneğin: Kasım adlı kitabın Sayfa1 adlı sayfasının J1 hücresinde 01112017, Sayfa2 adlı sayfasının J1 hücresinde 02112017 yazıyor.

Yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.
__________________
(Excel 2003 - Türkçe)
ozuberk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 10-11-2017, 13:07   #2
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 1,623
Excel Vers. ve Dili:
2010-2016
Varsayılan

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub askm_dosyalar()
Dim aktif As Workbook, sh As Worksheet, a As Long
Dim klasor As Object, evn As Object, xls As Object
    Set sh = ThisWorkbook.Worksheets("01.11.2017")
    Set evn = CreateObject("scripting.filesystemobject")
    Set klasor = evn.getfolder(ThisWorkbook.Path)
        For Each xls In klasor.Files
            If LCase(Mid(xls.shortname, InStr(1, xls.shortname, ".", 1) + 1)) = "xls" Then
            If xls.Name <> "ÖRNEK DOSYA.xls" Then
                Workbooks.Open (xls.Path)
                    Set aktif = ActiveWorkbook
                    Sayfa_ismi = Mid(aktif.Name, 2, 2) & "." & Mid(aktif.Name, 4, 2) & "." & Mid(aktif.Name, 6, 4)
                    Set sh = ThisWorkbook.Worksheets(Sayfa_ismi)
                    a = aktif.Sheets(1).Range("a65536").End(3).Row
                    aktif.Sheets(1).Range("a2:l" & a).Copy
                    sh.Range("a65536").End(3)(2, 1).PasteSpecial xlPasteValues
                    aktif.Close False
            End If
            End If
        Next xls
    a = Empty
    Set sh = Nothing
    Set evn = Nothing
    Set aktif = Nothing
    Set klasor = Nothing
    MsgBox "Aktarma işlemi tamamlandı...", vbInformation, "ASKM"
End Sub
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 10-11-2017, 13:42   #3
ozuberk
 
ozuberk kullanıcısının avatarı
 
Giriş: 10/08/2004
Mesaj: 210
Excel Vers. ve Dili:
Excel 2010 - Türkçe ve İngilizce
Varsayılan

Merhaba ilginiz için teşekkür ederim. Kodu çalıştırdığımda hata veriyor ve uyarılar çıkıyor. Daha sonra kod bölümündeki Workbooks.Open (xls.Path) sarı renk ile işaretleniyor.
__________________
(Excel 2003 - Türkçe)
ozuberk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 10-11-2017, 13:46   #4
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 1,623
Excel Vers. ve Dili:
2010-2016
Varsayılan

Dosyanızın adını xls.Name <> "ÖRNEK DOSYA.xls" kısmına tam yazdınız mı? Uzantı dahil.
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 10-11-2017, 13:59   #5
ozuberk
 
ozuberk kullanıcısının avatarı
 
Giriş: 10/08/2004
Mesaj: 210
Excel Vers. ve Dili:
Excel 2010 - Türkçe ve İngilizce
Varsayılan

Evet Kasım.xlsm olarak düzelttim.
__________________
(Excel 2003 - Türkçe)
ozuberk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 10-11-2017, 20:33   #6
PLİNT
 
Giriş: 31/12/2014
Şehir: Gürün
Mesaj: 1,252
Excel Vers. ve Dili:
Excel 2010
Varsayılan

Merhaba
Arkadaşlar affınıza sığınarak;
Açık dosya aynı klasör içinde olduğu için gizli (gölge) "Kasım" dosyasını açmaya çalşıyor olabilir.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
   If xls.Name <> ThisWorkbook.Name And InStr(xls.Name, "~") = 0 Then
PLİNT Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-11-2017, 16:57   #7
ozuberk
 
ozuberk kullanıcısının avatarı
 
Giriş: 10/08/2004
Mesaj: 210
Excel Vers. ve Dili:
Excel 2010 - Türkçe ve İngilizce
Varsayılan

Merhaba,

Kodu değiştirdiğimde sorun düzeldi. Yardımlarınız için çok teşekkür ederim.
Bende affınıza sığınarak iki sorum olacak;
1) Set sh = ThisWorkbook.Worksheets("01.11.2017") sayfa ismi değişiklik gösterebilir. Örneğin 01.12.2017, 01.01.2018... gibi
2) Kod ikinci defa çalıştığında alt alta yapıştırıyor. Bunun yerine A2 başlangıç olsun mükerrer kayıt yapmasın.
__________________
(Excel 2003 - Türkçe)
ozuberk Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 06:00


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri- Çorlu Çelik Konstruksiyon-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden