Hücreye girilen veriyi kaydırma Acil yardım :(

Kodla Büyü
Mesajlar
4
Merhabalar,

Yapmak istediğim Şu;

B3 hücresine veri girdiğimde entera bastıktan sonra bu veri C3 te görünecek,
B3 hücresine yeni veri girdiğimde eski veri C4 e kayacak ve yeni veri C3 te görünecek,
B3 hücresine her yeni veri girişinde eski veriler bir alt satıra kayacak.

ilk girilen değer C7 e ulaştığında yeni veri girildiği zaman tekrar başa dönerek c3 ten itibaren kaydırma devam edecek. 5 hücre sürekli bir döngüde kayma yapacak. C7 den sonra başa dönerek üzerine yazma şeklinde kaydırma döngüsü devam ettirilecek.

Umarım anlatabilmişimdir. :)
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
   Dim r As Range, v1, v2, v3, v4 As Variant
   On Error GoTo ErrHandler
   Set r = Me.Range("B3")
   If Target.Count > 1 Then Exit Sub
   Application.EnableEvents = False
   If Not Intersect(Target, r) Is Nothing Then
       v1 = Target.Value
       Application.Undo
       v2 = Target.Offset(1, 1).Value
       v3 = Target.Offset(2, 1).Value
       v4 = Target.Offset(3, 1).Value
       Target.Offset(4, 1).Value = v4
       Target.Offset(3, 1).Value = v3
       Target.Offset(2, 1).Value = v2
       Target.Offset(1, 1).Value = Target.Value
       Target.Offset(0, 1).Value = v1
        Target.Value = v1
  End If
ErrHandler:
Application.EnableEvents = True
End Sub

Buyrun biraz uğraştırdı ama sanırım istediğiniz bu
 
hocam kodun şu an ki hali işe yarıyor.
Veri girdiğimiz değeri referans alarak kayan satırlar ofset ile belirlenmiş açıkçası bu hiç aklıma gelmemişti. :) peki bu döngüye giren sütunları hücre bilgisi vererek istediğimiz bir hücreye yönlendirmek istesek nasıl bir değişiklik gerekir? şu an sadece meraktan soruyorum istediğimiz aldım ama öğrenmeye devam edeyim :)

tekrar çok teşekkür ederim
 
esbteknoloji' Alıntı:
hocam kodun şu an ki hali işe yarıyor.
Veri girdiğimiz değeri referans alarak kayan satırlar ofset ile belirlenmiş açıkçası bu hiç aklıma gelmemişti. :) peki bu döngüye giren sütunları hücre bilgisi vererek istediğimiz bir hücreye yönlendirmek istesek nasıl bir değişiklik gerekir? şu an sadece meraktan soruyorum istediğimiz aldım ama öğrenmeye devam edeyim :)

tekrar çok teşekkür ederim
Ofset yerine range kullanabilirsiniz:

Kod:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
   Dim r As Range, v1, v2, v3, v4 As Variant
   On Error GoTo ErrHandler
   Set r = Me.Range("B3")
   If Target.Count > 1 Then Exit Sub
   Application.EnableEvents = False
   If Not Intersect(Target, r) Is Nothing Then
       v1 = Target.Value
       Application.Undo
       v2 = Range("C4").Value
       v3 = Range("C5").Value
       v4 = Range("C6").Value
       Range("C7").Value = v4
       Range("C6").Value = v3
       Range("C5").Value = v2
       Range("C4").Value = Target.Value
       Range("C3").Value = v1
        Target.Value = v1
  End If
ErrHandler:
Application.EnableEvents = True
End Sub
 
Bu kodları modül olarak mı eklediniz makroya mı eklediniz. Nasıl çalıştırılıyor.
 
mevzuat' Alıntı:
Bu kodları modül olarak mı eklediniz makroya mı eklediniz. Nasıl çalıştırılıyor.
Sayfa adının üzerine sağ tıklayıp, Kodu Görüntüle dedikten sonra gelen pencereye kodu yapıştırın, dosyayı .xlsm olarak kaydetmeyi unutmayın.
 
Geri
Üst