Excell'de Durum kısmındaki ismi değiştirdiğimde başka sayfaya satırı taşısın istiyorum. Yardım!

Katılım
8 Temmuz 2025
Mesajlar
2
Excel Vers. ve Dili
E-tablo
Merhaba

Bir excell tablom var son kısmında Durum kısmı var ve burada açılabilir bar sekmesi var bu sekmede Görüşüldü, onaylanmadı, bekliyor, ajansa bağlı çalışmayı düşünmüyor seçenekleri var. Bunları duruma göre değiştiriyoruz. Benim istediğim boş bir bar'ı Görüşüldü ve ya başka bir seçenek yaptığımda yeni açmış olduğum ona karşılık gelen başka bir sayfaya otomatik taşımasını istiyorum. Bunu nasıl yapabilirim?
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
887
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("D:D")) Is Nothing Then
        Dim Durum As String
        Dim RowNum As Long
        Dim SonSatir As Long
       
        RowNum = Target.Row
        Durum = Target.Value
       
        Select Case Durum
            Case "Görüşüldü"
                SonSatir = Sheets("Görüşüldü").Cells(Rows.Count, "A").End(xlUp).Row + 1
                Sheets("Görüşüldü").Range("A" & SonSatir & ":K" & SonSatir).Value = Me.Range("A" & RowNum & ":K" & RowNum).Value
               
            Case "Onaylanmadı"
                SonSatir = Sheets("Onaylanmadı").Cells(Rows.Count, "A").End(xlUp).Row + 1
                Sheets("Onaylanmadı").Range("A" & SonSatir & ":K" & SonSatir).Value = Me.Range("A" & RowNum & ":K" & RowNum).Value
               
            Case "Bekliyor"
                SonSatir = Sheets("Bekliyor").Cells(Rows.Count, "A").End(xlUp).Row + 1
                Sheets("Bekliyor").Range("A" & SonSatir & ":K" & SonSatir).Value = Me.Range("A" & RowNum & ":K" & RowNum).Value
               
            Case "Ajansa Bağlı Çalışmayı Düşünmüyor"
                SonSatir = Sheets("Ajansa Bağlı Çalışmayı Düşünmüyor").Cells(Rows.Count, "A").End(xlUp).Row + 1
                Sheets("Ajansa Bağlı Çalışmayı Düşünmüyor").Range("A" & SonSatir & ":K" & SonSatir).Value = Me.Range("A" & RowNum & ":K" & RowNum).Value
        End Select
    End If
End Sub
Kodları Module ekleyiniz
Çalışma sayfanızdaki, bir hücredeki değişikliği izler ve hangi hücrenin değiştiğine bakar.
Kod, Durum sütunundaki (bu örnekte D sütunu) her değişikliği izler.
Eğer Durum kısmındaki değerler "Görüşüldü", "Onaylanmadı", "Bekliyor", ya da "Ajansa Bağlı Çalışmayı Düşünmüyor" gibi bir seçenek olursa, o satırdaki veriyi ilgili sayfaya (örneğin Görüşüldü sayfasına) taşır.
Me.Cells(RowNum, 1).Value ifadesi ile o satırdaki ilk hücreyi (A sütunu) taşıyoruz, ihtiyacınıza göre başka hücreleri de taşıyabilirsiniz.

********************************
Hedef Sayfalar: Kodu çalıştırmadan önce Görüşüldü, Onaylanmadı, Bekliyor, Ajansa Bağlı Çalışmayı Düşünmüyor gibi sayfaların mevcut olduğundan emin olun. Eğer bu sayfalar yoksa, Excel hata verebilir.
Satır Taşıma: Bu kod sadece A sütunundaki veriyi taşıyor, ancak ihtiyacınıza göre farklı sütunları taşıyacak şekilde kodu genişletebilirsiniz.

Bu adımları izlerseniz, durum seçildikçe ilgili sayfaya otomatik olarak veri taşıma işlemini gerçekleştirebilirsiniz.
 
Son düzenleme:
Katılım
8 Temmuz 2025
Mesajlar
2
Excel Vers. ve Dili
E-tablo
Çok teşekkür ederim çok işime yaradı ancak düzeltemediğim bir kısım oldu örneğin onaylanmadı diyeceğim A'dan K ye kadar ki satırı taşısın istiyorum

Case "Onaylanmadı"
Sheets("Onaylanmadı").Range("A:K" & Rows.Count).End(xlUp).Offset(1, 0).Value = Me.Cells(RowNum, 1).Value

burdaki gibi A:K'mi yapmalıyım. Denedim ama hata aldım
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
887
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
2 nolu mesajı tekrar düzenledim.Tekrar deneyiniz

Me.Range("A" & RowNum & ":K" & RowNum) → aktif sayfadaki A:K aralığını alır.
.Value ile hücre bloklarını birebir kopyalarsın.
End(xlUp).Row + 1 → ilgili sayfada boş ilk satırı bulur.
Bu şekilde hem satırın tamamını taşırsın hem de hata almazsın.
 
Üst