• DİKKAT

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

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
 
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.
 
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
 
Merhaba,
Dosyanız nerede ve siz dosya yolu olarak ne yazdınız ?
 
Dosyam bir klasörde ben de söyle yaptım
C:\Users\mbmmbm\Desktop\Yeni klasör\Kitap1.xlsm
 
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.
 
Satır 2 de deyim sonu gerekli diyerek hata vermeye devam ediyor. Yine de yardımınız için çok tesekkür ederim. :)
 
Geri
Üst