Soru Listeden buton ile başka listeye veri aktarma, verileri geri alma

Katılım
6 Ocak 2022
Mesajlar
29
Excel Vers. ve Dili
2013 türkçe
Selamlar,
Maliyet hesabında kullandığımız bir veri tablomuz var. Tablo tek bir tablo olmakla beraber 4 bölümden oluştuğu söylenebilir. Her bir satır ise yeni bir üretimi ifade ediyor.
Bölümlerden ilki "genel bilgiler" 5 sütunlu olup ürün adı, tarih, parti no, miktar, işçilik gibi zorunlu bilgileri içeriyor.
İkincisi "hesaplamalar" olup bunu excel kodları ile zaten çözmüş durumdayız.
Üçüncüsü "hammaddeler" olup her bir hammadde için miktar ve fire sütünları olmak üzere hammadde sayısı x 2 kadar sütun içeriyor.
Dördüncüsü "ambalajlar" olup yine ambalaj sayısı x 2 kadar sütun içeriyor.
Toplamda sütun sayısı 300"ün üzerinde. Üretilen ürüne göre hammadde ya da ambalajların birkaç tanesi kullanılıyor. Yani 3. ve 4. bölümlerde çoğu sütun boş kalıyor. Bu kadar geniş bir tablo olduğu için veri girişinin yapılması çok zor olmakta. Bunu çözmek üzere başka bir çalışma sayfasına 3 ayrı tablo oluşturduk. Bu tablolara veri giriş yapıldıktan sonra "YÜKLE", "GERİ AL" ve "TEMİZLE" bütonlarını kullanarak veri tablomuza giriş yapmayı zor yoldan (her bir hücre için ayrı kod girerek) başardık.

Bir adet mini örnek dosya hazırladım. Burada oluşturduğumuz çalışan kodları da ekledim. Bunu daha kolay ve pratik olarak nasıl yaparız?

Örnek dosya

Not: Kendi kodlarımı150 sütunlu dosyama bir şekilde uyarladım. Ama 300+ olanda çalıştırmayı dahi başaramadım.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Merhaba,
Ekte örnek bir çalışma paylaştım.
Tarih kısmına mouse ile sol tıklamanız durumunda takvim açılmakta olup tarih girişini bu şekilde yapabilirsiniz.
Geliştirilebilir. Mesela mevcut kayıt bul, sil, mevcut kayıtta değişiklik yap gibi bir çok seçenek eklenebilir.
Detaylı bir çalışma istiyor iseniz dm den iletişime geçiniz. Bu tür bir çalışma yeterlidir diyor iseniz kendiniz geliştirebilirsiniz biraz araştırma yaparak.
Başarılar, iyi çalışmalar.

Linkten de dosyaya ulaşabilirsiniz;
 

Ekli dosyalar

Son düzenleme:
Katılım
6 Ocak 2022
Mesajlar
29
Excel Vers. ve Dili
2013 türkçe
İlginiz için teşekkürler,

Asıl dosyalarımın bir tanesinde 60 adet hammadde ve 94 adet ambalaj bulunuyor. Bu yüzden bir arayüz kullanımı zorlayıcı olur diye düşünüyorum.

"Giriş" sayfasında yer alan üç tablo doldurularak yine "Giriş" sayfasındaki üç buton ile verileri "Veri" sayfasına aktarmam gerekiyor. Benim yazdığım kodlar çalışıyor, yalnız (60+94)x2=308 adet hücre için ayrı ayrı kod yazmam ve bir hammadde ya da ambalaj eklendiğinde yine kod eklemem vb. işlemleri gerektiriyor. VBA'da çok yeniyim. Araştırarak bu kadarını bulabildim. Bunu daha basite nasıl indirgeyebiliriz diye çözüm aramaktayım. (Ayrıca belirtmem gerekirse 308 hücrelik dosyamda kodları çalıştıramadım. 144 hücrelik dosyamda ise şuan çalışıyor ve aktif olarak kullanmaktayım.)

Aynı zamanda çok fazla kod yazılı olduğundan ve sanırım çalışma sayfası geçişleri de olduğundan "YÜKLE" ya da "GERİ AL" butonlarına bastığımda kullandığım bilgisayarda 9-10 saniye kadar işlem süresi gerekiyor. Yüklediğim örnek dosya çok az satır içerdiği için beklemeyi gözlemlemek mümkün değil.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Başarılar...
 
Katılım
6 Ocak 2022
Mesajlar
29
Excel Vers. ve Dili
2013 türkçe
Çözüme çok yaklaştım.

Bu çalışan kodlar
Kod:
Worksheets("Veri").Range("A2").End(xlDown).Offset(1, 0).Value = Range("B2")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 1).Value = Range("B3")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 2).Value = Range("B4")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 3).Value = Range("B5")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 4).Value = Range("B6")
Bunlar ise çalıştırmaya çabaladığım kodlar
Kod:
Worksheets("Veri").Range("A2").End(xlDown).Offset(1, 0).Value = Range("B2")
For i = 3 To 6 Step 2
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, i - 2).Value = Range("B" & i)
Next i
B3 ve B5 için çalışıyor, ama B4 ve B6 için çalışmıyor. Neyi gözden kaçırıyorum, doğrusu nasıl olmalı?
 
Katılım
6 Ocak 2022
Mesajlar
29
Excel Vers. ve Dili
2013 türkçe
Çözüme çok yaklaştım.

Bu çalışan kodlar
Kod:
Worksheets("Veri").Range("A2").End(xlDown).Offset(1, 0).Value = Range("B2")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 1).Value = Range("B3")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 2).Value = Range("B4")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 3).Value = Range("B5")
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, 4).Value = Range("B6")
Bunlar ise çalıştırmaya çabaladığım kodlar
Kod:
Worksheets("Veri").Range("A2").End(xlDown).Offset(1, 0).Value = Range("B2")
For i = 3 To 6 Step 2
Worksheets("Veri").Range("A2").End(xlDown).Offset(0, i - 2).Value = Range("B" & i)
Next i
B3 ve B5 için çalışıyor, ama B4 ve B6 için çalışmıyor. Neyi gözden kaçırıyorum, doğrusu nasıl olmalı?
Step 1 yaptım düzeldi. Teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ek bilgi..

Eğer For-Next döngüsünde adımlama (Step) kullanılmayacaksa Step 1 yazmanıza gerek yoktur. Kullanılan döngü doğası gereği zaten 1 adımlama yaparak ilerleyecektir.
 
Üst