• DİKKAT

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

Farklı Kaydette Dosya Adı Problemi

  • Konbuyu başlatan Konbuyu başlatan kykbt
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Nisan 2006
Mesajlar
303
Excel Vers. ve Dili
Office 2003
Office 2007
Arkadaşalar Merhaba

Aşağıdaki kod ile excell sayfasının d hücresindeki adı kullanarak ve farklı kaydet ile word dosyası kaydetmeye çalışıyorum.
Ancak dosya adında :,/ gibi işaretler olunca hata veriyor.

Hata verdiğinde

Run-time error '5152'
Dosya adı geçersiz.

Diye hata veriyor.

Yapmak istediğim bu hatayı verince ve hata numaraı '5152' ise bir makro çalıştırmak istiyorum.

Yapamadım...... Yardım

Kod:
Sub farklıkaydet()
Dim evn As Object, evnDoc As Object
Dim sht As Worksheet, i As Integer, say As Integer
Set sht = Sheets("stok")
Set evn = CreateObject("word.application")
Set evnDoc = evn.Documents.Add
i = ActiveCell.Row
say = 4
    Call evnDoc.SaveAs(ThisWorkbook.Path & "\" & sht.Cells(i, "D").Value & ".doc")
    evn.Application.Quit
Set sht = Nothing
Set evnDoc = Nothing
Set evn = Nothing
End Sub
 
Dosya adı verirken bazı karakterleri kullanamazsınız. Size önerim Replace komutunu kullanarak bu karakterler yerine kullanılabilecek karakterler vermeniz.
 
Hata numarasına göre işlem yapmak için aşağıdaki linki inceleyin:
Linkin sonlarına doğru örnek kodlamalar var. Bu kodları kendinize uyarlayabilirsiniz.
http://support.microsoft.com/kb/193247
Örnek:
Kod:
   Sub Test()

      On Error Resume Next
      Error 50000          'set the value of Err to 50000

      If Err = 50000 Then
         MsgBox "my own error occurred"
      End If

   End Sub
 
Hocam Teşekkürler

Aşağıdaki örnek çok işime yaradı.

Kod:
Sub ProcessData()
      'Set up a user interrupt trapping as a run-time error
      On Error GoTo UserInterrupt
      Application.EnableCancelKey = xlErrorHandler

      'Start a long duration task
      For x = 1 to 1000000
         For y = 1 to 10
         Next y
      Next x

      Exit Sub
   UserInterrupt:
      If Err = 18 Then
         If MsgBox ("Stop processing records?", vbYesNo) = vbNo Then
            'Continue running at the point procedure was interrupted
            Resume
         Else
            'Handle other errors that occur
            MsgBox Error(Err)
         End If
      End If
End Sub
 
Geri
Üst