• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

Katılım
6 Ocak 2012
Mesajlar
56
Excel Vers. ve Dili
2007
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
 
Merhaba.

Uzantıyı hiç yazmadan deneyiniz.
Hangisi varsa onu açar.
İkisi de varsa "xlsx" uzantılı olanı açar.
 
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
 
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
 
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.
 
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...
 
Geri
Üst