Sayfalar arası kopyalama hatası

Katılım
22 Ocak 2019
Mesajlar
114
Excel Vers. ve Dili
Excel 2010
Makro Hatası (Hata Resmi Ektedir)

Aşağıdaki kodda koyu olan yerler hata veriyor, çözümü var mıdır?


Sub KopyalaVeGizle()
Dim wsAylik As Worksheet, ws2025 As Worksheet
Dim sonSutun As Long, hedefSatir As Long
Dim veri As Variant
Dim i As Long

' Çalışma kitabındaki ilgili sayfaları tanımla
Set wsAylik = ThisWorkbook.Sheets("Aylık")
Set ws2025 = ThisWorkbook.Sheets("2025")

' Aylık sayfasında F4'ü baz alarak sağdaki en son dolu sütunu bul
' ve o sütunun 4. satırındaki veriyi al
sonSutun = wsAylik.Cells(4, wsAylik.Columns.Count).End(xlToLeft).Column
veri = wsAylik.Cells(4, sonSutun).Value

' 2025 sayfasında C6 hücresini kontrol et; boşsa C6'ya, doluysa alt satıra yapıştır
If ws2025.Cells(6, 3).Value = "" Then
hedefSatir = 6
Else
hedefSatir = ws2025.Cells(ws2025.Rows.Count, 3).End(xlUp).Row + 1
End If

ws2025.Cells(hedefSatir, 3).Value = veri

' 2025 sayfasında A6'dan A200'e kadar olan satırları gizle
For i = 6 To 200
ws2025.Rows(i).Hidden = True
Next i

' A202 satırını görünür bırak
ws2025.Rows(202).Hidden = False

MsgBox "İşlem tamamlandı!", vbInformation, "Makro"
End Sub
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
452
Excel Vers. ve Dili
Windows 2011 TR
MS Office 365 TR - 64bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Sayfa isminin sağında yada solunda boşluk olabilir.
Makro Hatası (Hata Resmi Ektedir)

Aşağıdaki kodda koyu olan yerler hata veriyor, çözümü var mıdır?


Sub KopyalaVeGizle()
Dim wsAylik As Worksheet, ws2025 As Worksheet
Dim sonSutun As Long, hedefSatir As Long
Dim veri As Variant
Dim i As Long

' Çalışma kitabındaki ilgili sayfaları tanımla
Set wsAylik = ThisWorkbook.Sheets("Aylık")
Set ws2025 = ThisWorkbook.Sheets("2025")

' Aylık sayfasında F4'ü baz alarak sağdaki en son dolu sütunu bul
' ve o sütunun 4. satırındaki veriyi al
sonSutun = wsAylik.Cells(4, wsAylik.Columns.Count).End(xlToLeft).Column
veri = wsAylik.Cells(4, sonSutun).Value

' 2025 sayfasında C6 hücresini kontrol et; boşsa C6'ya, doluysa alt satıra yapıştır
If ws2025.Cells(6, 3).Value = "" Then
hedefSatir = 6
Else
hedefSatir = ws2025.Cells(ws2025.Rows.Count, 3).End(xlUp).Row + 1
End If

ws2025.Cells(hedefSatir, 3).Value = veri

' 2025 sayfasında A6'dan A200'e kadar olan satırları gizle
For i = 6 To 200
ws2025.Rows(i).Hidden = True
Next i

' A202 satırını görünür bırak
ws2025.Rows(202).Hidden = False

MsgBox "İşlem tamamlandı!", vbInformation, "Makro"
End Sub
 
Katılım
11 Temmuz 2024
Mesajlar
247
Excel Vers. ve Dili
Excel 2021 Türkçe
Bu şekilde deneyip sonucu paylaşabilir misiniz;

Kod:
Sub KopyalaVeGizle()
    Dim wsAylik As Worksheet, ws2025 As Worksheet
    Dim sonSutun As Long, hedefSatir As Long
    Dim veri As Variant
    Dim i As Long
 
    On Error Resume Next
    Set wsAylik = ThisWorkbook.Sheets("Aylık")
    Set ws2025 = ThisWorkbook.Sheets("2025")
    If wsAylik Is Nothing Or ws2025 Is Nothing Then
        MsgBox "Aylık veya 2025 sayfası bulunamadı!", vbExclamation
        Exit Sub
    End If
    On Error GoTo 0
    
    On Error Resume Next
    sonSutun = wsAylik.Cells(4, wsAylik.Columns.Count).End(xlToLeft).Column
    If Err.Number <> 0 Or sonSutun = 0 Then
        MsgBox "Aylık sayfasında veri bulunamadı!", vbExclamation
        Exit Sub
    End If
    On Error GoTo 0
    
    veri = wsAylik.Cells(4, sonSutun).Value
    
    If ws2025.Cells(6, 3).Value = "" Then
        hedefSatir = 6
    Else
        hedefSatir = ws2025.Cells(ws2025.Rows.Count, 3).End(xlUp).Row + 1
    End If
    
    ws2025.Cells(hedefSatir, 3).Value = veri
    Application.ScreenUpdating = False
  
    For i = 6 To 200
        If i <= ws2025.Rows.Count Then
            ws2025.Rows(i).Hidden = True
        End If
    Next i
    
    If 202 <= ws2025.Rows.Count Then
        ws2025.Rows(202).Hidden = False
    End If
    
    Application.ScreenUpdating = True
    
    MsgBox "İşlem tamamlandı!", vbInformation, "Makro"
End Sub
 
Katılım
22 Ocak 2019
Mesajlar
114
Excel Vers. ve Dili
Excel 2010
Öncelikle ilginize çok teşekkür ederim.

Altı çizili yerler yine aynı, hata kodu değişti; "this command will stop the debugger"
 
Üst