Makro Kodlarını Dosyadan Okutmak

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Makro Kodlarını Dosyadan Okutmak

İleti#1)  KarıncaZ » 05 Eyl 2019 00:13

Merhaba.
Formda inceleme yaptım ancak bulamadım.
Yapmak istediğim makro kodlarını bir txt dosyasına yazmak. Excel açılışta o dosyadaki yazanları okuyacak ve oluşan makroyu çalıştıracak.

Cari takip için bir dosya hazırladım. Sürekli kod olarak yenilemeler yapıyorum. Her seferinde dosyanın kendisini güncellememiz gerekiyor. Bunun yarine çalışacak kodları txt dosyasına yazayım. Dosya her açılışta bilgisayarda kayıtlı olan txt lerden ilgili olanı okusun. Okuduğunu makro olarak çalıştırsın istiyorum ancak bununla ilgili bir örnek bulamadım.

Şöyle birşey de olabilir; Excel dosyasında var olan bir makroyu, txt dosyasından okusun ve bununla değiştirsin.

ÖRNEK:
Excel dosyasında kayıtlı makro

Kod: Tümünü seç
Sub Deneme()
[A1] = "Merhaba Dünya"
End Sub


şeklinde olsun.

Ben bir yeni.txt isimli dosyaya şu şekilde bir kod yazacağım

Sub Deneme()
Sheets("Sayfa1").Unprotect Password:="sifre"
[A1] = "Merhaba Dünya"
Sheets("Sayfa1").Protect Password:="sifre"
End Sub

Excelde Güncelle Butonuna basına, yeni.txt isimli dosyayı okuyacak, burada yazanı varolan Deneme makrosunun kodlarıyla değiştirecek. Excel dosyasında makro;
Kod: Tümünü seç
Sub Deneme()
Sheets("Sayfa1").Unprotect Password:="sifre"
[A1] = "Merhaba Dünya"
Sheets("Sayfa1").Protect Password:="sifre"
End Sub


şeklinde değişmiş olacak.

yada;
makro1.txt
makro2.txt
makro3.txt gibi dosyalarım olacak. Excelde Makro1 i çalıştır düğmesine basınca makro1.txt yi okuyacak ve bu kodları çalıştıracak.

Böyle bir şey mümkün mü ?
Mümkünse örnek bir dosya yükleye bilir misiniz yada kaynak verebilir misiniz?

İlginiz ve yardımlarınız için şimdiden teşekkürler
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#2)  Erkan Akayay » 05 Eyl 2019 08:36

Bu konuda yıllardır değişmeyen mükemmel kaynak.
http://www.cpearson.com/Excel/vbe.aspx
Sorularınızı düzgün bir Türkçe ile, detay vererek ve örnek dosyayla destekleyerek sorunuz.
Örnek dosyalarınızda Application.Visible veya hide gibi sayfa gizlemelerini iptal ediniz.
Kullanıcı avatarı
Erkan Akayay
Site Dostu
 
Kayıt: 20 Ağu 2008 11:59
Konum: YALOVA
Meslek: Bilgi İşlem
Yaş: 49
İleti: 4033
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#3)  erseldemirel2 » 05 Eyl 2019 09:29

Vba Script konusunu araştırın. Txt dosyası yerine vba dosyası olarak çalıştırabilirsiniz. Tabi excel kullanıcısına bu dosyaları çalıştırırken uyarı yapcaktır. Dışveri vs. Gibi izin soracaktır.
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#4)  erseldemirel2 » 05 Eyl 2019 09:31

erseldemirel2 yazdı:Vba Script konusunu araştırın. Txt dosyası yerine vba dosyası olarak çalıştırabilirsiniz. Tabi excel kullanıcısına bu dosyaları çalıştırırken uyarı yapcaktır. Dışveri vs. Gibi izin soracaktır.


Düzeltme: vba değil *.vbs dosyası olacak. Sağ tıklayıp düzenle ile kodlar eklenip düzenlenebilir
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#5)  KarıncaZ » 08 Eyl 2019 00:37

İlginiz için teşekkürler.

Örnek bir dosya paylaşma imkanınız var mı? Konuyu açarken kısaca yazdığım örnek bile olsa olur.

Teşekkürler.
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#6)  erseldemirel2 » 08 Eyl 2019 10:20

KarıncaZ yazdı:İlginiz için teşekkürler.

