• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Soru VBA ile İki Sayfa Arası Karşılaştırma, Döngüyle Satır Güncelleme ve Olmayan Kayıtları Alta Ekleme

Bahadir.B

Yeni Üye
Aktivite

0%

Katılım
17 Kas 2023
Mesajlar
1
Aldığı beğeni
0
Excel V
Office 2016 TR
Konu Sahibi
Windows 10 Google Chrome 151
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.
  1. Makro, Gelen_Sube_Verisi sayfasındaki "A" sütunundaki Ürün Kodlarını tek tek okuyacak.
  2. Bu kodları Merkez_Stok sayfasındaki "A" sütununda arayacak.
  3. 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.
  4. 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).
Sıkıntı yaşadığım yer:
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.
 

Ekli dosyalar

Windows 10 Google Chrome 151
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.
  1. Makro, Gelen_Sube_Verisi sayfasındaki "A" sütunundaki Ürün Kodlarını tek tek okuyacak.
  2. Bu kodları Merkez_Stok sayfasındaki "A" sütununda arayacak.
  3. 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.
  4. 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).
Sıkıntı yaşadığım yer:
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.
Deneyiniz

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 

Ekli dosyalar

Geri
Üst