ListBoxta Sayfa İsimlerini Kapalı dosyadan almada nokta(.) sorunu

Katılım
24 Temmuz 2019
Mesajlar
413
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
25-12-2023
Merhaba
Yukarıdaki linkte Sayın @Korhan Ayhan hocamın bir soruma cevaben yazdığı kodda kapalı excel dosyasının sayfalarını listboxta listelerken sayfa isimlerinin içinde nokta(.) işareti varsa resimdeki gibi nokta yerine # işareti ile yazıldığı için sorun yaşıyorum. Bu sorunu nasıl aşabiliriz?
KOD:
Kod:
Private Sub UserForm_Initialize()
    Dim Dosya As String, Baglanti As Object
    Dim Tum_Tablolar As Object, Sayfa As Object
  
    Set Baglanti = CreateObject("AdoDb.Connection")
    Set Tum_Tablolar = CreateObject("AdoX.Catalog")
    Set Sayfa = CreateObject("AdoX.Table")
  
    Dosya = "C:\Users\Desktop\İZİN PROGRAMI.xlsm"
  
    Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    Dosya & ";Extended Properties=""Excel 12.0;Hdr=No"""
  
    Tum_Tablolar.ActiveConnection = Baglanti
  
    ListBox1.Clear
  
    For Each Sayfa In Tum_Tablolar.Tables
        If Replace(Sayfa.Name, "'", "") Like "*$" And InStr(1, Sayfa.Name, "Print_Area") = 0 Then
            ListBox1.AddItem Replace(Replace(Sayfa.Name, "'", ""), "$", "")
        End If
    Next

    Set Baglanti = Nothing
    Set Tum_Tablolar = Nothing
    Set Sayfa = Nothing
End Sub
 

Ekli dosyalar

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;

C#:
Private Sub UserForm_Initialize()
    Dim daoDBEngine As Object, DB As Object, myFile As String, i As Byte
    
    Set daoDBEngine = CreateObject("DAO.DBEngine.120")
    
    myFile = "C:\Users\Haluk\Desktop\İZİN PROGRAMI.xlsx"
    
    Set DB = daoDBEngine.OpenDatabase(myFile, False, False, "Excel 8.0; HDR=Yes; IMEX=1;")
    
    For i = 0 To DB.TableDefs.Count - 1
        MySheet = VBA.Replace(DB.TableDefs(i).Name, "'", "")
        MySheet = Application.Substitute(MySheet, "#", ".")
        MySheet = Application.Substitute(MySheet, "$", "")
        
        ListBox1.AddItem MySheet
    Next
End Sub
.
 
Katılım
24 Temmuz 2019
Mesajlar
413
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
25-12-2023
@Haluk üstadım ilgi ve desteğiniz için çok teşekkür ederim.
Kodu ListBox2 Clik olayına bağladım. Çok iyi çalışıyor ancak ekli resimdeki gibi sayfa olmayan ama ne olduklarını tam olarak tespit edemediğim şeyleri de sayfaymış gibi ekliyor.
 

Ekli dosyalar

Katılım
24 Temmuz 2019
Mesajlar
413
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
25-12-2023
Sanırım neleri eklediğini buldum
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şu satırı değiştirmeniz yeterli olacaktır.

ListBox1.AddItem Replace(Replace(Sayfa.Name, "'", ""), "$", "")

Aşağıdaki gibi değiştiriniz.

ListBox1.AddItem Replace(Replace(Replace(Sayfa.Name, "'", ""), "$", ""), "#", ".")
 
Katılım
24 Temmuz 2019
Mesajlar
413
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
25-12-2023
Şu satırı değiştirmeniz yeterli olacaktır.

ListBox1.AddItem Replace(Replace(Sayfa.Name, "'", ""), "$", "")

Aşağıdaki gibi değiştiriniz.

ListBox1.AddItem Replace(Replace(Replace(Sayfa.Name, "'", ""), "$", ""), "#", ".")
Çok teşekkür ederim Korhan Hocam. Şimdi çok güzel oldu. Tam istediğim gibi oldu. Varolun.
 
Üst