Dosya uzantısına göre dosyayı açma

Katılım
6 Ocak 2012
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
10/04/2022
Merhaba benim sorunum yıllardır eski bir office sürümüne kullanıyordum. Yeni yüklenen office ile eski office 97-2003 uyumlu olarak dosyaları kaydetmek yerine xlsm kaydetmeye başladım. 17 yıldır her satış için bir excell dosyası kaydetmiştim. Bu dosyalar bir tabloda kayıtlı. Bu tablodan makro ile eski kayıtları aşağıdaki gibi açtırıyordum. Şimdi klasörde xls ve xlsm dosyaları olduğu için yeni dosyaları açtıramıyorum. Kodda xlsm yapsam eskileri açtıramayacağım. xls dosyası yoksa xlsm dosyasını aç gibi kodu değiştirebilir miyim?
Kabaca kodu böyle nasıl değiştirebilirim?
If Workbooks.Open Filename:="\\server\Formlar\" & ActiveCell.Value & ".xls" = True Then Workbooks.Open Filename:="\\server\Formlar\" & ActiveCell.Value & ".xls"
Else Workbooks.Open Filename:="\\server\Formlar\" & ActiveCell.Value & ".xlsm"

Sub Secimi_Ac()
i = ActiveCell.Row
Range("B" & i).Select
Workbooks.Open Filename:="\\server\Formlar\" & ActiveCell.Value & ".xls"
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Uzantıyı hiç yazmadan deneyiniz.
Hangisi varsa onu açar.
İkisi de varsa "xlsx" uzantılı olanı açar.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Bende hata olmuyor dosya açılıyor. 2019 kullanıyorum belki ondandır.
Aşağıdaki şekilde deneyin.

Kod:
Sub Secimi_Ac()
    Dim Dosya As String
    Dosya = "\\server\Formlar\" & ActiveCell.Value & ".xls"
    
    If Dir(Dosya) <> "" Then
        Workbooks.Open Filename:=Dosya
    Else
        Workbooks.Open Filename:=Dosya & "x"
    End If
End Sub
 
Katılım
6 Ocak 2012
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
10/04/2022
Akşam deneyeceğim. Şimdi acil birkaç iş çıktı.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Alternatif olarak denenebilir.
Kod:
Sub kod()
Dim yol As String, dsy As String
yol = "\\server\Formlar\"
dsy = Dir(yol & Cells(ActiveCell.Row, "B").Value & ".xls*")
If dsy <> "" Then Workbooks.Open yol & dsy
End Sub
 
Katılım
6 Ocak 2012
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
10/04/2022
Merhaba,
Alternatif olarak denenebilir.
Kod:
Sub kod()
Dim yol As String, dsy As String
yol = "\\server\Formlar\"
dsy = Dir(yol & Cells(ActiveCell.Row, "B").Value & ".xls*")
If dsy <> "" Then Workbooks.Open yol & dsy
End Sub
Üstteki çalışmadı ama bu kod çalıştı. Teşekkür ederim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
Ancak üstteki kodun da çalışması gerek. Kendi kodunuzun başında kullandığınız, B sütunu seçtiren aşağıdaki satırları o kodun da başına ilave edip deneyiniz.
Kod:
i = ActiveCell.Row
Range("B" & i).Select
İyi çalışmalar...
 
Üst