Lokal Ağ Üzerinde PDF Dosyası Açma

  • Konuyu başlatan Konuyu başlatan ssavas
  • Başlangıç tarihi Başlangıç tarihi

ssavas

Kullanıcı
Katkı: %1
Excel Versiyonu
Excel 2019
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba arkadaşlar, hayırlı ramazanlar.
Çözülmüş bir konuda ufak bir revizyona ihtiyacım var.
Kod bloğunda Alt_Klasor tanımlamasında & "-" & Me.txt_kurumadi.Value kodunun görmezden gelinmesini nasıl sağlarım, bilemedim.
Kurum isimleri zamanla değişiyor ancak ckys sabit kalıyor. Ünvan değişikliği ile yeni ünvanda yeni kişi kaydı yapılıyor ancak PDF klasöründeki kurum adı yenisi ile değişmiş oluyor. Dolayısıyla sistem eski kayıtlara ait pdf dosyalarında hata veriyor.
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (26 satır). Giriş Yap
 

Ekli dosyalar

İyi akşamlar arkadaşlar.
Konuyu açarken meramının ne olduğunu tam izah edememişim. Basitçe izah etmek gerekirse;
Alt_Klasor ismi (-) saymazsak üç bölümden oluşuyor. Dosya No, ÇKYS ve Kurum adı. Alt_Klasor = Me.txt_dno.Value & "-" & Me.txt_ckys.Value & "-" & Me.txt_kurumadi.Value
Ekran görüntüsü 2025-03-13 220610.webp
3.Bölümdeki isim her ne olursa olsun yokmuş gibi, sadece dosya no ve ckys numaralarına göre Alt_Klasor = Me.txt_dno.Value & "-" & Me.txt_ckys.Value olarak çalışması için kod nasıl revize edilmesi gerekiyor. Yardımcı olacak arkadaşlara teşekkür ederim.
 
Merhaba,

Sorunun kaynağı şu: Klasör adları DosyaNo-ÇKYS-KurumAdı biçiminde ve kurum adı zamanla değişiyor. Mevcut kod klasör yolunu formdaki kurum adıyla birebir kurduğu için, klasör yeni kurum adıyla yeniden adlandırıldığında eski kayıtların yolu tutmuyor. Çözüm, klasörü tam adıyla değil, değişmeyen başıyla (DosyaNo-ÇKYS-) aramaktır. Böylece üçüncü bölümde ne yazarsa yazsın klasör bulunur.

Kod nasıl çalışır?
  • Ana klasördeki (ThisWorkbook.Path) alt klasörler tek tek taranır.
  • Adı "1-111111-" ile başlayan ya da tam olarak "1-111111" olan klasör aranır; kurum adı bölümü dikkate alınmaz.
  • Bulunan klasörde "SıraNo-TC-AdıSoyadı.pdf" dosyası olup olmadığına bakılır; varsa tam yol döndürülür ve PDF açılır.
  • Aramada sonda "-" işareti de kullanıldığı için "1-111111" klasörü "11-111111-..." ya da "1-1111112-..." gibi klasörlerle karışmaz.
  • Dosya ve klasör kontrolleri FileSystemObject ile yapılır; Türkçe karakterli klasör adlarında ve ağ (UNC) yollarında sorunsuz çalışır.

1. Standart modüle eklenecek kod
Alt+F11 ile VBA düzenleyicisini açın, Insert (Ekle) > Module ile yeni bir modül ekleyin ve aşağıdaki kodu yapıştırın. Fonksiyonlar Public olduğu için formunuzdan doğrudan çağrılabilir.

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (50 satır). Giriş Yap

2. Formdaki btnPDF_Click yordamının yeni hâli
Formunuzdaki mevcut btnPDF_Click yordamını aşağıdakiyle değiştirin. Alt_Klasor değişkenine artık gerek kalmıyor; kurum adı (txt_kurumadi) aramaya hiç katılmıyor.

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (19 satır). Giriş Yap

Dikkat edilecekler
  • Çalışma kitabı ağdaki paylaşılan klasörden açılıyorsa ThisWorkbook.Path otomatik olarak \\SUNUCU\Paylasim\... biçiminde gelir ve kod bu yolla doğrudan çalışır. PDF klasörleri başka bir yerdeyse PdfYoluBul fonksiyonuna ilk parametre olarak o yolu verin; örneğin "\\SUNUCU\Paylasim\PDF".
  • Aynı DosyaNo-ÇKYS ile başlayan birden fazla klasör varsa, aranan PDF'in bulunduğu ilk klasör kullanılır.
  • Kullanıcının paylaşılan klasörde en az okuma izni olmalıdır. İzin yoksa klasör listelenemez ve "PDF dosyası bulunamadı" mesajı görünür.
  • Ağdaki bir dosya açılırken Office "Bazı dosyalar bilgisayarınıza zarar verebilir" uyarısı gösterebilir; bu bir güvenlik uyarısıdır, dosyanın güvenilir olduğunu biliyorsanız onaylayabilirsiniz.
  • Makroların ağ konumunda uyarısız çalışması için klasörü Güvenilir Konum olarak ekleyebilirsiniz: Dosya > Seçenekler > Güven Merkezi > Güven Merkezi Ayarları > Güvenilir Konumlar (File > Options > Trust Center > Trust Center Settings > Trusted Locations). Ağ yolu için aynı pencerede "Ağımdaki güvenilir konumlara izin ver" (Allow Trusted Locations on my network) kutusunu da işaretleyin.
  • PDF adının kendisi (SıraNo-TC-AdıSoyadı.pdf) birebir eşleşmelidir; metin kutularındaki baştaki ve sondaki boşluklar Trim ile temizlenir.

Ekli dosya
Lokal_Ag_PDF_Ac.zip dosyasının içinde şunlar var:
  • Lokal_Ag_PDF_Ac.xlsm: Yukarıdaki kodun bulunduğu mdlPdfAc modülü ve örnek "PDF Aç" sayfası. Değer sütununa Dosya No, ÇKYS, Sıra No, TC Kimlik No ve Adı Soyadı bilgilerini girip PDF'i Bul ve Aç düğmesine basın. Sadece Yolu Bul düğmesi PDF'i açmadan bulunan yolu gösterir. Ana klasör hücresi boşsa dosyanın bulunduğu klasör kullanılır; buraya ağ yolu da yazabilirsiniz.
  • Deneme amaçlı iki klasör ve örnek PDF'ler: Sayfadaki kayıtta kurum adı "A Ağız Ve Diş Sağlığı Polikliniği" yazdığı hâlde klasörün adı "1-111111-B Ağız ve Diş Sağlığı Polikliniği" olarak değişmiştir. Eski kod bu PDF'i bulamazken yeni kod bulup açar.
ZIP dosyasını bir klasöre çıkarın ve xlsm dosyasını o klasörden açıp makroları etkinleştirin. İnternetten indirilen dosyalarda makrolar engellenirse dosyaya sağ tıklayıp Özellikler > Engellemeyi kaldır (Unblock) seçeneğini işaretleyin.

Kolay gelsin.
 

Ekli dosyalar

Geri
Üst