• DİKKAT

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

VBA Sheet Copy ve Paste Hakkında Yardım

Katılım
26 Temmuz 2019
Mesajlar
2
Excel Vers. ve Dili
2016, Eng
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.

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,
 
Merhaba,

İlk olarak mesajınızda kullandığınız dil ve tertip çin sizi tebrik etmek istiyorum. Böyle mesajları maalesef forumda fazla göremiyoruz. İnşallah diğer üyelerimiz için de örnek teşkil eder...

Sorunuza gelince, konuya ekleyeceğiniz örnek dosya sorunun çözülmesinde kolaylık sağlayacaktır.
 
Bu işlerden çok anlamam ancak acaba çalıştığınız klasör geçici bir klasör mü, tmp dosyasına neden ihtiyaç duyulmuş? Kısıtlı bir bilgisayardan mı işlem yapıyorsunuz?
 
Yusuf Bey,

hayır geçici bir klasör değil, TMP dosyası adı değişiyor her seferinde macro çalıştırıldığında ayrıca.

Dosyayı bazı bilgileri çıkartarak ekliyorum.

Teklif oluştur makrosu çalışıyor eğer "Run as Admin" olarak Excel başlatıldıysa.

Açıklama sayfasından kayıt edilecek ana klasörün seçilmesi lazım.

https://we.tl/t-LUOrpEqbFV
 
Geri
Üst