veri aktarma

Katılım
21 Nisan 2007
Mesajlar
36
Excel Vers. ve Dili
excel 2003 türkçe
Herkese merhaba,

Forumdaki yazıları okudum; fakat tam istediğim gibi bir çözümle karşılaşamadım. Size örnek olması açısından bir adet dosaya koyuyorum orada açıklamayı görebilirsiniz.

Yardımlarınız için teşekkürler
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sayfa1 C3 hücresine,

Kod:
=TOPLA.ÇARPIM((Sayfa2!$C$1:$C$10=$A3)*(Sayfa2!$A$1:$A$10=C$2)*(Sayfa2!$D$1:$D$10))
Formülünü yazarak formülü diğer hücrelere kopyalayınız..
 
Katılım
21 Nisan 2007
Mesajlar
36
Excel Vers. ve Dili
excel 2003 türkçe
ufak bir yanlış anlaşılma olmuş çözümde.. benim çözmeye çalıştığım sayfa 1deki verilerin Sayfa2'deki veriler gibi dizilmesiydi..

acaba buna bir çözüm bulabir miyiz?
 

Korhan Ayhan

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

Ekteki örnek dosyayı incelermisiniz.
 
Katılım
21 Nisan 2007
Mesajlar
36
Excel Vers. ve Dili
excel 2003 türkçe
Korhan selam,

Çok güzel olmuş gibi görünüyor ama nasıl yaptığını çözemedim. Sanırsam bir makro var. Kod görüntüle dediğim zaman boş çıkıyor, funkres dosyasını açmaya çalıştığım zamanda şifre veriyor.

Kod varsa kodlara ihtiyacım olucaktır, çünkü örnek olması açısından buraya bir kısım datayı yapıştırdım. Kamyon sayımız maalesef 3 ten fazla hatta 10dan bile fazla.

Bu durumda yardımcı olursan sevinirim
 

Korhan Ayhan

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

Evet çözüm makro ile yapılmıştır. Kodlara ulaşmak için dosyayı açın ve ALT+F11 tuşlarına basın kodlar direk karşınıza gelecektir.

Eğer orjinal dosyanızda da tablo yapısı örnek dosyanızdaki gibiyse makroda bir değişiklik yapmanıza gerek yok. Zaten kodu esnek olacak şekilde yazmıştım.

Eğer yinede yardıma ihtiyacınız olursa buraya sorunuzu yazın çözmeye çalışırız.
 
Katılım
21 Nisan 2007
Mesajlar
36
Excel Vers. ve Dili
excel 2003 türkçe
Korhan merhaba,

Veri aktarma ile ilgili yardımın için teşekkürler. Foruma yazdıktan sonra kodları açabildim. Fakat kodları tamamen anlayabilmiş değilim. Kısaca açıklayabilecek olursan devamını çözerim gibi geliyor.

Genel sorular olarak,

For x=3 kısmında 3 vermen 3 kamyon yazdığım için midir?

Satır = derken neyi döndürmeye çalıştın? end(3) ü değiştirdiğimizde kodlar bozuluyor.

S2. Range formülleriyle ne yapmayı amaçladın?

Spesifik sorular olarak;

Sayfa2'deki verileri c sutununa değilde g sutununa yazdırmak için özel birşey yapmak gerekli midir? (sanırım S2. RAnge formülündeki C leri G yapmak yeterli?)

Teşekkürler..
 

Korhan Ayhan

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

1. Sorunuz;
Buradaki 3 değeri Sayfa1 deki Kamyon1 in başladığı sütunu yani C sütununu ifade etmektedir. A sütununda saymaya başlarsanız C sütunu 3. sütundur.

2. Sorunuz;
Satır ifadesi ise Sayfa2 deki en son boş satırı ifade etmektedir. Aktarılacak verinin Sayfa2 de hangi satıra aktarılması gerektiğini ifade eder. Dikkat ederseniz Satır ifadesi S2.[A65536].End(3).Row + 1 ifadesi ile eşitlenmiştir.

Bu komut şu işi yapar; Boş bir excel sayfası açın. A sütununda en son hücreyi seçin yani (A65536) daha sonra END tuşuna basın ve YUKARI OK tuşuna basın. A1 hücresinin seçili olduğunu göreceksiniz. Şimdi A sütununa bir kaç veri girerek işlemi tekrar yapın. En son veri girdiğiniz hücre otomatik olarak seçilecektir. İşte bu yaptığınız işlemleri bu komutu kullanarak hallediyoruz.

Gelelim +1 kısmına seçilmiş olan hücre dolu bir hücre olduğu için bizim işimize yaramamaktadır. O yüzden satır nosuna 1 ekleyerek boş hücrenin satır nosunu elde etmiş oluyoruz.

3. Sorunuz;
S2 değişkeni Sayfa2 yi ifade etmektedir. Normalde makro kaydet yöntemi ile başka bir sayfaya veri aktarımı yapan bir işlem yapmak istediğimizde excel bize otomatik olarak "Sheets("Sayfa2").Range("A1")" şeklinde bİr kod bloğu oluşturur. Ama bizler pratik olsun diye sayfa isimlerini kısa isimler vererek (S1,S2 gibi) hafızaya alırız.

Sheets("Sayfa2").Range("A1") yerine sadece S2.[A1] yazarak kodu kısaltmış oluyoruz. Buda bize uzun kod yazılımlarında zaman kazandırmaktadır.

Son sorunuzun cevabını zaten kendiniz vermişsiniz.
 
Katılım
21 Nisan 2007
Mesajlar
36
Excel Vers. ve Dili
excel 2003 türkçe
Merhaba,

Bir süre kodlarla kendim uğraştıktan sonra daha iyi anlamaya başladım; fakat Örnek adlı dosyadaki S1.[IV2].End(1).Column ve SATIR = S2.[A65536].End(3).Row+1 kodlarındaki parantez içindeki 1 ve 3'ün tam olarak neyi kısıtladığına veya ne işe yaradığına pek anlam veremedim.

Açıklayacak olan arkadaşlara şimdiden teşekkürler
 
Üst