V

Çözüldü Aktarım ve güncelleme programı

van65166

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Ben boyumdan büyük bir projeye kalkıştım siz değerli üstatlarımın yardımı olmadan başaramayacağım.
Bana bağlı Türkiye genelinde 300 dükkan var bunların kullandığı tek tip asıl adında bir excel dosyası var
Ben ayda bir defa onlara başka bir excel dosyasında veri gönderiyorum ama her dükkana giden excel tablosu aynı fakat verisi varklı
Dükkanlar benim gönderdiğim veriyi ilgili tablolara yapıştırıyorlar. Fakat çoğu dükkan yanlış yere yapıştırdığı için akşam raporları yanlış geliyor
yanlış gelen raporu tespit edemiyorum.

Sizden istediğim ekte gönderdiğim 2 dosyada vba yardımı ile aktar dosyasındaki verileri asıl dosyasının içinde ilgili tabloya yapıştırması
yani ben aktar dosyasını mail attığımda onlar bir butona basıp ilgili veriler doğru yerlerine yapışsın ondan sonra zaten aktar dosyasının işi bitiyor.

Aktar dosyasında Toplam 4 tablo var

bunlar;
MS tablosu asıl Dashborad içinde CM18-CY49 hücre aralığına
KA tablosu asıl Dashborad içinde DA53-DM84 hücre aralığına
ST tablosu asıl Dashborad içinde T88-AF119 hücre aralığına
FS tablosu asıl Dashborad içinde DA17-DM49 hücre aralığına yerleşmesi gerekiyor.

Ayrıca tabloda boş olan hücrelerin yerine "0" değeri bırakması gerekli ayrıca olmayan ayların yerinede yine 0 olması gerekiyor kısacası tabloda boş hücre olmaması gerekiyor

Mesela önümüzdeki ayda güncel verileri gönderirsem aynı yerlere aktarırmı yoksa her ay yapmamız gerekirmi

Saygılarımla

drive.google.com

AKTAR DENEME.xlsx


drive_2020q4_32dp.webp
drive.google.com

drive.google.com

ASIL DENEME.xlsx


drive_2020q4_32dp.webp
drive.google.com
 
Forumumuza hoşgeldiniz Sayın @van65166 .

İstedikleriniz elbette kodlanabilir.
Kodlama mantığı da şöyle olur:
-- Eklenecek VERİ AL düğmesine tıklanır,
-- Açılan GÖZAT ekranından veri alınacak dosya bulunarak seçilir,
-- Seçilen dosyadan veriler ilgili konumlara aktarılarak işlem tamamlanır.
-- Bir sonraki dosyayı gönderdiğinizde aynı düğmeye tıklama ve işlemler aynı şekilde yapılır.

Ancak neden, verilerin yapıştırılacağı belgede, AKTAR belgesindeki sayfaların aynılarını oluşturup,
grafiklerin, verileri grafikle aynı sayfadan değil bu kopya veri sayfalarından almasını sağlamıyorsunuz?
Böyle bir yapı tasarlarsanız; hem görsel açıdan, hem sayfaları işlevlerine göre ayrıştırılmış olması ve hem de
kodlama bakımından daha kullanışlı olacağını düşünüyorum.

Böylece sayfanızda sadece grafik olur. veriler ise kendi yerlerinde.
Grafikler için hesaplamalar yapılacaksa bu hesaplamaları da verilerin bulunduğu sayfalarda yapmanız daha doğru olacaktır.

Kullanılan formülleriniz başka çalışma kitaplarına atıf yaptığından onlara müdahale etmek istemedim.
HATA değeri üreten formülleriniz, görebildiğim kadarıyla SAYI/SIFIR şeklindeki işlemlerden kaynaklanıyor.
Bu formülleri ya =EĞER(BÖLEN=0;0;BÖLÜNEN/BÖLEN) şeklinde ya da =EĞERHATA(mevcut formülünüz;0)
şeklinde kendiniz de düzeltebilirsiniz.

Hesaplamalarınızı ve grafiklerinizi detaylıca incelemiş değilim onu da belirteyim.
Belgelerinize ana hatlarıyla göz attım sadece ve yapıya yönelik fikrimi belirtmek istedim.

,
 
Forumumuza hoşgeldiniz Sayın @van65166 .

