Düşeyara yada kodla yardım

Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
Merhabalar,
1. sayfada A sütununda bir ürün listesi var. Anı sayfanın B ve C sütunlarında miktar ve tutar var. B ve C sütunlarına 2. 3. 4. 5. sayfalardan 1. sayfanın A sütunudaki ürüne denk gelen miktar ve tutarları toplattırmak istiyorum. 2. 3. 4. 5. sayfalardaki ürünler 1. sayfadaki sırada değil ve aynı zamanda 2. sayfada olan ürün 3. sayfada olmaya bilir. Bununla ilgili bir kod yada formül önerir misiniz. Düşeyara formülü olmuyor.
Teşekkür ederim.

örnek dosya: https://upterabit.com/1KnI/ZAİMOĞLU.xls
 
Son düzenleme:

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Örnek excel dosyanızı,açıklamalarını da yazarak; UPTERABİT.COM, DOSYA.TC, DOSYA.CO gibi dosya paylaşım sitelerine ekleyip linkini burada bildirirseniz yardım almanız daha kolay olur.
 
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
yardım edecek kimse yok mu?
 

NBATMAN

Destek Ekibi
Destek Ekibi
Katılım
1 Aralık 2007
Mesajlar
659
Excel Vers. ve Dili
Office 2003 excel Türkçe
Merhaba,

Dosyanızı DOSYA.TC ekleyiniz.
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Birim fiyatlar hep değişikmi? mesela şeker ocak ta 3 şubat ta 2. bunları düzeltip. aşağıdaki kodu stok tanım sayfasına ekleyip çalıştıp deneyin.
Kod:
Sub aktar()
Range("B3:D" & Range("A65536").End(3).Row).ClearContents
a = Sheets.Count
Application.ScreenUpdating = False
For i = 1 To a
syf = Sheets(i).Name
If syf <> "STOK_TANIM" Then
If Not IsNumeric(syf) Then
For m = 3 To 11
With Sheets(syf).Range("c3:c500") 'Worksheets(1).Range("a1:a500")
    Set c = .Find(Cells(m, 1), LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
        Cells(m, 2) = Cells(m, 2) + Sheets(syf).Cells(c.Row, "E")
        Cells(m, 4) = Sheets(syf).Cells(c.Row, "F")
         Cells(m, 3) = Cells(m, 2) * Cells(m, 4)
            'c.Value = 5
            Set c = .FindNext(c)
            If c Is Nothing Then
                GoTo 10
            End If
            Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
10:
End With
Next m
End If
End If
Next i
Application.ScreenUpdating = True
MsgBox "Aktarım Bitti."
End Sub
 
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
Birim fiyatlar hep değişikmi? mesela şeker ocak ta 3 şubat ta 2. bunları düzeltip. aşağıdaki kodu stok tanım sayfasına ekleyip çalıştıp deneyin.
Kod:
Sub aktar()
Range("B3:D" & Range("A65536").End(3).Row).ClearContents
a = Sheets.Count
Application.ScreenUpdating = False
For i = 1 To a
syf = Sheets(i).Name
If syf <> "STOK_TANIM" Then
If Not IsNumeric(syf) Then
For m = 3 To 11
With Sheets(syf).Range("c3:c500") 'Worksheets(1).Range("a1:a500")
    Set c = .Find(Cells(m, 1), LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
        Cells(m, 2) = Cells(m, 2) + Sheets(syf).Cells(c.Row, "E")
        Cells(m, 4) = Sheets(syf).Cells(c.Row, "F")
         Cells(m, 3) = Cells(m, 2) * Cells(m, 4)
            'c.Value = 5
            Set c = .FindNext(c)
            If c Is Nothing Then
                GoTo 10
            End If
            Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
10:
End With
Next m
End If
End If
Next i
Application.ScreenUpdating = True
MsgBox "Aktarım Bitti."
End Sub
evet birim fiyatlar değişken.
şu şekilde bir hata verdi.
Run-Time Error '13':
Type mismatch
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Ekteki dosyayı inceleyin eksik yada fazla tarafına göre düzenlensin. Birim fiyatını farklı olduğu için uyarlamadım.
 

Ekli dosyalar

Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
Sayın Vardar07 ne kadar teşekkür etsem azdır. formüllerle uğraşıyordum, beni kurtardınız. çok çok teşekkürler. Tutara F değil N sütunu olacaktı bedeğiştirdim ve hallettim.
Elinize sağlık...
 
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
Ayrıca birşey daha sorayım. kodda yazılı 'F' yerine 'N' yazmam yeterli değil mi? yani birim fiyatı değil toplam tutarı alacaktı. ve birim fiyatı ortalamasını aldıracam. aynı yerde ben onu yaparım formülle hallederim.
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Evet F yerine N yazabilirsiniz. Kolay gelsin.
 
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
Teşekkürler

Elinize sağlık
 
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
İyi akşamlar vardar07 bey...
Yaptığımız çalışmada ufak bir eksiklik var. boş değil de sıfır olan hücrelere rakam yazıyor. Bu konuda da yardımcı olabilir misiniz?
 
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
örnek dosyayı yükleyeyim isterseniz
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Dosyanın son halini eklerseniz iyi olur birde "boş değil de sıfır olan hücrelere rakam yazıyor." derken neyi kastettiğinizi dosya içinde renklendirin şurası şöyle burası böyle diye belirtin.
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Deneyiniz.
Kod:
Sub aktar()
Set sh = Sheets("[COLOR="Red"]STOK_TANIM[/COLOR]")
ilk = Time
Application.ScreenUpdating = False
sh.Range("B3:E" & sh.Range("A1003").End(3).Row).ClearContents
For i = 1 To Sheets.Count
syf = Sheets(i).Name
If syf <> "[COLOR="red"]STOK_TANIM[/COLOR]" Then
If Not IsNumeric(syf) Then

For m = 3 To sh.Range("A1003").End(3).Row
With Sheets(syf).Range("c3:c" & Sheets(syf).Range("E1003").End(3).Row)
    Set c = .Find(sh.Cells(m, 1), LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        
        Do
        If sh.Cells(m, 1) = 0 Then
        sh.Cells(m, 2) = 0: sh.Cells(m, 3) = 0: sh.Cells(m, 5) = 0
        Else
        sh.Cells(m, 2) = sh.Cells(m, 2) + Sheets(syf).Cells(c.Row, "E")
        If sh.Cells(m, 2) < 1 Then sh.Cells(m, 2) = "": sh.Cells(m, 3) = ""
        sh.Cells(m, 3) = sh.Cells(m, 3) + Sheets(syf).Cells(c.Row, "N")
        End If
            Set c = .FindNext(c)
            If c Is Nothing Then
                GoTo 10
            End If
            Loop While Not c Is Nothing And c.Address <> firstAddress
    
    End If
10:
End With
Next
End If
End If
Next
Application.ScreenUpdating = True
son = Time
MsgBox Format(son - ilk, "h:mm:ss,000") & "  :saniyede  Aktarım Bitti.", vbInformation
End Sub
 
Son düzenleme:
Katılım
24 Temmuz 2008
Mesajlar
172
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
30-10-2023
Çok Teşekkür ederim.
Ellerinize sağlık.
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Rica ederim.
 
Üst