Sıralı gelecek şekilde veri aktarmak

Katılım
4 Eylül 2006
Mesajlar
80
Excel Vers. ve Dili
2000
Arkadaşlar ekteki dosyamda veri giriş sayfasındaki verileri aktar tuşuna basıldığında aynı sayfadaki verileri Tablo sayfasındaki verilerin altına ekleyebilecek bir kod nasıl yazılır. Değerler her seferinde farklı sayıda olduğu için ve arada boşluk kalmamasını istediğim için ben yapamadım bir türlü.
yardım ederseniz sevinirim.
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Set SV = Sheets("Veri Giriş")
    Set ST = Sheets("Tablo")
    SV.Select
    [B5:E5].Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    ST.Select
    ST.Range("A65536").End(3).Offset(1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ST.[A1].Select
    SV.Select
    [A1].Select
    Set SV = Nothing
    Set ST = Nothing
    MsgBox "KAYITLAR AKTARILMIŞTIR.", vbInformation
End Sub
 
Katılım
4 Eylül 2006
Mesajlar
80
Excel Vers. ve Dili
2000
sn COST CONTROL,
denedim ve çalıştı, inanın yeni bir cihaz almış kadar sevindim
çok çok sağolun... iyi çalışmalar,
 
Katılım
4 Eylül 2006
Mesajlar
80
Excel Vers. ve Dili
2000
Verdiğiniz örnek çalışıyor fakat sadece 1 tane veri gireceğim zaman kopyalanan alanla yapıştırma yerinin alanının boyutları uymadığına dair hata veriyor,
yani tek sıralı parçaları giremiyorum,
bir çözümü varmıdır? örneği ekte gönderiyorum.
 
Son düzenleme:

Korhan Ayhan

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

Pardon bu ayrıntı gözümden kaçmış. Kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Set SV = Sheets("Veri Giriş")
    Set ST = Sheets("Tablo")
    SV.Select
    If [B5] = "" Then Exit Sub
    If [B6] = "" Then
    [B5:E5].Select
    Else
    [B5:E5].Select
    Range(Selection, Selection.End(xlDown)).Select
    End If
    Selection.Copy
    ST.Select
    ST.Range("A65536").End(3).Offset(1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ST.[A1].Select
    SV.Select
    [A1].Select
    Set SV = Nothing
    Set ST = Nothing
    MsgBox "KAYITLAR AKTARILMIŞTIR.", vbInformation
End Sub
 
Katılım
4 Eylül 2006
Mesajlar
80
Excel Vers. ve Dili
2000
sayın COST CONTROL,
elinize sağlık, şimdi sorunsuz çalışıyor,
bir şey daha sorsam; kodlar hakkında pek bilgim yok ama makrolar visula basic editöründe düzenleniyor fakat bu kodlar tamamen visual basic kodları değil dimi, ben bir ara uğraştım ama v.b.de çalışmamıştı. Yani sizin gibi kodlara müdehale edebilmemiz için v.b'mi öğrenmemiz gerekli yoksa makroların kendine ait bir dilimi var,
ve yardımınız için çok teşekkürler:)
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Alternatif : Ekli dosyayı inceleyiniz.
 
Katılım
4 Eylül 2006
Mesajlar
80
Excel Vers. ve Dili
2000
Sayın Seyit tiken,
elinize sağlık, fakat siz her hücre için ayrı ayrı yapmışsınız, aktardığımız sayfada boş hücre olunca aktaracağı bilgiyide aynı satıra değilde boş hücrenin altına ekliyor.
ayrıca formülün (End(3).Offset(1, 0) = [B5]) kısmını birazcık açıklarsanız çok sevinirim,
iyi çalışmalar:)
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Sayın Seyit tiken,
elinize sağlık, fakat siz her hücre için ayrı ayrı yapmışsınız, aktardığımız sayfada boş hücre olunca aktaracağı bilgiyide aynı satıra değilde boş hücrenin altına ekliyor.
ayrıca formülün (End(3).Offset(1, 0) = [B5]) kısmını birazcık açıklarsanız çok sevinirim,
iyi çalışmalar:)
Kodun mantığı : İlgili satıra değer girilip TABLO sayfasına aktarmasıdır. Yani toplu değilde, satırı tek tek aktarıyor. İlgili kod satırının anlamı : İlgili sütundaki dolu satırların ilk boş hücresi.
 
Katılım
4 Eylül 2006
Mesajlar
80
Excel Vers. ve Dili
2000
sayın Seyit tiken,
orasını anladım fakat formuldeki End(3).Offset(1, 0) yerine mesala End(4).Offset(2, 1) yapsam ne değişir,
kusura bakmayın daha önce kodlarla çok az çalıştımda
 
Üst