İstedikleriniz elbette kodlanabilir.
Kodlama mantığı da şöyle olur:
-- Eklenecek VERİ AL düğmesine tıklanır,
-- Açılan GÖZAT ekranından veri alınacak dosya bulunarak seçilir,
-- Seçilen dosyadan veriler ilgili konumlara aktarılarak işlem tamamlanır.
-- Bir sonraki dosyayı gönderdiğinizde aynı düğmeye tıklama ve işlemler aynı şekilde yapılır.

Ancak neden, verilerin yapıştırılacağı belgede, AKTAR belgesindeki sayfaların aynılarını oluşturup,
grafiklerin, verileri grafikle aynı sayfadan değil bu kopya veri sayfalarından almasını sağlamıyorsunuz?
Böyle bir yapı tasarlarsanız; hem görsel açıdan, hem sayfaları işlevlerine göre ayrıştırılmış olması ve hem de
kodlama bakımından daha kullanışlı olacağını düşünüyorum.

Böylece sayfanızda sadece grafik olur. veriler ise kendi yerlerinde.
Grafikler için hesaplamalar yapılacaksa bu hesaplamaları da verilerin bulunduğu sayfalarda yapmanız daha doğru olacaktır.

Kullanılan formülleriniz başka çalışma kitaplarına atıf yaptığından onlara müdahale etmek istemedim.
HATA değeri üreten formülleriniz, görebildiğim kadarıyla SAYI/SIFIR şeklindeki işlemlerden kaynaklanıyor.
Bu formülleri ya =EĞER(BÖLEN=0;0;BÖLÜNEN/BÖLEN) şeklinde ya da =EĞERHATA(mevcut formülünüz;0)
şeklinde kendiniz de düzeltebilirsiniz.

Hesaplamalarınızı ve grafiklerinizi detaylıca incelemiş değilim onu da belirteyim.
Belgelerinize ana hatlarıyla göz attım sadece ve yapıya yönelik fikrimi belirtmek istedim.

,
üstadım fikirlerin için sonsuz teşekkür ederim fakat yıllardır bu böyle devam etmiş bunu komple değiştirmek tüm dükkanlardaki veriyi yeniden düzeltip yeniden formül yapmak demek ayrıca size gönderdiğim dosya sadece örnek olsun diye 1 sayfa gönderdim normalde asıl dosyada 50 üzerinde sayfa var şimdi değiştirmeye kalksam bu 50 sayfanın formülleri yeniden yazılması lazım bunada benim ömrüm yetmez ayrıca =eğerhata() formülünü ben çok yakın zamanda öğrendim bu yüzden hepsine tek tek uygulamam gerekiyormuş yapamadım onunda hepsine uygulayacak şekilde bir formül arayışındayım fakat daha tesbit edemedim.
Arz ederim. Saygılarımla
Enis GÜVEN
 
İyi de Sayın GÜVEN, bu yazdığınız cümleler,
yapılacak kodlamanın gerçek belgenizde uygulnması sırasında sorun yaşamanız olasılığını artıran bir unsur.
Demekki belgeniz, cevaplarımın altındaki İMZA bölümünde yer alan açıklamalar doğrultusunda hazırlanmış örnek belgeler değil.

Siz şöyle mi planlıyorsunuz; 1 sayfaya göre kodlama yapılır sonra kendim bunu diğer sayfalara göre çoğaltırım, kopyalarım vs.
Böyle düşünüyorsanız yanlış yoldasınız, sıkıntı yaşamanız kaçınılmaz gibi görünüyor.

Örnek belgelerinizi link vererek değil, doğrudan forumumuza ekleyebilirsiniz.
Forumumuzun SORU-CEVAP bölümünde belge yüklemek ve indirmek için özel bir üyelik türü yoktur ve ücretsizdir (hatırlatayım).

Peki bu 50 sayfanın tümü aynı yapıda mıdır (tablo konumları, veri yapıştırılacak adresler vs) ?
Eğer öyle ise en azından, ya tüm sayfa isimleri bilinmelidir ya da istisna sayfa isimleri bilinip, bu isimlerin dışındaki tüm sayfalara aynı işlem yapılacak şeklinde bir sınırlama/belirleme yapılmalıdır.

Bence örnek belgelerinizi, gerçek belgenizi açıp F12 ile farklı kaydederek oluşturun.
Varsa gizli kalması gereken, özel bilgileri silin, bunlar kodlama/formüller açısından zorunlu bilgilerse anlamlı-tutarlı olmak üzere gerçek olmayan verilerle değiştirin.

