- Katılım
- 17 Kas 2023
- Mesajlar
- 1
- Aldığı beğeni
- 0
- Excel V
- Office 2016 TR
Konu Sahibi
Selamlar hocalarım, iyi forumlar.
Şirkette şubelerden gelen stok ve fiyat verilerini merkez veri tabanımıza işlemek için bir makroya ihtiyacım var. Formüllerle dinamik yapamadığım ve dosya çok şiştiği için bunu tamamen arka planda VBA ile çözmek istiyorum. Kod yazmaya çalıştım ama döngünün içinde mantık hatası yapıyorum, işin içinden çıkamadım.
Yapmak istediğim kurgu tam olarak şöyle:
Ekte paylaştığım dosyada iki tane sayfa var: Merkez_Stok ve Gelen_Sube_Verisi.
For Each döngüsüyle Match fonksiyonunu bir arada kullanmayı denedim. Ancak eşleşen kayıtları güncellerken sorun yokken, merkezde olmayan yeni kayıtları (PRD-006 gibi) döngüyü bozmadan en alt satıra nasıl ekleteceğimi bir türlü çözemedim. Ya sürekli aynı satırın üzerine yazıyor ya da sonsuz döngüye giriyor.
Dosyayı ekte paylaşıyorum. Performanslı çalışacak, optimize bir VBA kodu paylaşabilecek veya mantığı kurmamda yardımcı olacak hocalarıma şimdiden çok teşekkür ederim.
Şirkette şubelerden gelen stok ve fiyat verilerini merkez veri tabanımıza işlemek için bir makroya ihtiyacım var. Formüllerle dinamik yapamadığım ve dosya çok şiştiği için bunu tamamen arka planda VBA ile çözmek istiyorum. Kod yazmaya çalıştım ama döngünün içinde mantık hatası yapıyorum, işin içinden çıkamadım.
Yapmak istediğim kurgu tam olarak şöyle:
Ekte paylaştığım dosyada iki tane sayfa var: Merkez_Stok ve Gelen_Sube_Verisi.
- Makro, Gelen_Sube_Verisi sayfasındaki "A" sütunundaki Ürün Kodlarını tek tek okuyacak.
- Bu kodları Merkez_Stok sayfasındaki "A" sütununda arayacak.
- Eğer ürün Merkez listesinde varsa:
- Gelen_Sube_Verisi sayfasındaki Şube Stoğu değerini, merkezdeki Mevcut Stok hücresine üzerine yazacak (güncelleyecek).
- Eğer gelen verideki Yeni Fiyat, merkezdeki fiyattan farklıysa fiyata da güncelleyecek.
- Güncelleme yapılan satırın en sonundaki "Son Güncelleme" sütununa o günün tarihini (Date) atacak.
- Eğer ürün Merkez listesinde YOKSA (yani yeni bir ürün kodu gelmişse):
- Bu ürünü Merkez_Stok sayfasındaki en son boş satıra yeni kayıt olarak ekleyecek (Ürün Kodu, Stok ve Fiyat bilgisiyle birlikte).
For Each döngüsüyle Match fonksiyonunu bir arada kullanmayı denedim. Ancak eşleşen kayıtları güncellerken sorun yokken, merkezde olmayan yeni kayıtları (PRD-006 gibi) döngüyü bozmadan en alt satıra nasıl ekleteceğimi bir türlü çözemedim. Ya sürekli aynı satırın üzerine yazıyor ya da sonsuz döngüye giriyor.
Dosyayı ekte paylaşıyorum. Performanslı çalışacak, optimize bir VBA kodu paylaşabilecek veya mantığı kurmamda yardımcı olacak hocalarıma şimdiden çok teşekkür ederim.