Örnek bir dosya paylaşma imkanınız var mı? Konuyu açarken kısaca yazdığım örnek bile olsa olur.

Teşekkürler.


Örnek excel ve yanında vbs dosyası var. Exceli açın butona basın
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#7)  erseldemirel2 » 08 Eyl 2019 10:49

Ayrıca mevcut excel deki module leri aşağıdaki kod ile txt veya vbs dosyası olarak export yapabilirsiniz. Ancak bu haliyle vbs dosyası çalışmaz. Düzenlenmesi gerekir. Sebebi metinde Sub Export... ve End sub gibi ifadelerin olmaması gerekiyor.

txt için

Kod: Tümünü seç
Sub export()
ActiveWorkbook.VBProject.VBComponents("Module1").Export ThisWorkbook.Path & "\deneme.txt"
End Sub


vbs için

Kod: Tümünü seç
Sub export()
ActiveWorkbook.VBProject.VBComponents("Module1").Export ThisWorkbook.Path & "\deneme.vbs"
End Sub
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#8)  KarıncaZ » 09 Eyl 2019 12:34

İlginiz için çok teşekkürler erseldemirel2

Benim istediğim İmport edilmesi.

ActiveWorkbook.VBProject.VBComponents("Module1").Export ThisWorkbook.Path & "\deneme.txt"

Modül1 i dışarı aktarmak değilde deneme.txt de yazanları içeri aktara bilmek.
ActiveWorkbook.VBProject.VBComponents("Module1"). dan sonra Import olayını bulamadım, Bu konuda da yardımcı olursanız çok sevinirim.
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#9)  erseldemirel2 » 09 Eyl 2019 12:59

KarıncaZ yazdı:İlginiz için çok teşekkürler erseldemirel2

Benim istediğim İmport edilmesi.

ActiveWorkbook.VBProject.VBComponents("Module1").Export ThisWorkbook.Path & "\deneme.txt"

Modül1 i dışarı aktarmak değilde deneme.txt de yazanları içeri aktara bilmek.
ActiveWorkbook.VBProject.VBComponents("Module1"). dan sonra Import olayını bulamadım, Bu konuda da yardımcı olursanız çok sevinirim.



Aşağıdaki kod ile excel in bulunduğu veri yolundaki deneme.txt içindeki bilgileri getirir.

Kod: Tümünü seç
Option Explicit
Sub InsertVBComponent(ByVal wb As Workbook, ByVal CompFileName As String)
If Dir(CompFileName) <> "" Then
On Error Resume Next
wb.VBProject.VBComponents.Import CompFileName
On Error GoTo 0
End If
Set wb = Nothing
End Sub
Sub Calling_Procedure()
InsertVBComponent ActiveWorkbook, ThisWorkbook.Path & "\deneme.txt"
End Sub
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#10)  KarıncaZ » 09 Eyl 2019 17:16

Merhaba Sayın erseldemirel2

Kodlarınızı çalıştırdım ancak bir sonuç alamadım. Ekte sizin kodlarınızı eklediğim dosyayı yükledim. Ayrıca Tam olarak ne olmasını istediğim durumun ekran görüntülerini Worde sırayla ekleyerek gösterdim. Bu konu benim için önemli, daha öncede belirttiğim gibi program kodlarına sürekli güncel birşeyler ekliyoruz ve tüm dosyayı değiştirmektense sadece bir txt dosyası yada başka türde bir dosya göndererek eski kodların yeni kodlar ile değişmesini sağlamak istiyoruz.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#11)  erseldemirel2 » 09 Eyl 2019 20:39

KarıncaZ yazdı:Merhaba Sayın erseldemirel2

Kodlarınızı çalıştırdım ancak bir sonuç alamadım. Ekte sizin kodlarınızı eklediğim dosyayı yükledim. Ayrıca Tam olarak ne olmasını istediğim durumun ekran görüntülerini Worde sırayla ekleyerek gösterdim. Bu konu benim için önemli, daha öncede belirttiğim gibi program kodlarına sürekli güncel birşeyler ekliyoruz ve tüm dosyayı değiştirmektense sadece bir txt dosyası yada başka türde bir dosya göndererek eski kodların yeni kodlar ile değişmesini sağlamak istiyoruz.


Dosyanız artık xls değil xlsm dosyası oldu. Ekteki txt dosyası yazı karakter diyelim "ANSI" olmalı. Aksi halde türkçe karakter görmeyebilir. Bu husus çok önemli. Sonrasında butona basın module2 silinip yerine module3'e yeni kodları yerleştirdi
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#12)  KarıncaZ » 09 Eyl 2019 21:06

