• DİKKAT

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

Run Time Error '5'

Katılım
25 Aralık 2007
Mesajlar
300
Excel Vers. ve Dili
2007 tr
Office 2007 kullanıyorum, önceden çalışan aşağıdaki kodlar, Bilgisayar formatlandıktan sonra hiçbir şekilde çalışmamaya başladı.
verdiği hata ise Run Time Error '5', Formda arama yaptım Error 5'kod ile ilgili Takvim nestesi xla. eklentisi gibi bağzı yönergeleri izledim ama halen sorunu aşamadım.

Saygılarımla.



Kod:
 'Mail Prosedürü II. 30.07.12 xxx
Function RightPadChar(ByVal Astr As String, PadChar As String, stLen As Integer) As String
Dim AStrL As Integer
Astr = Trim(Astr)
AStrL = Len(Astr)
If AStrL < stLen Then
Astr = Astr + String(stLen - AStrL, PadChar)
Else
Astr = Mid$(Astr, 1, stLen)
End If
RightPadChar = Astr
End Function

'Mail Prosedürü III. 30.07.12 xxx
Function LeftPadChar(ByVal Astr As String, PadChar As String, stLen As Integer) As String
Dim AStrL As Integer
Astr = Trim(Astr)
AStrL = Len(Astr)
If AStrL < stLen Then
Astr = String(stLen - AStrL, PadChar) + Astr
Else
Astr = Mid$(Astr, 1, stLen)
End If
LeftPadChar = Astr
End Function
'************************** E-MAİL GÖNDERİMİ *************************
    Application.ScreenUpdating = False
 'Working in 2000-2007
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim OutApp As Object
    Dim OutMail As Object

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set Sourcewb = ActiveWorkbook

    'Copy the sheet to a new workbook
    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook

    'Determine the Excel version and file extension/format
    With Destwb
        If Val(Application.Version) < 12 Then
            'You use Excel 97-2003
            'FileExtStr = ".xls": FileFormatNum = -4143
        Else
            'You use Excel 2007
            'We exit the sub when your answer is NO in the security dialog that you only
            'see  when you copy a sheet from a xlsm file with macro's disabled.
            If Sourcewb.Name = .Name Then
                With Application
                    .ScreenUpdating = True
                    .EnableEvents = True
                End With
                MsgBox "Your answer is NO in the security dialog"
                Exit Function
            Else
                Select Case Sourcewb.FileFormat
                Case 51: FileExtStr = ".xls": FileFormatNum = 51    'FileExtStr = ".xlsx": FileFormatNum =
               Case 52:
                    If .HasVBProject Then
                        FileExtStr = ".xlsm": FileFormatNum = 52
                    Else
                        FileExtStr = ".xlsx": FileFormatNum = 51
                    End If
                Case 56: FileExtStr = ".xls": FileFormatNum = 56
                Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
                End Select
            End If
        End If
    End With

        'Change all cells in the worksheet to values if you want
        With Destwb.Sheets(1).UsedRange
            .Cells.Copy
            .Cells.PasteSpecial xlPasteValues
            .Cells(1).Select
        End With
        Application.CutCopyMode = True

    'Save the new workbook/Mail it/Delete it
    TempFilePath = Environ$("temp") & "\"
    TempFileName = Sourcewb.Name ' & " " & Format(Now, "dd-mmm-yy h-mm-ss")

    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)

   With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
       ' On Error Resume Next
        With OutMail
            .To = "xxx"
            .CC = "xxx"
            .BCC = ""
            .Subject = Date & " xxx"
            .Body = body_govdesi(ThisWorkbook.Path & "\yazi.txt")
            .Attachments.Add Destwb.FullName
            'You can add other files also like this
            '.Attachments.Add ("C:\test.txt")
            .Display   'or use .Send
        End With
        On Error GoTo 0
        .Close SaveChanges:=False
    End With

    'Delete the file you have send
    Kill TempFilePath & TempFileName & FileExtStr

    Set OutMail = Nothing
    Set OutApp = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
    ThisWorkbook.Save
    Application.ScreenUpdating = True
    
End Function
 
Son düzenleme:
Merhaba,

Kodu F8 tuşu ile adım adım çalıştırıp hata veren satırı tesbit edebilirsiniz. Bu satırı foruma eklerseniz yardımcı olabiliriz.
 
Kod:
Astr = Astr + String(stLen - AStrL, PadChar)
Hata satırı yukarıdaki gibidir.
 
Merhaba,

Yanlış bilmiyorsam Halit beyin yardımıyla oluşan bir kod. Bu sebeple hatayı tam tesbit edebilmek adına dosyanızı eklermisiniz. Bahsettiğiniz satırda uyumsuz bir veri oluşuyor sanırım. Test ederek tam cevap verebilirim.
 
Korhan bey,
Yukarıdaki kod yabancı bir sitedenalmıştım, fakat bilgisayarımı formatlayınca hata vermeye başlamıştı, Orjinal kodları tekrar siteden buldum. Şuanda düzeldi. kod bloğu ile hiç farkı yok, sorunda ortadan kalktı ama ben bu işten hiçbirşey anlamadım, çünkü herşey satırı satırına aynı.
 
Geri
Üst