Kapalı dosyada makro ile formül

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
2,824
Beğeniler
3
Excel Vers. ve Dili
2010
#1
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

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
7,350
Beğeniler
619
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#2
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
2,824
Beğeniler
3
Excel Vers. ve Dili
2010
#3
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

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
7,350
Beğeniler
619
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#4
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
2,824
Beğeniler
3
Excel Vers. ve Dili
2010
#6
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

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
7,350
Beğeniler
619
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#7
-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
2,824
Beğeniler
3
Excel Vers. ve Dili
2010
#8
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.
 

brod12

Altın Üye
Katılım
19 Mayıs 2019
Mesajlar
61
Beğeniler
3
Excel Vers. ve Dili
Excel 2010 türkçe
#10
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

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
7,350
Beğeniler
619
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#11
...........
............... 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:

brod12

Altın Üye
Katılım
19 Mayıs 2019
Mesajlar
61
Beğeniler
3
Excel Vers. ve Dili
Excel 2010 türkçe
#12
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

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
7,350
Beğeniler
619
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#13
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 ....

.
 

brod12

Altın Üye
Katılım
19 Mayıs 2019
Mesajlar
61
Beğeniler
3
Excel Vers. ve Dili
Excel 2010 türkçe
#14
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.
 

EmrExcel16

Altın Üye
Altın Üye
Katılım
1 Kasım 2012
Mesajlar
257
Beğeniler
33
Excel Vers. ve Dili
Office 365 Türkçe
#16
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

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
7,350
Beğeniler
619
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#17
Telefondan yazdigim icin cok fazla detay veremiyorum ama; forumda "kapali dosya dusey ara ADO" gibi arama yaparsaniz, benim hazirladigim dosya orneklerine ulasabilirsiniz...

.
 

EmrExcel16

Altın Üye
Altın Üye
Katılım
1 Kasım 2012
Mesajlar
257
Beğeniler
33
Excel Vers. ve Dili
Office 365 Türkçe
#18
Teşekkur ederim Haluk hocam sizin örneklerinizi inceleyecegim .
 
Üst