Makro ile diğer sayfaya otomatik kayıt

Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Merhabalar....
Excelde personel için izin formu yaptım. bu form da izin yaptığım personellerin otomatik olarak veri sayfasına yazmasını ve her yaptığım izini dolu satırın altına otomatik olarak yazmak istiyorum..

sayfa1 de bulunan izin formunda
d5 hücresine personel sicili yazılı
d6 hücresinde personel adı ve soyadı yazılı
d8 hücresinde personel ünvanı yazılı
d11 hücresinde personelin izine çıkış tarihi
j11 hücresinde personelin izin dönüş tarihi yazılı
a10 hücresinde personelin izin toplam günü yazmakta

yukarıdaki hücrelerde bulunan bilgileri sayfa1 in yanında bulunan veri sayfasındaki
sayfa1 de bulunan D5 hücresindeki değerler veri sayfasının B2 hücresine (her yeni kayıttan sonra bu kayıtı silmeden b3,b4,b5, vs yazdırılacak şekilde)
sayfa1 de bulunan D6 hücresindeki değerler veri sayfasının C2 hücresine (
sayfa1 de bulunan D8 hücresindeki değerler veri sayfasının D2 hücresine
sayfa1 de bulunan D11 hücresindeki değerler veri sayfasının E2 hücresine
sayfa1 de bulunan J11 hücresindeki değerler veri sayfasının F2 hücresine
sayfa1 de bulunan A11 hücresindeki değerler veri sayfasının G2 hücresine
otomatik yazdırmak istiyorum...
umarım anlatabilmişimdir.

yardımlarınız için şimdiden teşekkür ederim
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
Sub Gonder()
    Dim SonSatir As Integer
    With Worksheets("Veri")
        SonSatir = .Cells(Rows.Count, "B").End(xlUp).Row + 1
        .Cells(SonSatir, "B") = Worksheets("Sayfa1").Range("D5")
        .Cells(SonSatir, "C") = Worksheets("Sayfa1").Range("D6")
        .Cells(SonSatir, "D") = Worksheets("Sayfa1").Range("D8")
        .Cells(SonSatir, "E") = Worksheets("Sayfa1").Range("D11")
        .Cells(SonSatir, "F") = Worksheets("Sayfa1").Range("J11")
        .Cells(SonSatir, "G") = Worksheets("Sayfa1").Range("A11")
    End With
End Sub
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
öncelikle ilginiz için teşekkür ederim muzaffer bey;
yazdığınız kodu veri sayfasının kod bölümüne yapıştırdım yeni kayıt yaptım ancak aktarma olmadı. ancak kod bölümüne gittiğimde kodu çalıştır dediğimde çalıştırdı
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kodu bir butona tanımlayabilirsiniz. Tıklayıp çalıştırırsınız.
Yada ne yapınca aktarılmasını istediğinizi belirtmelisiniz ki ona göre çözüm üretebilelim.
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Bende öyle yaptım muzaffer bey düğme ekledim makroyu tanımladım. güzel çalışıyor teşekkür ederim. şöyle de bir alternatif olabilir mi a10 hücresi seçili iken entere basınca kayıt yapabilir mi ?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Sayfanın kod sayfasına aşağıdaki kodları kopyalayın.

A10 hücresinde bir değişiklik olduğunda kodlar çalışır.
Seçilince değil hücre içeriği değiştirilip Entere basınca çalışır
Dilerseniz "A10" yerine istediğiniz hücre adresini yazabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim SonSatir As Integer
    If Not Intersect(Target, Range("A10")) Is Nothing Then
        With Worksheets("Veri")
            SonSatir = .Cells(Rows.Count, "B").End(xlUp).Row + 1
            .Cells(SonSatir, "B") = Worksheets("Sayfa1").Range("D5")
            .Cells(SonSatir, "C") = Worksheets("Sayfa1").Range("D6")
            .Cells(SonSatir, "D") = Worksheets("Sayfa1").Range("D8")
            .Cells(SonSatir, "E") = Worksheets("Sayfa1").Range("D11")
            .Cells(SonSatir, "F") = Worksheets("Sayfa1").Range("J11")
            .Cells(SonSatir, "G") = Worksheets("Sayfa1").Range("A11")
        End With
    End If
End Sub
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
teşekkür ederim muzaffer bey elinize sağlık kod güzel çalışıyor yanlız kod veri sayfasının a10 hücresinde çalışıyor oysaki benim form sayfa1 de acaba veri sayfasında değilde "a10"u sayfa1 de çalıştırmamız mümkünmü
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Bence bunu siz de yapabilirsiniz.
Kodlarda bulunan Sayfa1 yerine Veri, Veri yerine Sayfa1 yazmanız yeterli. Bu kadar basit yani.
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Sheets("sayfa1").Select diyerek hallettim teşekkür ederim muzaffer bey elinize emeğinize sağlık
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
O şekilde nasıl halloldu anlayamadım ama eğer olduysa tamamdır.
Ben de teşekkür ederim. Kolay gelsin.
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("sayfa1").Select
Dim SonSatir As Integer
If Not Intersect(Target, Range("A10")) Is Nothing Then
With Worksheets("Veri")
SonSatir = .Cells(Rows.Count, "B").End(xlUp).Row + 1
.Cells(SonSatir, "B") = Worksheets("Sayfa1").Range("D5")
.Cells(SonSatir, "C") = Worksheets("Sayfa1").Range("D6")
.Cells(SonSatir, "D") = Worksheets("Sayfa1").Range("D8")
.Cells(SonSatir, "E") = Worksheets("Sayfa1").Range("D11")
.Cells(SonSatir, "F") = Worksheets("Sayfa1").Range("J11")
.Cells(SonSatir, "G") = Worksheets("Sayfa1").Range("A11")
End With
End If
End Sub

bu şekilde yaptım muzaffer bey gayet güzel çalışıyor
 
Üst