Başka bilgisayarda application-defined or object-defined error hatası

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod penceresindeyken kodun içinde herhangi bir yere tıklayın. Sonra F8 tuşu ile adım adım çalıştırmayı deneyin. En azından hangi sayfada hata verdiğini görebilirsiniz. Böylece oraya yoğunlaşırsınız.
 
Katılım
28 Mart 2011
Mesajlar
46
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
19-03-2022
Kod penceresindeyken kodun içinde herhangi bir yere tıklayın. Sonra F8 tuşu ile adım adım çalıştırmayı deneyin. En azından hangi sayfada hata verdiğini görebilirsiniz. Böylece oraya yoğunlaşırsınız.
Tamamdır hocam birde bu şekilde deneyeyim inşallah olur teşekkür ederim... Başından beri kendi sorununuz gibi ilgilenmeniz çok kıymetli...
 
Katılım
28 Mart 2011
Mesajlar
46
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
19-03-2022
Kod penceresindeyken kodun içinde herhangi bir yere tıklayın. Sonra F8 tuşu ile adım adım çalıştırmayı deneyin. En azından hangi sayfada hata verdiğini görebilirsiniz. Böylece oraya yoğunlaşırsınız.
Korhan Hocam, adımla yöntemi ile makroyu kontrol ettiğimde, sayfanın bir tanesinde 2 Satırın gizli olmasından dolayı hata verdiğini deneyerek tespit ettim....

Ben 1 ile 4 ncü sütunlarda bulunan nesnelerin silinmesi istediğimden kod bu şekildeydi. Nesnenin bir tanesi bu gizli satıra denk geldiğinden makro hata veriyordu sanırım. Önce o sayfayı silerek makroyu çalıştırdım, daha sonra nesneyi birinci satıra alarak denedim her ikisinde de çalıştı...

Sonuçta çalışma kitabında sorun kalmadı...

Öğrenmek amaçlı soruyorum; gizli satır ve sütunlarda bu hata önlenebilir mi?

Korhan Hocam bu formun çok faydasını gördüm, özellikle siz çok yardımcı oldunuz, her şey için çok teşekkür ederim, bakıyorum her soruya cevap verip yönlendirme yapıyorsunuz sizi farklı kılanda bu olsa gerek iyi akşamlar...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hangi sayfada bu hatayı veriyor?
 
Katılım
28 Mart 2011
Mesajlar
46
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
19-03-2022
Hangi sayfada bu hatayı veriyor?
Korhan Hocam “Sayfa5” teki gizlenmiş 2 satır yani ben öyle tespit ettim... Nesneyi yukarı taşıdım sorun giderildi...

Şu anda bir sorun yok! Ben öğrenme amaçlı kod sordum onun için soruyorsanız ayrı tabiki...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben satırı gizleyerek denedim yine sorun çıkarmadan çalıştı.

Koda satır yüksekliğini kontrol eden bir kontrol ekledim. Bir de bu halini deneyin bakalım sıkıntı çıkaracak mı?

Ek olarak forumun arşivinde aldığınız hatayı araştırdım. Bir başlıkta üyemiz exceli kaldırıp yeniden kurunca sorunun düzeldiğinden bahsetmiş. Linkten inceleyebilirsiniz.



C++:
Option Explicit