Samimi fikrimi sorarsanız elinize. geçmişten gelen yapıyı değiştirme fırsatı gelmiş diye düşünmelisiniz.
Formüllerin tek tek bulunup hata vermeyecek şekilde düzenlenmesi biraz emek-zaman ayrılması gereken bir işlem.
Belirttiğim gibi formüllerin tümünü incelemiş değilim.
.
 
İyi de Sayın GÜVEN, bu yazdığınız cümleler,
yapılacak kodlamanın gerçek belgenizde uygulnması sırasında sorun yaşamanız olasılığını artıran bir unsur.
Demekki belgeniz, cevaplarımın altındaki İMZA bölümünde yer alan açıklamalar doğrultusunda hazırlanmış örnek belgeler değil.

Siz şöyle mi planlıyorsunuz; 1 sayfaya göre kodlama yapılır sonra kendim bunu diğer sayfalara göre çoğaltırım, kopyalarım vs.
Böyle düşünüyorsanız yanlış yoldasınız, sıkıntı yaşamanız kaçınılmaz gibi görünüyor.

Örnek belgelerinizi link vererek değil, doğrudan forumumuza ekleyebilirsiniz.
Forumumuzun SORU-CEVAP bölümünde belge yüklemek ve indirmek için özel bir üyelik türü yoktur ve ücretsizdir (hatırlatayım).

Peki bu 50 sayfanın tümü aynı yapıda mıdır (tablo konumları, veri yapıştırılacak adresler vs) ?
Eğer öyle ise en azından, ya tüm sayfa isimleri bilinmelidir ya da istisna sayfa isimleri bilinip, bu isimlerin dışındaki tüm sayfalara aynı işlem yapılacak şeklinde bir sınırlama/belirleme yapılmalıdır.

Bence örnek belgelerinizi, gerçek belgenizi açıp F12 ile farklı kaydederek oluşturun.
Varsa gizli kalması gereken, özel bilgileri silin, bunlar kodlama/formüller açısından zorunlu bilgilerse anlamlı-tutarlı olmak üzere gerçek olmayan verilerle değiştirin.

Samimi fikrimi sorarsanız elinize. geçmişten gelen yapıyı değiştirme fırsatı gelmiş diye düşünmelisiniz.
Formüllerin tek tek bulunup hata vermeyecek şekilde düzenlenmesi biraz emek-zaman ayrılması gereken bir işlem.
Belirttiğim gibi formüllerin tümünü incelemiş değilim.
.
Sayın üstadım gerçekten yardımlarınız için teşekkür ederim benim yüklediğim dosyaları sayfa isimleri ve yerleri değişmeyecek sadece sayfa isminde deneme yazan yer değişiyor yani nasıl anlatsam size verdiğim tablo tamamen doğru verileri barındırıyor sayfa isimleri hücre adresleri herşeyi aynı ayrıca benim en büyük sıkıntım çalışılmayan ay olduğu zaman bizim program ilgili dükkan için o ayı göstermiyor veyahut çalışılmayan günü göstermiyor karşı taraftaki sorumlu tabloyu yapıştırdığı zaman aralık daima boş kalmış oluyor fakat sizin verdiğiniz değerli bilgiler doğrultusunda yeni bir excel çalışması mecburi bir hale gelmiştir bu konudada teşekkürü bir borç bilirim ve yeni exceli hazırladığımızda siz değerli üstadlarımdan fikir alışverişinde bulunmak isterim. Tecrübelerinizden faydalanmak isterim.
Saygılarımla
Enis GÜVEN
 
Estağfurullah, forumumuz bu gibi durumlar/ihtiyaçlar için var.

Yapıyı değiştirdiğinizde hemen formüller vs uygulamadan foruma konu açarak belgeyi ekleyin ki üzerinde değişiklik önerisi olabilir.
Ben o halde mevcut yapıya göre bir kodlama hazırlayayım ve ileteyim.
Size düşen, grafik alanının hemen sağındaki VERİ DOĞRULAMA, yani AY SEÇİMİ hücresinin yakınına bir düğme/şekil/metin kutusu gibi bir nesne ekleyip, göndereceğim kod ile bu şekli ilişkilendirdikten sonra bu düğmeye fareyle tıklamak olur.

Yok eğer gerçekten profesyonel bir çalıma isterseniz forumumuzun ÜCRETLİ DESTEK bölümünü kullanabilirsiniz.
O bölümde ben veya kendi alanlarında yetkinliği olan ekip arkadaşlarımızdan biri konuyla yakinen ilgilenecektir.
.
 
