Selamlar,
İşim gereği son 1 haftada kenarından köşesinden VBA'ya bulaşmam gerekti. Sağdan soldan kopyala yapıştır ile bir şekilde işimi hallettim. Ama hem kendimi geliştirmek hem de yaptığım işi adam edebilmek adına sizlerin yardımını veya yönlendirmesini bekliyorum.
Genel anlamda projeyi açıklamam gerekirse;
Bir teklif cetveli yardımıyla A4'e hazırlanmış Teklif Formunu dolduruyorum. Basit referans ve Vlookup formülleriyle.
Teklif Formu tamamlandığında VBA yardımıyla Workbook'taki "MTF" sayfasını önceden belirlediğim sabit bir ana dizinin içine Teklifno_GUN-AY-YIL olarak isimlendirdiğim klasöre gene aynı isim formatında hem ".xlsx" (Sadece değerler, formüller yok) hem de PDF olarak kaydediyorum.
Öncelikle Worksheet'i ayırıp, hem pdf hem de ".xlsx" olarak kayıt etme işini ilk başta kod yazarak beceremediğim için Record Macro ile hallettim ve oradan çıkan kodu kullandım. Sonra klasör oluşturma, belirli bir hücreye Ana Dizini yazma vs ekledim.
Derme çatma, ama işimi gören birşey çıktı ortaya.
1. ve en önemli sorunum, eğer Excel'i ilk başta Yönetici olarak çalıştırıp, bu XLSM dosyasını öyle açmazsam macro hata veriyor. ./12313.tmp not found hatası alıyorum. Bu benim baya vaktimi yedi, dosya bozuldu diye düşündüm, sıfırdan kopyala yapıştır ile sıfırdan excel dosyası yarattım gene aynı sorun. Şans eseri benzer sorunu yaşayan birinin stackoverflow sitesinde açtığı konuya denk geldim, O da çözümü bulamamış geçici çözüm olarak yönetici olarak çalıştırma kalıyor.
2. sorunum, çok ta önemli değil, Sharepoint klasöründe bu XLSM doyasını barındırırsam dosyaya erişilemedi hatası alıyorum. Bazne yapıyor bazen yapmıyor.
Kullandığım kod yukarıda.
Fikirlerinizi ve varsa önerilerinizi rica ederim. Kullanıcıya fazla hata imkanı vermeden, hata yaparsa yönlendirme yapsın, kod hataya düşmesin istiyorum.
Teşekkürler,
İşim gereği son 1 haftada kenarından köşesinden VBA'ya bulaşmam gerekti. Sağdan soldan kopyala yapıştır ile bir şekilde işimi hallettim. Ama hem kendimi geliştirmek hem de yaptığım işi adam edebilmek adına sizlerin yardımını veya yönlendirmesini bekliyorum.
Genel anlamda projeyi açıklamam gerekirse;
Bir teklif cetveli yardımıyla A4'e hazırlanmış Teklif Formunu dolduruyorum. Basit referans ve Vlookup formülleriyle.
Teklif Formu tamamlandığında VBA yardımıyla Workbook'taki "MTF" sayfasını önceden belirlediğim sabit bir ana dizinin içine Teklifno_GUN-AY-YIL olarak isimlendirdiğim klasöre gene aynı isim formatında hem ".xlsx" (Sadece değerler, formüller yok) hem de PDF olarak kaydediyorum.
Öncelikle Worksheet'i ayırıp, hem pdf hem de ".xlsx" olarak kayıt etme işini ilk başta kod yazarak beceremediğim için Record Macro ile hallettim ve oradan çıkan kodu kullandım. Sonra klasör oluşturma, belirli bir hücreye Ana Dizini yazma vs ekledim.
Derme çatma, ama işimi gören birşey çıktı ortaya.
1. ve en önemli sorunum, eğer Excel'i ilk başta Yönetici olarak çalıştırıp, bu XLSM dosyasını öyle açmazsam macro hata veriyor. ./12313.tmp not found hatası alıyorum. Bu benim baya vaktimi yedi, dosya bozuldu diye düşündüm, sıfırdan kopyala yapıştır ile sıfırdan excel dosyası yarattım gene aynı sorun. Şans eseri benzer sorunu yaşayan birinin stackoverflow sitesinde açtığı konuya denk geldim, O da çözümü bulamamış geçici çözüm olarak yönetici olarak çalıştırma kalıyor.
2. sorunum, çok ta önemli değil, Sharepoint klasöründe bu XLSM doyasını barındırırsam dosyaya erişilemedi hatası alıyorum. Bazne yapıyor bazen yapmıyor.
Sub Teklif()
Dim FldrName As String 'Teklif Klasörü Adi
Dim Filename As String 'Teklif Dosyasi Adi
Dim RootPath As String 'Ana Klasör
Dim PathName As String 'Teklif Klasörünün Yeri
RootPath = Worksheets("ACIKLAMA").Range("M6").Value
FldrName = Worksheets("MTF").Range("Y3").Value & "_" & Day(Now) & "-" & Month(Now) & "-" & Year(Now)
Filename = Worksheets("MTF").Range("Y3").Value & "_" & Day(Now) & "-" & Month(Now) & "-" & Year(Now)
PathName = RootPath & "\" & FldrName & "\" & Filename
If Dir(RootPath, vbDirectory) = "" Then
MsgBox "LUTFEN TEKLIFLERIN KAYIT EDILECEGI ANA KLASORU SECIN"
Application.Run "FolderSelect"
Else
MkDir RootPath & "\" & FldrName
End If
Sheets("MTF").Select
Sheets("MTF").Copy
Cells.Select
Range("A40").Activate
Selection.Copy
Cells.Select
Range("A40").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B43:E43").Select
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=PathName & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PathName & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub
Kullandığım kod yukarıda.
Fikirlerinizi ve varsa önerilerinizi rica ederim. Kullanıcıya fazla hata imkanı vermeden, hata yaparsa yönlendirme yapsın, kod hataya düşmesin istiyorum.
Teşekkürler,
