Excel'de oluşturduğum makronun dosya yolunu vbs dosyasına yazdırmalıyım.

Katılım
14 Ocak 2025
Mesajlar
10
Excel Vers. ve Dili
Excel 2016 ve Türkçe
Excel'de bir makro olusturdum. Bu makroyu arkada Excel sekmesi görünmeden çalıstırabilmek için bir vbs dosyası olusturdum. Ancak dosya yolunu bulup oraya kopyalamam gerekiyor. C:DosyaYolu/DosyaAdı.xlsm seklinde. Nasıl yapabilirim acaba
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
686
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Makro kullanarak Excel dosyasını arka planda çalıştırmak için, Excel dosyasının tam dosya yolunu belirtmeniz gerekmektedir. Ancak, Excel dosyasının yolunu bulmak için birkaç adım uygulayabilirsiniz:

Dosya Yolu ve Adını Bulma:
Excel dosyasının bulunduğu klasöre gidin ve dosyayı sağ tıklayın.
"Özellikler"i seçin.
"Genel" sekmesinde, "Konum" kısmında dosyanın tam yolunu görebilirsiniz. Bu yol, dosyanın saklandığı klasörü gösterir.
Dosya adı da bu klasördeki dosya adıyla eşleşecektir (örneğin, DosyaAdı.xlsm).

Excel dosyasını arka planda çalıştırmak için aşağıdaki VBS kodunu kullanabilirsiniz. Buradaki "DosyaYolu" ve "DosyaAdı" kısmını, tespit ettiğiniz yol ve dosya adıyla değiştireceksiniz.. Eğer dosyanız C:\Belgeler\ExcelDosyaları\MakroDosyası.xlsm yolunda yer alıyorsa, VBS dosyanız şu şekilde olacaktır:

Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.Workbooks.Open "C:\Belgeler\ExcelDosyaları\MakroDosyası.xlsm"
objExcel.Run "MakroAdı"
objExcel.Quit
Set objExcel = Nothing

Bu şekilde, VBS dosyasını çalıştırdığınızda Excel penceresi görünmeden makro çalışacaktır.
 
Katılım
14 Ocak 2025
Mesajlar
10
Excel Vers. ve Dili
Excel 2016 ve Türkçe
Ne yazık ki öğeyi bulamadık, tasınmıs veya yeniden adlandırılmıs olabilir mi diyor. Bir çözümü var mı acaba
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
456
Excel Vers. ve Dili
Office 365 Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
01-11-2026
Merhaba,
Dosyanız nerede ve siz dosya yolu olarak ne yazdınız ?
 
Katılım
14 Ocak 2025
Mesajlar
10
Excel Vers. ve Dili
Excel 2016 ve Türkçe
Dosyam bir klasörde ben de söyle yaptım
C:\Users\mbmmbm\Desktop\Yeni klasör\Kitap1.xlsm
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
456
Excel Vers. ve Dili
Office 365 Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
01-11-2026
Merhaba,
Kendi bilgisayarımda "C:\Users\kullanıcı.adı\Documents\Excel Dosyaları\MakroDosyası.xlsm" bu dosya yoluna makrolu dosyamı oluşturdum.
Bu dosyada Module1 içinde test isminde bir kod var. Sayfa1 A1 hücresine "Merhaba" yazıyor.

Kapalı dosyadaki kod:
Kod:
Sub test()
   Sheets("Sayfa1").Range("A1").Value = "Merhaba"
End Sub
Açtığım yeni bir excel sayfasına yeni bir Module ekledim ve aşağıdaki kodu yazıp çalıştırdım.
Yeni açtığım dosyada kapalı dosyadaki kodu uyguladı ve başarılı şekilde A1 hücresine merhaba yazdı.


Kod:
Sub RunMacroFromClosedWorkbook()
    Dim wb As Workbook
    Dim filePath As String
    Dim macroCode As String
    
    filePath = "C:\Users\kullanıcı.adı\Documents\Excel Dosyaları\MakroDosyası.xlsm"
    
    ' Kapalı dosyayı aç
    Set wb = Workbooks.Open(filePath)
    
    ' Kapalı dosyadaki makro kodunu al
    macroCode = wb.VBProject.VBComponents("Module1").CodeModule.Lines(1, wb.VBProject.VBComponents("Module1").CodeModule.CountOfLines)
    
    ' Kapalı dosyayı kapat
    wb.Close SaveChanges:=False
    
    ' Makro kodunu mevcut dosyaya ekle
    With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        .DeleteLines 1, .CountOfLines ' Mevcut kodu temizle
        .AddFromString macroCode ' Yeni kodu ekle
    End With
    
    ' Makroyu çalıştır
    Application.Run "Module1.test"
End Sub
Kodda yer alan aşağıdaki satırları kendi dosyanızdaki bilgilere göre değiştirin,

filePath = "C:\Users\kullanıcı.adı\Documents\Excel Dosyaları\MakroDosyası.xlsm"

macroCode = wb.VBProject.VBComponents("Module1").CodeModule.Lines(1, wb.VBProject.VBComponents("Module1").CodeModule.CountOfLines)
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
Application.Run "Module1.test"

Umarım sizde de çalışır.
 
Katılım
14 Ocak 2025
Mesajlar
10
Excel Vers. ve Dili
Excel 2016 ve Türkçe
Satır 2 de deyim sonu gerekli diyerek hata vermeye devam ediyor. Yine de yardımınız için çok tesekkür ederim. :)
 
Üst