• DİKKAT

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

Makro işlemi

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
iyi günler; çok sık kullandığın makro genel işlem olarak çalışma sayfasındaki satıra çift tıkladığımda , o satır tamamıyla başka bir çalışma sayfasına gidiyor ve tıkladığım yerde siliniyor. Normal kullanımda sorun yok. çalışma sayfasındaki değer formülle gelen değer ise başka sayfaya aktarıldığında değeri kayboluyor. bu aktarma işleminde formüllü değilde değeri değer olarak aktarmak istiyorum.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("E2:E65536")) Is Nothing Then Exit Sub
Range(Cells(Target.Row, 1), Cells(Target.Row, 5)).Copy Sheets("EKSIKLER").[E65536].End(xlUp).Offset(1, -4)
Range(Cells(Target.Row, 1), Cells(Target.Row, 5)).Delete xlUp
Cancel = True
End Sub
Şimdiden teşekkür ederim
 

Ekli dosyalar

  • Resim_1.jpg
    Resim_1.jpg
    151.3 KB · Görüntüleme: 6
  • Resim_2.jpg
    Resim_2.jpg
    78.8 KB · Görüntüleme: 6
ikisinden biri aynı işi görür.
ben ilk yöntemi tercih ederim.

1:
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
        If .Column <> 5 Then Exit Sub
        Sheets("EKSIKLER").Range("E" & Rows.Count).End(xlUp).Offset(1, -4).Resize(1, 5).Value = Range("A" & .Row & ":E" & .Row).Value
        Rows(.Row).Delete
    End With
  
    Cancel = True

End Sub

2:
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
        If .Column <> 5 Then Exit Sub
        Range("A" & .Row & ":E" & .Row).Copy
        Sheets("EKSIKLER").Range("E" & Rows.Count).End(xlUp).Offset(1, -4).PasteSpecial xlPasteValues
        Rows(.Row).Delete
    End With
  
    Cancel = True

End Sub
 
ikisinden biri aynı işi görür.
ben ilk yöntemi tercih ederim.

1:
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
        If .Column <> 5 Then Exit Sub
        Sheets("EKSIKLER").Range("E" & Rows.Count).End(xlUp).Offset(1, -4).Resize(1, 5).Value = Range("A" & .Row & ":E" & .Row).Value
        Rows(.Row).Delete
    End With
 
    Cancel = True

End Sub

2:
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
        If .Column <> 5 Then Exit Sub
        Range("A" & .Row & ":E" & .Row).Copy
        Sheets("EKSIKLER").Range("E" & Rows.Count).End(xlUp).Offset(1, -4).PasteSpecial xlPasteValues
        Rows(.Row).Delete
    End With
 
    Cancel = True

End Sub
teşekkürler; 1.ci güzel ama YENİLENEN sayfasında silmesi doğruda , EKSİKLER sayfasında alt alta biriktirmesi gerekiyor, orada siliyor. EKSİKLER sayfasında silinmeden birikmesini sağlayabilir miyiz. iyi çalışmalar.
 
tam olarak o işi yapıyor.
test edildi; onaylandı.

kodu kopyalanacak ve silinecek verilerin bulunduğu sayfanın kod modülüne kopyalayacaksınız.
 
çünkü E sütununda veri yok
ve son satır bu sütuna göre hesaplandığından (bkz ilk mesajdaki Sheets("EKSIKLER").[E65536]. End(xlUp).Offset(1, -4)) hep aynı yere gidiyor.

aşağıdaki kodu deneyin. yine E sütununda çift tık ile tetikleniyor ve o satırın A-D sütun hücrelerini EKSIKLER sayfasında A sütunundaki sun verinin alındaki A-D hücrelerine yazıyor.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
        If .Column <> 5 Then Exit Sub
        Sheets("EKSIKLER").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, 4).Value = Range("A" & .Row & ":D" & .Row).Value
        Rows(.Row).Delete
    End With

    Cancel = True

End Sub


not: sayfa isimleri aşağıdaki gibi:
YENİLENEN
EKSIKLER
ikisini de ya I yapın ya da İ.

standardizasyon bir alışkanlık olmalı.
kolay gelsin.
 
çünkü E sütununda veri yok
ve son satır bu sütuna göre hesaplandığından (bkz ilk mesajdaki Sheets("EKSIKLER").[E65536]. End(xlUp).Offset(1, -4)) hep aynı yere gidiyor.

aşağıdaki kodu deneyin. yine E sütununda çift tık ile tetikleniyor ve o satırın A-D sütun hücrelerini EKSIKLER sayfasında A sütunundaki sun verinin alındaki A-D hücrelerine yazıyor.

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
        If .Column <> 5 Then Exit Sub
        Sheets("EKSIKLER").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, 4).Value = Range("A" & .Row & ":D" & .Row).Value
        Rows(.Row).Delete
    End With

    Cancel = True

End Sub


not: sayfa isimleri aşağıdaki gibi:
YENİLENEN
EKSIKLER
ikisini de ya I yapın ya da İ.

standardizasyon bir alışkanlık olmalı.
kolay gelsin.
İlginize teşekkür ederim, sorunsuz çalışıyor. Hayırlı akşamlar.
 
rica ederim.
işlerinizde kolaylıklar.
 
Geri
Üst