Estağfurullah, forumumuz bu gibi durumlar/ihtiyaçlar için var.

Yapıyı değiştirdiğinizde hemen formüller vs uygulamadan foruma konu açarak belgeyi ekleyin ki üzerinde değişiklik önerisi olabilir.
Ben o halde mevcut yapıya göre bir kodlama hazırlayayım ve ileteyim.
Size düşen, grafik alanının hemen sağındaki VERİ DOĞRULAMA, yani AY SEÇİMİ hücresinin yakınına bir düğme/şekil/metin kutusu gibi bir nesne ekleyip, göndereceğim kod ile bu şekli ilişkilendirdikten sonra bu düğmeye fareyle tıklamak olur.

Yok eğer gerçekten profesyonel bir çalıma isterseniz forumumuzun ÜCRETLİ DESTEK bölümünü kullanabilirsiniz.
O bölümde ben veya kendi alanlarında yetkinliği olan ekip arkadaşlarımızdan biri konuyla yakinen ilgilenecektir.
.
sayın üstadım emekleriniz için gerçekten teşekkür ederim fakat size bir soru sormak istiyorum kodları asıl dosyaya değilde aktar dosyasına kaydetseniz olurmu asıl dosya dükkanlardaki excel çalışma sayfası aktar dosyası ise benim aylık mail attığım dosya yani kodu asıl dosyaya yazarsanız ben türkiyedeki tüm illeri gezip tek tek mağazada bulunan excellere kaydetmem gerekir. Saygılarımla
 
Estağfurullah, forumumuz bu gibi durumlar/ihtiyaçlar için var.

Yapıyı değiştirdiğinizde hemen formüller vs uygulamadan foruma konu açarak belgeyi ekleyin ki üzerinde değişiklik önerisi olabilir.
Ben o halde mevcut yapıya göre bir kodlama hazırlayayım ve ileteyim.
Size düşen, grafik alanının hemen sağındaki VERİ DOĞRULAMA, yani AY SEÇİMİ hücresinin yakınına bir düğme/şekil/metin kutusu gibi bir nesne ekleyip, göndereceğim kod ile bu şekli ilişkilendirdikten sonra bu düğmeye fareyle tıklamak olur.

Yok eğer gerçekten profesyonel bir çalıma isterseniz forumumuzun ÜCRETLİ DESTEK bölümünü kullanabilirsiniz.
O bölümde ben veya kendi alanlarında yetkinliği olan ekip arkadaşlarımızdan biri konuyla yakinen ilgilenecektir.
.
benim niyetim sizin emek verip hazırladığınız dosyayı kendi kişisel bilgisayarıma kaydetip her ay onun verilerini değiştirip aynı dosyayı mail atmak mümkünmüdür.
 
-- Dashboard (kelime yanlış yazılmış. kodda belgenizde nasıl ise öyle yazıldı) sayfasına bir metin kutusu/resim/düğme ekleyin,
-- ALT+F11 tuşlarına basarak VBA ekranını açın,
-- VBA ekranında üst menüden INSERT >> MODULEyi seçin,
-- VBA ekranında sağdaki alana aşağıdaki kodu yapıştırarak VBA ekranını kapatın.
-- Sayfaya eklediğiniz nesneye fareyle sağ tıklayıp MAKRO ATAyı seçin,
-- Göreceğiniz küüçük ekranda makronun adını seçerek işlemi onaylayın.
NOT:Belgenizi makro içerebilen dosya türünde (xls, xlsm veya xlsb uzantılı) kaydetmeniz gerekecek.

Artık eklediğiniz nesneye fareyle tıklayabilirsiniz.
Bunu yaptığınızda GÖZAT ekranı çıkacak, o ekranda veri alınacak belgeyi bulup seçin işlem tamam olmalıdır.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(38 satır)
 
-- Dashboard (kelime yanlış yazılmış. kodda belgenizde nasıl ise öyle yazıldı) sayfasına bir metin kutusu/resim/düğme ekleyin,
-- ALT+F11 tuşlarına basarak VBA ekranını açın,
-- VBA ekranında üst menüden INSERT >> MODULEyi seçin,
-- VBA ekranında sağdaki alana aşağıdaki kodu yapıştırarak VBA ekranını kapatın.
-- Sayfaya eklediğiniz nesneye fareyle sağ tıklayıp MAKRO ATAyı seçin,
-- Göreceğiniz küüçük ekranda makronun adını seçerek işlemi onaylayın.
NOT:Belgenizi makro içerebilen dosya türünde (xls, xlsm veya xlsb uzantılı) kaydetmeniz gerekecek.

