• DİKKAT

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

Dağıtım planı (filtreleme ve aktarma)

Katılım
28 Ekim 2010
Mesajlar
21
Excel Vers. ve Dili
2003
Sevgili Forum Üyeleri;
Ek'te göndermiş olduğum çalışmamda da görüleceği gibi sizden istemiş olduğum veri sayfasındaki siparişleri rut adımlarına göre filtreleyip ilgili sayfalara aktarması formül ya da macro yardımı yapabilecek arkadaşlara şimdiden teşekkür ederim.
 

Ekli dosyalar

Merhaba,

İllerin hangi sayfalara aktarılması gerektiğini açıklamamışsınız. Sadece örnek olarak rut1 ile ilgili bilgi yazmışsınız. Tüm illerin hangi sayfalara aktarılması gerektiğini açıklarmısınız..

.
 
Sayın Ömer Günaydın;
şöyle açıklayayım; toplam 3 dağıtım planımız var iller bu üç dağıtım planına tanımlı.
örneğin rut1 karadeniz illeri (trabzon,samsun,ordu vs.) rut1 sayfasına veri sayfasında trabzon olan siparişleri de atacak ordu olanı da samsun olanı da ama farklı illerden aynı sipariş gelmişse bu ürünü bir kez yazıp adedini toplayacak öncelikle bir rut tanılaması yapmamız gerekiyorsa önce rutları tanımlayalım.
teşekkürler
 
Sayın Ömer Günaydın;
şöyle açıklayayım; toplam 3 dağıtım planımız var iller bu üç dağıtım planına tanımlı.
örneğin rut1 karadeniz illeri (trabzon,samsun,ordu vs.) rut1 sayfasına veri sayfasında trabzon olan siparişleri de atacak ordu olanı da samsun olanı da ama farklı illerden aynı sipariş gelmişse bu ürünü bir kez yazıp adedini toplayacak öncelikle bir rut tanılaması yapmamız gerekiyorsa önce rutları tanımlayalım.
teşekkürler

Benim de sormak istediğim buydu.

.
 
sayın Ömer;
yeni bir çalışma ile dosyayı revize ettim (rut satırı ekledim ve illeri rutlara tanımladım) şimdi bir bakabilir misiniz?
saygılarımla...
 

Ekli dosyalar

Kodları module kopyalayarak çalıştırınız. Dosyanız ektedir..

Yalnız;

ama farklı illerden aynı sipariş gelmişse bu ürünü bir kez yazıp adedini toplayacak

Buradaki sorunuzu tam olarak anlayamadım. Aşağıdaki kodlar illere göre mükerrerleri ayırır. Sizin istediğiniz bu mu yoksa daha farklı bir algılama mı. Soruda, farklı illerde aynı sipariş olursa tek yazılcak demişsiniz. Peki siparişin karşısına hangi bölge adı yazılcak ?

Kod:
Sub Dağıt()
 
Dim Sayfa As Variant, i As Long, j As Integer, son As Long, S1 As Worksheet
Set S1 = Sheets("Veri")
For j = 1 To Worksheets.Count
    With Sheets(j)
        If .Name <> "veri" And .Name <> "Sayfa1" Then
            .Range("A6:F65536").ClearContents
        End If
    End With
Next j
On Error Resume Next
For i = 3 To S1.Cells(Rows.Count, "H").End(xlUp).Row
    Sayfa = S1.Cells(i, "H")
    With Sheets(Sayfa)
        son = .Cells(Rows.Count, "B").End(xlUp).Row + 1
        If WorksheetFunction.CountIf(S1.Range("B3:B" & i), _
        Cells(i, "B").Value) = 1 Then
            .Range("A" & son) = S1.Cells(i, "B")
            .Range("B" & son) = S1.Cells(i, "D")
            .Range("C" & son) = S1.Cells(i, "E")
            .Range("E" & son) = S1.Cells(i, "F")
            .Range("D" & son).Formula = "=Sumif(Veri!B:B ,A" & _
            son & ",Veri!G:G)"
        End If
    End With
Next i
 
MsgBox "Aktarım Tamalanmıştır.", vbInformation, Application.UserName
End Sub
.
 

Ekli dosyalar

Sayın Ömer;
Sorumu biraz daha genişleterek anlatayım.
rut tanımlamalarını coğrafi bölgeler gibi düşünelim. bazı rutlarda 5 il var bazılarında 6 bazısında 7 ama aslolan ruttur. nedeni tm türkiyeden sipariş aldığınızı farzedin ama 3 kamyonunuz var dolayısı ile türkiyeyi üçe bölüyoruz ve her bir kamyon kendi güzergahındaki siparişleri taşıyor. istediğim bu formadaki hedefim. il bazında değil rut bazında bana hangi kamyona hangi ürünleri yükleyeceğimi göstermesi. rut1'i taşıyan kamyon 6 tane x ürün yüklendi diyelim o zaten hangi ile ne bırakacağını biliyor maksat araca eksik yükleme yapmamak. o yüzden 3 sayfamız var rut1,rut2 ve rut3 iller sadece ilgili ürünün hangi ruta ait olduğunu bilmemize yarıyor. il bazında değil rut bazında ssayfalara aktarma olacak
bilmiyorum daha açıklayıcı oldu mu :S
teşekkürler
 
Kodları bu şekilde değiştiriniz. Dosya ektedir..

Kod:
Sub Dağıt()
Dim Sayfa As Variant, i As Long, j As Integer, son As Long
Dim S1 As Worksheet, sonv As Long
Set S1 = Sheets("Veri")
For j = 1 To Worksheets.Count
    With Sheets(j)
        If .Name <> "veri" And .Name <> "Sayfa1" Then
            .Range("A6:F65536").ClearContents
        End If
    End With
Next j
On Error Resume Next
sonv = S1.Cells(Rows.Count, "H").End(xlUp).Row
For i = 3 To sonv
    Sayfa = S1.Cells(i, "H")
    With Sheets(Sayfa)
        son = .Cells(Rows.Count, "B").End(xlUp).Row + 1
        If Cells(i, "I").Value = 1 Then
            .Range("A" & son) = S1.Cells(i, "B")
            .Range("B" & son) = S1.Cells(i, "D")
            .Range("C" & son) = S1.Cells(i, "E")
            .Range("E" & son) = S1.Cells(i, "F")
            .Range("D" & son) = "=SumProduct((Veri!B3:B" & sonv & "=A" & son _
            & ")*(Veri!D3:D" & sonv & "=B" & son & ")*(Veri!G3:G" & sonv & "))"
        End If
    End With
Next i
MsgBox "Aktarım Tamalanmıştır.", vbInformation, Application.UserName
End Sub

.
 

Ekli dosyalar

Geri
Üst