Sub Dosyayi_Makrosuz_Formulsuz_Farkli_Kaydet()
    Dim Aktif_Dosya As Workbook, Sayfa As Worksheet
    Dim Yeni_Dosya As Workbook, Nesne As Object
    Dim Satir As Long, Satir_Yuksekligi As Double

    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .DisplayAlerts = False
    End With
    
    Set Aktif_Dosya = ThisWorkbook
    
    For Each Sayfa In Aktif_Dosya.Worksheets
        Sayfa.Unprotect "12345"
    Next

    Aktif_Dosya.Sheets.Copy
    
    Set Yeni_Dosya = ActiveWorkbook

    For Each Sayfa In Yeni_Dosya.Worksheets
        With Sayfa
            .Select
            .Cells.Copy
            .Cells.PasteSpecial xlPasteValues
            .Cells.Replace 0, "", xlWhole
            
            For Each Nesne In .Shapes
                Satir = Nesne.TopLeftCell.Row
                Satir_Yuksekligi = .Rows(Satir).RowHeight
                If .Rows(Satir).RowHeight < 15 Then
                    .Rows(Satir).RowHeight = 15
                End If
                If Nesne.TopLeftCell.Row >= 1 And Nesne.TopLeftCell.Row <= 4 Then
                    Nesne.Delete
                End If
                .Rows(Satir).RowHeight = Satir_Yuksekligi
            Next
            
            .Range("A1").Select
        End With
    Next
    
    Sheets(1).Select
    
    Yeni_Dosya.Sheets(Array("Sayfa1", "Sayfa2", "Sayfa3")).Delete
    
    Yeni_Dosya.SaveAs Aktif_Dosya.Path & Application.PathSeparator & CreateObject("Scripting.FileSystemObject").GetBaseName(Aktif_Dosya.Name), 51
    
    Yeni_Dosya.Close
    
    For Each Sayfa In Aktif_Dosya.Worksheets
        Sayfa.Protect "12345"
    Next
    
    Set Yeni_Dosya = Nothing
    Set Aktif_Dosya = Nothing
    
    With Application
        .ScreenUpdating = True
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .DisplayAlerts = True
    End With

    MsgBox "İşlem tamamlanmış, işlemi yaptığınız yere formülsüz olarak kopyalanmıştır...", vbInformation
End Sub
 
Katılım
28 Mart 2011
Mesajlar
46
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
19-03-2022
Ben satırı gizleyerek denedim yine sorun çıkarmadan çalıştı.

Koda satır yüksekliğini kontrol eden bir kontrol ekledim. Bir de bu halini deneyin bakalım sıkıntı çıkaracak mı?

Ek olarak forumun arşivinde aldığınız hatayı araştırdım. Bir başlıkta üyemiz exceli kaldırıp yeniden kurunca sorunun düzeldiğinden bahsetmiş. Linkten inceleyebilirsiniz.



C++:
Option Explicit

Sub Dosyayi_Makrosuz_Formulsuz_Farkli_Kaydet()
    Dim Aktif_Dosya As Workbook, Sayfa As Worksheet
    Dim Yeni_Dosya As Workbook, Nesne As Object
    Dim Satir As Long, Satir_Yuksekligi As Double

    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .DisplayAlerts = False
    End With
   
    Set Aktif_Dosya = ThisWorkbook
   
    For Each Sayfa In Aktif_Dosya.Worksheets
        Sayfa.Unprotect "12345"
    Next

    Aktif_Dosya.Sheets.Copy
   
    Set Yeni_Dosya = ActiveWorkbook

    For Each Sayfa In Yeni_Dosya.Worksheets
        With Sayfa
            .Select
            .Cells.Copy
            .Cells.PasteSpecial xlPasteValues
            .Cells.Replace 0, "", xlWhole
           
            For Each Nesne In .Shapes
                Satir = Nesne.TopLeftCell.Row
                Satir_Yuksekligi = .Rows(Satir).RowHeight
                If .Rows(Satir).RowHeight < 15 Then
                    .Rows(Satir).RowHeight = 15
                End If
                If Nesne.TopLeftCell.Row >= 1 And Nesne.TopLeftCell.Row <= 4 Then
                    Nesne.Delete
                End If
                .Rows(Satir).RowHeight = Satir_Yuksekligi
            Next
           
            .Range("A1").Select
        End With
    Next
   
    Sheets(1).Select
   
    Yeni_Dosya.Sheets(Array("Sayfa1", "Sayfa2", "Sayfa3")).Delete
   
    Yeni_Dosya.SaveAs Aktif_Dosya.Path & Application.PathSeparator & CreateObject("Scripting.FileSystemObject").GetBaseName(Aktif_Dosya.Name), 51
   
    Yeni_Dosya.Close
   
    For Each Sayfa In Aktif_Dosya.Worksheets
        Sayfa.Protect "12345"
    Next
   
    Set Yeni_Dosya = Nothing
    Set Aktif_Dosya = Nothing
   
    With Application
        .ScreenUpdating = True
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .DisplayAlerts = True
    End With

    MsgBox "İşlem tamamlanmış, işlemi yaptığınız yere formülsüz olarak kopyalanmıştır...", vbInformation
End Sub
Korhan Hocam çok teşekkür ederim sayenizde yeni şeyler öğrendik, ilk fırsatta deneyip geri bildirimde bulunacağım 🙏
 
Üst