Satırdaki veriler girildiğinde formülleri alt satıra kopyalama

Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
tabloda örneğin C1 hücresine veri girdiğimde C satırındaki formülleri D satırına kopyalaması gerekiyor. D1 hücresine de veri girildiğinde de aynı şekilde formülleri E satırına kopyalayacak. yardımcı olabilirmisiniz
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [c1:e1]) Is Nothing Then Exit Sub
If [c1] > 1 Then
[c2].Copy
[d2].PasteSpecial
End If
If [d1] > 1 Then
[d2].Copy
[e2].PasteSpecial
End If
Application.DataEntryMode = False
End Sub
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Kusura bakmayın yanlış tarif etmişim sanırım. ben satır doldukça alt satıra kopyalamaya çalışıyordum. yani c1 hücresine veri girildiğinde 1. satırdaki formülleri ikinci satıra c2 hücresine veri girildiğinde 2. satırdaki formülleri 3. satıra kopyalamaya çalışıyorum.bu şekilde sayfanın sonuna kadar gitmeye çalışıyorum.yani formül her satırı doldurduğumda alta bi boş satır daha açmalı. tabii formülleri içeren bir satır.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Örnek bir dosya eklermisiniz.
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Aslında benim kullanacağım tablo ektekine benzer bir şey. Ekte renkli hücreler veri girdiğim yerler.renksiz hücrelerde formüllü hücreler. örnek olarak ben b4 hücresine veri girdiğimde 4. satırdaki formüllerin bi alt satıra kopyalanması daha doğrusu altına bi satır eklenip sadece formüllerin alta geçirmesi. zira böylece alttaki tablolarda zarar görmez.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu sayfanızın kod bölümüne uygulayıp denermisiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
    If Target = "Hesap" Or Target = "Kodu" Then Exit Sub
    If Target <> "" Then
    Application.EnableEvents = False
    Rows(Target.Row).Copy
    Rows(Target.Row + 1).Insert Shift:=xlDown
    Application.CutCopyMode = False
    Application.EnableEvents = True
    End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

&#220;stteki mesaj&#305;mdaki kod kopyalama y&#246;ntemi ile &#231;al&#305;&#351;&#305;yordu. A&#351;a&#287;&#305;daki kod ise sat&#305;r ekleyerek form&#252;lleri aktarmaktad&#305;r.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
    If Target = "Hesap" Or Target = "Kodu" Then Exit Sub
    If Target <> "" Then
    Rows(Target.Row + 1).Insert Shift:=xlDown
    Rows(Target.Row + 1).FormulaR1C1 = Rows(Target.Row).FormulaR1C1
    End If
End Sub
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
evet tam olarak istedi&#287;im bu &#231;ok sa&#287;olun. fakat makro b h&#252;cresine girdi&#287;im veriyide alt sat&#305;ra kopyal&#305;yor. sadece form&#252;lleri kopyalamas&#305; m&#252;mk&#252;n de&#287;ilmi.Ayr&#305;ca ters i&#351;lem olarak b h&#252;cresindeki veriyi sildi&#287;imde b&#252;t&#252;n sat&#305;r&#305; silmesi m&#252;mk&#252;nm&#252;
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

A&#351;a&#287;&#305;daki kodu denermisiniz. Yaln&#305;z dolu olan sat&#305;rlar&#305;n&#305;zda dikkatli kullan&#305;n h&#252;credeki veriyi sildi&#287;inizde sat&#305;r&#305; siliyor.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    If Target = "Hesap" Or Target = "Kodu" Then Exit Sub
    If Target = "" Then GoTo SON
    If Target <> "" Then
    Rows(Target.Row + 1).Insert Shift:=xlDown
    Rows(Target.Row + 1).FormulaR1C1 = Rows(Target.Row).FormulaR1C1
    SATIR = ActiveCell.Row
    Range("" & ("B" & SATIR & ":H" & SATIR & ",J" & SATIR & ":M" & SATIR & ",P" & SATIR)).ClearContents
    End If: Exit Sub
SON: Rows(Target.Row).Delete
End Sub
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Bu silme olay&#305; dedi&#287;iniz gibi sorun &#231;&#305;karabilir g&#246;z&#252;k&#252;yor. Buna bir msgbox ile &#231;&#246;z&#252;m bulabilirmiyiz. yani sat&#305;r&#305; silmeden &#246;nce onay isteyebilir mi acaba
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekteki örnek dosyayı incelermisiniz. Silme işlemini DELETE tuşuna göre ayarladım. Umarım faydası olur.
 
Son düzenleme:
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Çok daha kullanışlı olmuş fakat veriyi girdikten sonra ok tuşlarıyla hareket ettiğimde farklı tepkiler veriyor. mesela b sütununda bir hücreye veri girip yukarı ok tuşuna bastığımda satırı yine tamamen kopyalıyor. sağ veya sol ok tuşuna bastığımda da eski satırı yeni satırın altına atıyor.makro sadece enter tuşuna basıldığında yada aşşağı ok tuşuna basıldığında sorunsuz işliyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

&#220;stteki mesaj&#305;mdaki dosyay&#305; g&#252;ncelledim. &#304;ncelermisiniz.
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
&#199;ok g&#252;zel olmu&#351;. Kafan&#305;za sa&#287;l&#305;k :)
 
Üst