• DİKKAT

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

Makro İle Son Girilen Devam Etsin

  • Konbuyu başlatan Konbuyu başlatan ormann
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
İyi günler ;
ekli örnek dosyada G15:G5000 hücre aralığına herhangi bir rakam girdiğim zaman F15:F5000 hücre aralığındaki en son satırda girdiğim veri hangisi ise G15:G5000 hücre aralığında işlem yaparsam F sütündai karşılığına aynı veriyi yazmaya otomatik olarak yazmasını istiyorum.Yardımcı olur musunz?


http://dosya.co/vv1oknieo7kv/Örnek.xls.html
 
Merhaba.

Alt taraftan, işlem yapılacak sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
açılan VBA ekranında sağdaki BOŞ alana aşağıdaki kod'u yapıştırın.

Kod'da;
-- siyah renkli satırlar istediğiniz işlemi yapar,
-- kırmızı renklendirdiğim kısım ise, G sütununda daha evvel yazılmış bir veri silindiğinde, aynı satır F sütunundaki veriyi de siler.

Silme işlemini istemiyorsanız, kırmızı renklendirdiğim kısmı silerek kullanın.
.
Kod:
[B][COLOR="blue"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR][/B]
If Target.Row > 14 And Target.Column = 7 And Target <> "" Then _
    Cells(Target.Row, 6) = Cells(Cells(Rows.Count, 6).End(3).Row, 6)
[COLOR="Red"]If Target.Row > 14 And Target.Column = 7 And Target = "" Then _
    Cells(Target.Row, 6) = ""[/COLOR]
[B][COLOR="Blue"]End Sub[/COLOR][/B]
 
Ömer bey şu kodu ,yapmış olduğunuz koda nasıl ilave ederiz.

Kod:
If Intersect(Target, [ID4]) Is Nothing Then Exit Sub
Call Module1.tarih_ekle
 
G'yi silince F'nin de silinmesini isteyip istemediğinizi bilemiyorum.
Silme işlemini istemiyorsanız kırmızı kısmı silerek kullanın.
.
Kod:
[B][COLOR="Blue"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR][/B]
If Target.Row > 14 And Target.Column = 7 And Target <> "" Then
    Cells(Target.Row, 6) = Cells(Cells(Rows.Count, 6).End(3).Row, 6)
    Exit Sub
[COLOR="Red"]ElseIf Target.Row > 14 And Target.Column = 7 And Target = "" Then _
    Cells(Target.Row, 6) = ""
    Exit Sub[/COLOR]
End If

If Intersect(Target, [ID4]) Is Nothing Then Exit Sub
Call Module1.tarih_ekle
[B][COLOR="Blue"]End Sub[/COLOR][/B]
 
Ömer bey asıl dosyamda devamlı Kn yazdığım halde Kayın yazıyor.Aynı Şekilde Gn yazıyorum Yine Kayın yazıyor
 
Alt tarafta bir hücrede Kayın kelimesinin yazılı olduğu bir hücre vardır.
İsteğinizi netleştirmemenizden kaynaklanan bir durum.

Verdiğim kod, F sütunu son satırdan (F65536) yukarı doğru ilk dolu hücredeki veriyi yazacak şekilde hazırlandı.

Yok eğer, en son hücreden değil, aktif hücrenin satırından yukarı doğru ilk dolu hücredeki değer
isteniyorsa ilgili kod satırındaki Rows.Count ibaresini Target.Row olarak değiştirin.
.
 
Ömer bey şu kod hata veriyor
Kod:
If Target.Row > 14 And Target.Column = 7 And Target <> "" Then
 
Benim bilgisayarımda Calender çalıştıramadığımdan deneme şansım yok.

Çözüm olarak şunu önereyim.
-- Dikili Girişi sayfasına ait mevcut kodu silip yerine aşağıdakini yapıştırın (tarih_ekle makrosunu sayfa kodlarının içerisine ekledim).
-- Module1'deki tarih_ekle makrosunu silin.
.
Kod:
[B][COLOR="Blue"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR][/B]
If Intersect(Target, Range("ID4:G" & Rows.Count)) Is Nothing Then Exit Sub
If Target.Row > 14 And Target.Column = 7 And Target <> "" Then
    Cells(Target.Row, 6) = Cells(Cells(Target.Row, 6).End(3).Row, 6)
    Exit Sub
ElseIf Target.Row > 14 And Target.Column = 7 And Target = "" Then _
    Cells(Target.Row, 6) = ""
    Exit Sub
ElseIf Target.Address(0, 0) = "ID4" Then
    SonSatir = Cells(65536, "G").End(xlUp).Row
        For i = 15 To SonSatir
            If Cells(i, "G") <> Empty Then
                Cells(i, "D") = CDate([ID4])
            End If
        Next
End If
[B][COLOR="blue"]End Sub[/COLOR][/B]
 
Merhaba,
Ömer Bey'in anlayışına sığınarak konuya dahil olayım. ID4 birleştirilmiş hücre olduğu için hata alıyorsunuz. Birleştirmeyi iptal edip hücre genişlik ayarıyla ilgili alanın büyümesini sağlayabilirsiniz.
İyi çalışmlar...
 
Ömer bey kod çalıştı.Fakat en son girilen veri devam etmiyor.Tarihte ki sıkıntı düzeldi.Ama en son girilen veri devam etmiyor.
 
Kod:
Cells(Target.Row, 6) = Cells(Cells(Target.Row[B][COLOR="Red"] + 1[/COLOR][/B], 6).End(3).Row, 6)
 
Geri
Üst