aktif vbe projesindeki references listesi

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Arkadaşlar aktif projdeki seçili references listesini elde etmenin yolu varmıdır.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Arkadaşlar aktif projdeki seçili references listesini elde etmenin yolu varmıdır.
Kod:
Sub Refleri_Listele()
 
For i = 1 To ThisWorkbook.VBProject.References.Count
 
    Cells(i, 1) = ThisWorkbook.VBProject.References.Item(i).Name
 
Next
 
End Sub
Konu açılmışken referans da işaretlensin. :)

Kod:
Sub Ref_Ekle_ADO_ve_DAO()
 
ThisWorkbook.VBProject.References.AddFromFile ( _
"C:\Program Files\Common Files\System\ado\msado15.dll") 'ADO
 
ThisWorkbook.VBProject.References.AddFromFile ( _
"C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll") 'DAO
 
End Sub
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam teşekkür ederim yalnız teferences lisdtesindeki görünen adını öğrenmek mümnkün olabilkirmi

galiba sizin verdiğinz dll adlarını içeriyor
VBA > visual basic for aplications
Excel > microsoft excel 11.0 object library
stdole > ole otomation
Office > microsoft office 11.0 object library
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bunu kullanın.
Kod:
Sub Refleri_Listele()
 
For i = 1 To ThisWorkbook.VBProject.References.Count
 
    Cells(i, 1) = ThisWorkbook.VBProject.References.Item(i)[B].Description[/B]
 
Next
 
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub Refleri_Listele_D()
 
For i = 1 To ThisWorkbook.VBProject.References.Count
 
    Cells(i, 1) = ThisWorkbook.VBProject.References.Item(i).Description
    Cells(i, 2) = ThisWorkbook.VBProject.References.Item(i).FullPath

Next
 
End Sub
bu daha çok işime yarayacak.

peki hocam şöyle bir sorum var şimdi kullandığım referenecları diziye alsam ve açılışta referensları seçili değil ise seçecek yoksa yok diye bilgi verecek kod nedir?
mesala bunlar
Visual Basic For Applications C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL
Microsoft Excel 11.0 Object Library C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE
Microsoft Forms 2.0 Object Library C:\WINDOWS\system32\FM20.DLL
OLE Automation C:\WINDOWS\system32\stdole2.tlb
Microsoft Office 11.0 Object Library C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL
Microsoft ActiveX Data Objects 2.7 Library C:\Program Files\Common Files\System\ado\msado27.tlb
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Kısa olması açısından kontrol olarak isimlere baktım. İsterseniz Description ya da Fullpath' e baktırın.

İsterseniz mesaj yerine ilgili referansı otomatik işaretlensin.(Ref. ekleme: 2 nolu mesaj)

Kod:
Sub Ref_Kontrol()
Dim bool As Boolean
 
arr = Array( _
"VBA", "Excel", "stdole", "Office", "MSForms", "ADODB")
 
For i = 0 To UBound(arr)
    bool = False
 
    For Each ref In ThisWorkbook.VBProject.References
        If ref.Name = arr(i) Then bool = True
    Next
 
    If bool = False Then MsgBox arr(i) & " referansı yoktur."
 
Next
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam istediğimde bu
dosya references listesinde ve sistemde varsa işaretlensin.... yoksa mesaj yollasın.

birazdan detaylı deneme yapacam
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam göndferdiğiniz son hali sereferenasın seçili olmadığını mesajlıyordu.

bu hali seçili değilse seçiyor.

Kod:
Sub Ref_Kontrol()
Dim bool As Boolean
 
strRefPath = "C:\Program Files\Microsoft Office\OFFICE11\msoutl.olb" 'ADO
    
    bool = False
 
    For Each ref In ThisWorkbook.VBProject.References
        If ref.fullPath = strRefPath Then bool = True
    Next
 
    If bool = False Then ThisWorkbook.VBProject.References.AddFromFile (strRefPath)

End Sub
bunu fonksiyon giibi yapabilirmiyzi

mesala

Kod:
sub xxxx()

    If TestRefKont("C:\Program Files\Microsoft Office\OFFICE11\msoutl.olb") = False Then
        call SecRef
    End If 
end sub
gibi
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam orada istediğim yok ki


şöyle birşey ;
...........
'Aktif internet bağlantısı varmı kontrol et.
If TestInternetConnection = False Then
MsgBox "BAĞLANTI YOK": Exit Sub
End If
..........
tanımlı fonksiyona bağlanarak internet bağlantısı nı kontrol eder, yoksa prosodürden çıkıyor........


bende tanınımlı fonksiyona bağlanarak reffullpath ve ya desritacition (açıklaması) nı göre seçili değilse seçecek fonksiyon istiyorum.
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
hocam orada şstedşpşn yok ki
Pardon ne yok?