Sayın erseldemirel2 ilginiz için teşekkürler.

Ekteki bölümde hata alıyorum. Office 2016 32 bit sürümünü kullanıyorum. Sanırım bazı kütüphanerli yüklemem gerekiyor.

Kod: Tümünü seç
Set modul = ThisWorkbook.VBProject.VBComponents("Module2").CodeModule


Esenlikler dilerim. İyi çalışmalar.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#13)  erseldemirel2 » 09 Eyl 2019 21:21

module1 kodları birde aşağıdaki gibi değiştirin ve aşağıdakileri kullanın.

Kod: Tümünü seç
Option Explicit
Sub modulesil()
Dim VBProj, VBComp As Object
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents("Module2")
VBProj.VBComponents.Remove VBComp
Run "Calling_Procedure"
End Sub
Sub InsertVBComponent(ByVal wb As Workbook, ByVal CompFileName As String)
If Dir(CompFileName) <> "" Then
On Error Resume Next
wb.VBProject.VBComponents.Import CompFileName
On Error GoTo 0
End If
Set wb = Nothing
End Sub
Sub Calling_Procedure()
InsertVBComponent ActiveWorkbook, ThisWorkbook.Path & "\deneme.txt"
End Sub


ekteki fotoda bendeki tools>referanence kısmından eklenen kütüphaneler var. onlar sizde eklimi kontrol edin
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#14)  KarıncaZ » 09 Eyl 2019 21:32

Yeni kodlar ile değiştirdim ancak ;

Kod: Tümünü seç
Set VBProj = ActiveWorkbook.VBProject


bu satırda hata aldım yine. Göndermiş olduğunuz resimdeki References ların hepsi ekli.
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#15)  erseldemirel2 » 09 Eyl 2019 21:35

KarıncaZ yazdı:Yeni kodlar ile değiştirdim ancak ;

Kod: Tümünü seç
Set VBProj = ActiveWorkbook.VBProject


bu satırda hata aldım yine. Göndermiş olduğunuz resimdeki References ların hepsi ekli.


Bende sorunsuz çalıştı office 365 64-bit.

aşağıdaki yere on error resume next eklermisin tam modulesil() altına

Kod: Tümünü seç
Option Explicit
Sub modulesil()
On Error Resume Next
'kodlar
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#16)  erseldemirel2 » 09 Eyl 2019 22:09

Özellikle 2.notebook var bende yazdıgım kodu onda çalıştırdım. hem pc hemde excel 32 bit. sorunsuz çalıştı. son olarak aşağıdaki koduda ekleyin;

Kod: Tümünü seç
Option Explicit
Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
Sub modulesil()
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya

Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#17)  KarıncaZ » 09 Eyl 2019 23:27

Sayın erseldemirel2

ilginiz için çok teşekkürler.

Malesef olmadı. Ekran görüntülerini ekte paylaşıyorum. Herhalde benim Ecxelde başka sorunlar var. Kaldırıp baştan kurayım.

Esenlikler dilerim. İyi çalışmalar.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
KarıncaZ
Yeni Başlamış
 
Adı Soyadı:Zülfü YORULMAZ
Kayıt: 04 Nis 2009 21:32
Konum: KOCAELİ
Meslek: SMMM
Yaş: 40
İleti: 46
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: KOCAELİ/DERİNCE

Cevap: Cevap: Makro Kodlarını Dosyadan Okutmak

İleti#18)  erseldemirel2 » 10 Eyl 2019 10:48

KarıncaZ yazdı:Sayın erseldemirel2

ilginiz için çok teşekkürler.

Malesef olmadı. Ekran görüntülerini ekte paylaşıyorum. Herhalde benim Ecxelde başka sorunlar var. Kaldırıp baştan kurayım.

Esenlikler dilerim. İyi çalışmalar.


Tabi başlaşaroda baksın ve sizde olmadı başka pc de deneyim birde
www.erseldemirel.com.tr
Kullanıcı avatarı
erseldemirel2
Siteye Alışmış
 
Kayıt: 31 Oca 2019 12:51
Meslek: işsiz
Yaş: 35
İleti: 236
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çankaya


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot, Yandex[Bot] ve 1 misafir

Bumerang - Yazarkafe