dosya isim başlangıcı

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
557
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Merhaba,
Bir makrom var ve işlemlerin bir yerinde bir başka excel dosyasını aktive etmesini istiyorum. Ancak dosya ismi internet ortamında bir veritabanından çekildiğinden ismi saat formatlı ve haliyle sürekli (her indirme sırasında) değişiyor.

örnek : paketler_21.01.2021-14.36.xls

Makro ile bir excel dosyası aktivasyon işlem kodunu mesela "dosya isminin ilk 10 karakteri şöyleyse" şeklinde yapmak mümkün mü?
Teşekkürler.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Kırmızı kısmı daraltabilirsiniz (paketler_21.*xls gibi)


ChDir ThisWorkbook.Path
dosya = ThisWorkbook.Path & "\paketler_21.01.2021*xls"
Workbooks.Open Dir(dosya)
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
557
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Çok teşekkür ederim.
Saygılar.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Rica ederim, saygı bizden, kolaylıklar dilerim.
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
557
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Sayın @PLİNT,
verdiğiniz kod dosyayı açmak için gayet güzel çalışıyor. Ancak ben bu açılmış bir dosyada .activate komutunu aynı şekilde kullanamıyorum.
şu 3 şekilde de denedim ama hiçbiri olmadı:

Workbooks("paketler_21*.xlsx").activate
Workbooks("paketler_21*xlsx").activate
Workbooks("paketler_21.*xlsx").activate

Kod kısmını nasıl düzeltmem gerekiyor yardımcı olur musunuz?
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Aşağıdaki örneklerden herhangi birini kullanabilirsiniz;
1_Dosyayı kodlarla açarken dosyanın adını; sizin kodlarınızda kullandığınız\kullanmak istediğiniz ad ile değiştirmek
Kod:
ChDir ThisWorkbook.Path
dosya = ThisWorkbook.Path & "\paketler_21*xls"
Name Dir(dosya) As ThisWorkbook.Path & "\" & "paketler_21" & ".xls"
Workbooks.Open Dir(dosya)
Workbooks("paketler_21.xls").Activate
İlgili adresteki "paketler_21.01.2020-14.36.xls" , dosyasının adı "paketler_21.xls" olarak değişecektir; makrolarınızda bu ismi kulanabilirsiniz


2_Kod sayfınızın başına "Public dsy As Workbook" yazarak açtığımız dosyayı "dsy" ile tanımlarız
Kod:
Public dsy As Workbook

Private Sub CommandButton1_Click()
ChDir ThisWorkbook.Path
dosya = ThisWorkbook.Path & "\paketler_21*xls"
Workbooks.Open Dir(dosya)
Set dsy = ActiveWorkbook
End Sub

Private Sub CommandButton2_Click()
dsy.Activate
'veya
'Workbooks(dsy.Name).Activate
MsgBox dsy.Name
End Sub

3_Aşağıdaki şekildede dosyayı aktif etmeniz gereken makro içinde "paketler" dosyasını tanıtarak
Kod:
For Each cv In Application.Workbooks
If "paketler_21*xlsx" Like cv.Name Then
Set dsy = cv
End If
Next
dsy.Activate
Not: Bu gelen dosyalar gün, gün, saat,saat birikiyorsa en son gelen dosyanın açılması için ayrı kod yazmak gereklidir.
 
Son düzenleme:
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
yukarıdaki 3. örnekte "xlsx" "xls" olacaktı
For Each cv In Application.Workbooks
If "paketler_21
*xls" Like cv.Name Then


1.örnek tede dosyayı adı değiştikten sonra; açmak için aşağıdaki kırmızı satırda kullanılabilir
ChDir ThisWorkbook.Path
dosya = ThisWorkbook.Path & "\paketler_21*xls"
Name Dir(dosya) As ThisWorkbook.Path & "\" & "paketler_21" & ".xls"
'Workbooks.Open Dir(dosya)

veya
Workbooks.Open ThisWorkbook.Path & "\" & "paketler_21.xls"
Workbooks("paketler_21.xls").Activate
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
557
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Çok teşekkür ederim. Gayet açıklayıcı. Ellerinize sağlık.
 
Üst