şöyle birşey
...........
'Aktif internet bağlantısı varmı kontrol et.
If TestInternetConnection = False Then
MsgBox "BAĞLANTI YOK": Exit Sub
End If
..........
tanımlı fonksiyoına bağlanarak internet bağlantısı yoksa prosodürden çıkıyor........


bende tanınımlı fonksiyona bağlanarak reffullpath ve ya desritacition (açıklaması) nı göre seçili değilse seçecek fonksşiyon istiyorum.
Sn hsayar

Lütfen yazarken Türkçemizi dikkatli kullanmaya çalışalım.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
hocam orada şstedşpşn yok ki
merhaba
syn leventm Türkçenin yazım ve konuşma kurallarına dikkat edilmesi konusunda gösterdiğiniz duyarlılığa teşekkür ederim.

şstedşpşn~istediğim olsa gerek, syn hsayar tuşlara basarken biraz sola kaymış. siyasi düşüncesinin de parmaklarını takip etmesini dilerim ;)
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Hocam uyarınız için teşekkür ederim.
Sn Uzmanamale sabah sabah güzel espri idi. neşem yerine geldi nsşşs :) neyse biz bildiğimiz yoldan gitmeye devam edelim.
 
Son düzenleme:

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn hsayar, hep neşeli olmanızı dilerim.
amasya elması sever misiniz? ;)
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
elbette severim. yalnız konuyu geyiğie çevirmeye başladık.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam orada istediğim yok ki


şöyle birşey ;
...........
'Aktif internet bağlantısı varmı kontrol et.
If TestInternetConnection = False Then
MsgBox "BAĞLANTI YOK": Exit Sub
End If
..........
tanımlı fonksiyona bağlanarak internet bağlantısı nı kontrol eder, yoksa prosodürden çıkıyor........


bende tanınımlı fonksiyona bağlanarak reffullpath ve ya desritacition (açıklaması) nı göre seçili değilse seçecek fonksiyon istiyorum.

güncel

Tekrar anlatmayı deneyeyim.

Bir refimiz var o işaretli olmadımı kodumuz çalışmıyor.... elle işaretlemek yerine işaretli mi değil mi kontrol işini girdiğimiz refdosyayolu ile fonksiyonla yapacak ve işaretli değilse False sonucunu çevirecek bir fonksiyon mümkünmüdür. yada direkt prosodürden çağıralım şöyle ki


Kod:
 Sub Çalışanmakro()
refyolu = "c:\...................\ref.dll"
   call refkont(refyolu)
End sub

Sub Refkont(refyolu)
'herhalde parametrik prosodür denilen şey bu anemos hocamdan duydum bugün belki bu çözer

A1) Dosyayı sistemde kontrol et
a2) Dosya sistemde yoksa bo yolda istenilen dosya yoktur mesajı ver

b1) dosyayolunu referanslarda kontrol et
b2) işaretli ise çık, Çalışan makroda kaldığın yerden devam et
b3) işaretli değilse işaretle Çalışan makroda kaldığın yerden devam et




End sub[/code]


şu vba da türkçe gibi yukarıda yazıldığı gibi çalışsaydı.
gibi birşey
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Benim fikrim:
1- Sistemde ref. dosyalarının varlığının kontrolü. En az biri yoksa dosya kapansın.

2- Ref. işaretli olup olmadığına hiç bakmadan sırayla hepsi işaretlensin. Hataya karşı (işaretli olduğunda), satırın en başına "On Error Resume Next" ekleyin.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
1- Sistemde ref. dosyalarının varlığının kontrolü. En az biri yoksa dosya kapansın.

kullanılan ref dosyasının kontrolünü nasıl yapacağız?

2- Ref. işaretli olup olmadığına hiç bakmadan sırayla hepsi işaretlensin

1) bu işlem dosya boyutunu artırırmı
2) ref açıklaması (Microsoft ActiveX Data objects 2.0 library) Microsoft (ActiveX Data objects 2.1 library) (Microsoft ActiveX Data objects 2.2 library) vs aynı amaca önelik olanlar var bunlar arasında çakışma olur mu
3) buna ilişkin kodlar hangileridr.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatif:

Referans verip değişkenleri early binding (compile-derleme) deklare etmek yerine, CreateObject ile late bindig (runtime-çalışma sırasında) deklare etmek referans karmaşasına çözüm olur.

Forumda ADO, DAO, Outlook .... konularının bir çoğunda CreateObject yöntemi kullanılmıştır. Arama motoru ile bulabilirsiniz.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam aslında bu soruyu sormamdaki teml amaç sizin verdiğini bir çok kooda
xxxxx Refaransı seçili olmalıdır. demeniz
bende bu şekilde bazı örnek uygulamalarda kullandım. ama create objectte kasparasky ile virüs uyarsına sebeb oluyır ve beni sinir ediyor her seferinde Skip demekten bıktım.
 
Üst