• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayfalar arası işlem yapmak

Katılım
25 Mayıs 2017
Mesajlar
7
Excel Vers. ve Dili
2016
Merhaba , forumda çok araştırdım fakat bulamadım benim sorum şöyle;

Sayfa1 A1 hücresinde ST64 verisi var, Sayfa1 B1 hücresinde 11 adet sayısı var;
Sayfa2 A5 hücresinde ST64 verisi var, Sayfa2 B5 hücresinde 15 adet sayısı var;

Sayfayı formülle taratıcam ; eğer Sayfa1 ' de A sütünlarında St64 kelimesi var ise B sütününda ki karşılıklarını toplasın gibi bir formül yapmam gerekiyor. Çoketopla eğersay bağdeğsay gibi formüller denedim fakat yapamadık. Yardımcı olur musunuz? Teşekkürler.
 
Merhaba,

İstediğiniz bu mu?

=ETOPLA(A:A;"ST64";B:B)

.
 
Hayır maalesef bu değil. Farklı sayflar arasında işlem yapmak istiyorum.

diyelim ki Sayfa1 A3 Sütünün da ST64 var ise, B3 sütünunda ki değeri toplasın
Sayfa2 A3 sütünun ST64 var ise , B3 sütünunda ki değeri toplasın.

Asıl amacım ürünlerin stoğunu ve satışlarımızın adetini görmek için bir tablo oluşturmak. Sorunu mu anlatabilmişimdir umarım.
 
Sorunuzla ilgili küçük bir excel dosyası hazırlayıp, dosya içerisinde detaylı açıklamayı yaparak aşağıdaki siteye yükleyip linki paylaşmanızı rica ederim.

http://www.dosya.tc/

.
 
Tüm sayfaların A sütununa girilen değerlerinin B deki karşılıklarını yeni bir sayfada A daki verilerin özetini alıp toplamak mı istiyorsunuz?

.
 
evet ömer bey, stok tutmak amacındayız. bir üründen kaç adet satılmış görmek için istiyoruz.
örneğin ;
ST64 adlı üründen : 200 adet satılmış

Sayaç : 100 adet satılmış

gibi..
 
ozet adında boş bir sayfa oluşturun.

Daha sonra aşağıdaki kodları çalıştırın.
Eğer başlık satırını kendiniz düzenleyecekseniz yeşil işaretlediğim satırları silersiniz.

Kod:
Sub Raporla()
 
    Dim d As Object, j As Integer, i As Long, s, deg
 
    Set d = CreateObject("Scripting.Dictionary")
    
    Application.ScreenUpdating = False
    Sheets("[COLOR="blue"]ozet[/COLOR]").Select

    For j = 1 To Worksheets.Count
        With Sheets(j)
            If .Name <> "ozet" Then
                For i = 4 To .Cells(Rows.Count, "A").End(xlUp).Row
                    deg = .Cells(i, "A")
                    If Not d.exists(deg) Then
                        s = .Cells(i, "B")
                        d.Add deg, s
                    Else
                        s = d.Item(deg)
                        s = s + .Cells(i, "B")
                        d.Item(deg) = s
                    End If
                Next i
            End If
        End With
    Next j
    
    Range("A2:B" & Rows.Count).ClearContents
[COLOR="Green"]    Range("A1").Resize(1, 2) = Array("SATILAN ÜRÜN", "ADET") 'başlık
    Range("A1:B1").Borders.LineStyle = 1 'başlık çizgi[/COLOR]
    Range("A2").Resize(d.Count, 2) = _
        Application.Transpose(Array(d.keys, d.items))
        
    Application.ScreenUpdating = True

End Sub

.
 
Yardımınız ve iyi niyetiniz için teşekkür ederim ömer bey, fakat sorduğum sorunun böyle bir cevabı olduğunu gerçekten düşünmemiştim :) Kodları excele eklemek için yapmamız gereken yolu bulamadım. Forumda alt+a+ym gibi bir cevap buldum ama başarılı olmadı. ALT+F11 DE XYLS UZANTILI SAYFALAR AÇILIYOR. BURAYA DA EKLEDİM FAKAT ÇALIŞMADI.
 
Eklenmiş hali ektedir.
Alt+F11 yaptıktan sonra Module1 sayfasında kodları görebilirsiniz.

Formülle de yapılabilir fakat, tüm sayfalarda verilerin önce benzersiz sıralanması vs. sonra toplanması, dosya boyutunu büyütüp yavaşlamaya neden olacağını düşündüğüm için makroyla yaptım.

http://www.dosya.tc/server8/eao05q/SATIS_RAPORLARI.rar.html

.
 

Ekli dosyalar

Valla ömer bey harika olmuş elinize emeğinize sağlık. Tam istediğimiz gibi gerçekten. Anladığım kadarı ile veri girildiğinde otomatik eklemiyor özet sayfasına gelip özet oluştur dediğinde verileri çekiyor doğru mu? Tekrar tekrar teşekkür ederiz
 
Evet, butona basınca ozet sayfasındaki eski verileri silip son haline göre yeniden listeliyor.

İstediğiniz gibi de yapılabilir fakat her veri girişinde kodu tetikleyeceğimiz için gereksiz arka planda çalışma yapmış olur. Bu tablonuzda bunu tavsiye etmem.

Yada ozet sayfa aktif olduğunda kodları otomatik çalıştırabiliriz.

Yalnız bence en doğrusu butonla çalışması. Tercihinize göre değişim yapabilirim.

.
 
Yani sıkıntı yok siz öyle diyorsanız doğrudur. Bu geliştirmek istersem kendi kendime yapabilir miyim? Kodun çalıştığı yeri bana söylersin forumda araştırarak bir şeyler yapabilirim hemde biraz öğrenmiş olurum kod çalıştırma mantığını çözersem yapabilirim diye düşünüyorum.
 
Çalışmanız açıkken, Alt + F11 yaparsanız VBA ekranına geçersiniz. Burada solda bulunan Module1 sayfasının içinde kodu görebilirsiniz.

Yeni Module eklemek için VBA ekranından Insert menüsünden Module seçeneği ile ekleyebilirsiniz.

Kodun içine girip F8 ile adım adım kodun çalışmasını yapabilirsiniz. F5 ile kodu burada tek seferde çalıştırabilirsiniz.

Sayfaya buton ekleyip kodlara bağlamak için ise; linki inceleyiniz.

http://www.excel.web.tr/f157/sayfada-buton-duome-olu-turmak-ve-makro-atamak-t136979.html

.
 
Çalışmanız açıkken, Alt + F11 yaparsanız VBA ekranına geçersiniz. Burada solda bulunan Module1 sayfasının içinde kodu görebilirsiniz.

Yeni Module eklemek için VBA ekranından Insert menüsünden Module seçeneği ile ekleyebilirsiniz.

Kodun içine girip F8 ile adım adım kodun çalışmasını yapabilirsiniz. F5 ile kodu burada tek seferde çalıştırabilirsiniz.

Sayfaya buton ekleyip kodlara bağlamak için ise; linki inceleyiniz.

http://www.excel.web.tr/f157/sayfada-buton-duome-olu-turmak-ve-makro-atamak-t136979.html

.

http://www.excel.web.tr/f14/liste-olu-turma-t164263.html

ömer bey kusura bakmayınız yoruyoruz sizleri.bu anlamda bende bir liste oluşturmaya çalışıyorum. olabilitesi var mıdır.
 
Geri
Üst