Kapalı dosyada makro ile formül

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,598
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
merhaba sayın hocalarım
bilgisayarımın masaüstünde Rapor adında excel çalışma sayfası var. ve bunun sayfa 1 sekmesinde B6 hücresine başka bir dosyadan veri taşıma istiyorum

taşımak istediğim veri ise
Bilgisayarım
DATA (D:)
Faaliyet klasörü
MAyıs 2019 Excel çalışma sayfasının Ö.Ctvl sekmesinin B42 hücresi

makro ile çözümünü yapabilir misiniz.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Aşağıdaki kodu, masaüstünde olduğunu belirttiğiniz Rapor.xlsm dosyasında yeni bir modüle yerleştirip, çalıştırın.

D:\Faaliyet\Mayıs 2019.xlsx dosyasının Ö.Ctvl sayfasındaki B42 hücresinde yer alan veri, kodların yerleştirildiği Rapor.xlsm dosyasında aktif sayfanın B6 hücresine alınacaktır....

Kod:
Sub Test()
    'Haluk - 21/05/2019
    '
    myArgs = Array("D:\Faaliyet\", "Mayıs 2019.xlsx", "Ö.Ctvl", "B42")
    argXL4 = "'" & myArgs(0) & "[" & myArgs(1) & "]" & myArgs(2) & "'!" & Range(myArgs(3)).Address(ReferenceStyle:=xlR1C1)
    Range("B6") = ExecuteExcel4Macro(argXL4)
End Sub

.
 
Son düzenleme:

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,598
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
sayın haluk hocam yarın sabah ofisteki pc de deneyecem

hocam eğer birden fazla klasör varsa yani Faaliyet klasörü içinde 2019 klasörü içinde olsaydı makro nasıl değişirdi.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Rich (BB code):
Sub Test()
    'Haluk - 21/05/2019
    '
    myArgs = Array("D:\Faaliyet\2019\", "Mayıs 2019.xlsx", "Ö.Ctvl", "B42")
    argXL4 = "'" & myArgs(0) & "[" & myArgs(1) & "]" & myArgs(2) & "'!" & Range(myArgs(3)).Address(ReferenceStyle:=xlR1C1)
    Range("B6") = ExecuteExcel4Macro(argXL4)
End Sub
.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,598
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
anladım hocam çok teşekkür ederim
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,598
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
makroyu uyguladım ve sonuç aldım teşekkür ederim hocam
bazı sorularım olcak hocam dosya açıkken de makro çalışırmı (kapalı dosya değil yani)
diğer sorum ise makronun çalışacağı dosyam masaüstünde değilde
DATA (D:)
Faaliyet klasörü
RApor çalışma sayfası ise kod nasıl değişir hocam yoksa değişen birşey olmaz mı
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
-Verinin alınacağı dosya açık veya kapalı olabilir, fark etmez.

-Kodun yazıldığı dosyanın masaüstünde olması gerekmez, herhangi bir yerde olabilir.

.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,598
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
makro kodundaki
myArgs = Array("D:\Faaliyet\2019\", "Mayıs 2019.xlsx", "Ö.Ctvl", "B42") bu kısım nereden veri alınacağını belirtiyo

makronun uygulanacak dosyanın konumu ile ilgili bir kod yok yani hocam
doğru mu anladım.
 
Katılım
19 Mayıs 2019
Mesajlar
61
Excel Vers. ve Dili
Excel 2010 türkçe
Evet... aktif dosyanın, aktif sayfasında B6 hücresine veriyi yazar.

.
Merhaba. Kafama takılan ufak bir soru var. Şöyle ben bu verinin çekirdiği dosyayı sürekli değiştirmek istiyorum. Ondan dolayı da kod satırına girip her seferinde dosya yerini değiştirmek yerine excelde gözat gibisinden bir buton olabilir mi? Ona tıkladığımda bir şeçim penceresi açılsa ve ben dosyayı şeçsem. Ama burada önemli olan dosya yeri farklı ama verinin çekildiği sayfa ve hücre aynı sadece değişen yeri ve dosyanın ismi olacak. Yani kod satırında dosya konumunun olduğu yere bir değişken atayabilir miyiz?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
...........
............... tıkladığımda bir şeçim penceresi açılsa ve ben dosyayı şeçsem. Ama burada önemli olan dosya yeri farklı ama verinin çekildiği sayfa ve hücre aynı sadece değişen yeri ve dosyanın ismi olacak. Yani kod satırında dosya konumunun olduğu yere bir değişken atayabilir miyiz?
Aşağıdaki kodlarla dosya seçimi yapılabilecektir. Sabit olan sayfa adı ve verinin alınacağı hücre kodlarda aşağıda kırmızı renkle belirtilmiştir....

Rich (BB code):
Sub Test2()
    'Haluk - 23/05/2019
    'E-posta:sa4truss@gmail.com
    '
    Dim FD As FileDialog
    Dim MyFile As String, MySheet As String, myRange As String
    Dim strFolder As String, strFile As String
    Dim strSheet As String, strRange As String
    Dim myArgs() As Variant, argXL4 As String
    
    Set FD = Application.FileDialog(msoFileDialogOpen)
    
    FD.Title = "Dosya seçin..."
    FD.Filters.Clear
    FD.Filters.Add "Excel dosyası", "*.xlsx; *.xlsm"
    FD.AllowMultiSelect = False
    
    If FD.Show = -1 Then
        MyFile = FD.SelectedItems(1)
        
        strFolder = Left(MyFile, InStrRev(MyFile, Application.PathSeparator))
        strFile = Replace(MyFile, strFolder, "")
        strSheet = "Ö.Ctvl"
        strRange = "B42"
        
        myArgs = Array(strFolder, strFile, strSheet, strRange)
        argXL4 = "'" & myArgs(0) & "[" & myArgs(1) & "]" & myArgs(2) & "'!" & Range(myArgs(3)).Address(ReferenceStyle:=xlR1C1)
        Range("B6") = ExecuteExcel4Macro(argXL4)
    Else
        MsgBox "Dosya seçimi yapılmadı....!"
    End If
    
    Set FD = Nothing
End Sub
.
 
Son düzenleme:
Katılım
19 Mayıs 2019
Mesajlar
61
Excel Vers. ve Dili
Excel 2010 türkçe
Aşağıdaki kodlarla dosya seçimi yapılabilecektir. Sabit olan sayfa adı ve verinin alınacağı hücre kodlarda aşağıda kırmızı renkle belirtilmiştir....

Rich (BB code):
Sub Test2()
    'Haluk - 23/05/2019
    'E-posta:sa4truss@gmail.com
    '
    Dim FD As FileDialog
    Dim MyFile As String, MySheet As String, myRange As String
    Dim strFolder As String, strFile As String
    Dim strSheet As String, strRange As String
    Dim myArgs() As Variant, argXL4 As String
   
    Set FD = Application.FileDialog(msoFileDialogOpen)
   
    FD.Title = "Dosya seçin..."
    FD.Filters.Clear
    FD.Filters.Add "Excel dosyası", "*.xlsx; *.xlsm"
    FD.AllowMultiSelect = False
   
    If FD.Show = -1 Then
        MyFile = FD.SelectedItems(1)
       
        strFolder = Left(MyFile, InStrRev(MyFile, Application.PathSeparator))
        strFile = Replace(MyFile, strFolder, "")
        strSheet = "Ö.Ctvl"
        strRange = "B42"
       
        myArgs = Array(strFolder, strFile, strSheet, strRange)
        argXL4 = "'" & myArgs(0) & "[" & myArgs(1) & "]" & myArgs(2) & "'!" & Range(myArgs(3)).Address(ReferenceStyle:=xlR1C1)
        Range("B6") = ExecuteExcel4Macro(argXL4)
    Else
        MsgBox "Dosya seçimi yapılmadı....!"
    End If
   
    Set FD = Nothing
End Sub
.
Bunların hepsini gözat diye bir butonun içinemi yazmam gerekiyor.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Kodları yeni bir modüle olduğu gibi yapıştırın, sonra kendi butonunuza kod olarak;

Kod:
Call Test2
Yazın, butonu tıklayın ....

.
 
Katılım
19 Mayıs 2019
Mesajlar
61
Excel Vers. ve Dili
Excel 2010 türkçe
Kodları yeni bir modüle olduğu gibi yapıştırın, sonra kendi butonunuza kod olarak;

Kod:
Call Test2
Yazın, butonu tıklayın ....

.
Elinize sağlık çalıştı ama ben sayfa 2 veya daha fazla sayfadanda veri çekmek istiyorum. Bunu nasıl yapabiliriz.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Elinize sağlık çalıştı ama ben sayfa 2 veya daha fazla sayfadanda veri çekmek istiyorum. Bunu nasıl yapabiliriz.
Ücretli bir danışmanlık hizmeti almak isterseniz, özel mesajla bana ulaşabilirsiniz...

.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba @Haluk hocam yazdığınız kod ile (2 nolu mesaj) sabit bir hücreye sabit bir veri alınıyor (istek bu şekilde olduğu için tabi) peki ben bu mantık ile düşeyara yapabilir miyim acaba , yani aktif açık dosyamdaki I sütundaki bir veriyi kapalı dosyadaki bu veriyi A sütununda bulup 2. sütundaki veriyi verecek .Tabi bunu sizin yazdığınız kod mantığı ile. Tekrardan Teşekkür ederim.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Telefondan yazdigim icin cok fazla detay veremiyorum ama; forumda "kapali dosya dusey ara ADO" gibi arama yaparsaniz, benim hazirladigim dosya orneklerine ulasabilirsiniz...

.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
Teşekkur ederim Haluk hocam sizin örneklerinizi inceleyecegim .
 
Üst