Artık eklediğiniz nesneye fareyle tıklayabilirsiniz.
Bunu yaptığınızda GÖZAT ekranı çıkacak, o ekranda veri alınacak belgeyi bulup seçin işlem tamam olmalıdır.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(38 satır)
Üstadım gecenin bu vakti rahatsız ettim herşey için sonsuz teşekkür eder saygılarımı sunarım herşey için çok sağolun size ve ekip arkadaşlarınıza hayırlı geceler diliyorum. Saygılarımla
 
İstediğiniz işlem tamam mı değil mi bence onu kontrol ediniz.
Tamam ise, sonucun elde edilmesini sağlayan cevabın sağındaki ONAY işaretine tıklayarak konunun ÇÖZÜLDÜ olarak işaretlenmesini sağlayınız. Emek kısmı mesele değil.
 
İstediğiniz işlem tamam mı değil mi bence onu kontrol ediniz.
Tamam ise, sonucun elde edilmesini sağlayan cevabın sağındaki ONAY işaretine tıklayarak konunun ÇÖZÜLDÜ olarak işaretlenmesini sağlayınız. Emek kısmı mesele değil.
üstadım muhteşem ötesi fakat bir sorun var aktarılacak tabloda mesela nisan ayı yok fakat excel formülleri nisan ayıda hesaplanıp alacak yani bir satır boş bırakması lazım asıl dosyadaki ocak ayı lfl ve mdo rakamları başka bir sayfaya formül olarak gidiyor yani nisan ayında lfl ve mdo oranları bu durumda mayısla çakışmış olacak yani asıl nusha daki ilgili ayların altına ilgili aylar gelmelidir. Ama çok profesyonel olmuş çok sağolun. Saygılarımla
 
Kodlamayı yaparken ay adlarına, sütunlara, belgelerdeki formüllere bakmış değilim.
İşlem şudur:

kaynak = Array("MS", "KA", "ST", "FS") >> veri alınacak sayfa adları sırası
k_alan = Array("A7:M37", "A7:M37", "A6:M36", "A6:M36") >> veri alınacak alan adresleri sırası
hedef = Array("CM18", "DA53", "T88", "DA17") >> verinin yapıştırılacğı İLK hücre adresleri sırası

Bu üç değişkenin aynı sıradaki elamanları arasında döngü çalışıyor.
Sheets(kaynak(XD).Range(k_alan(XD)).Copy Range(hedef(XD))
XD değişkeni sırayla işlem yaptırıyor.

İşlem tam olarak şöyle XD değeri 0 olduğunda, açılan AKTARMA belgesinin MS sayfasında A7;M37 aralığı kopyalanıyor,
hedef sayfa (dashboard) CM18'e yapıştırılıyor.
Sonra değişkenlerin bir sonrakine geçiliyor.

Kopyalama (k_alan) veya hedef hücre (hedef) adresleri doğru değil diye düşünüyorsanız,
kodun yukarıda belirttiğim kısımlarında değişiklik yapabilirsiniz.
 
Kodlamayı yaparken ay adlarına, sütunlara, belgelerdeki formüllere bakmış değilim.
İşlem şudur:

kaynak = Array("MS", "KA", "ST", "FS") >> veri alınacak sayfa adları sırası
k_alan = Array("A7:M37", "A7:M37", "A6:M36", "A6:M36") >> veri alınacak alan adresleri sırası
hedef = Array("CM18", "DA53", "T88", "DA17") >> verinin yapıştırılacğı İLK hücre adresleri sırası

Bu üç değişkenin aynı sıradaki elamanları arasında döngü çalışıyor.
Sheets(kaynak(XD).Range(k_alan(XD)).Copy Range(hedef(XD))
XD değişkeni sırayla işlem yaptırıyor.

İşlem tam olarak şöyle XD değeri 0 olduğunda, açılan AKTARMA belgesinin MS sayfasında A7;M37 aralığı kopyalanıyor,
hedef sayfa (dashboard) CM18'e yapıştırılıyor.
Sonra değişkenlerin bir sonrakine geçiliyor.

Kopyalama (k_alan) veya hedef hücre (hedef) adresleri doğru değil diye düşünüyorsanız,
kodun yukarıda belirttiğim kısımlarında değişiklik yapabilirsiniz.
Çok teşekür ederim emeklerinizden dolayı iyi akşamlar dilerim

Saygılarımla
 
Üst