Verileri Diğer Sayfada ilgili Yerlere Aktarma!

Katılım
7 Mart 2011
Mesajlar
184
Excel Vers. ve Dili
2007 TR
Sayın Hocalarım, sevgili arkadaşlar;
bir çalışma hazırlarken takıldığım bir noktada sizlerden yardım bekliyorum. çalışma sayfamda iki adet combobox ve bir buton var detaylı açıklama dosya içinde mevcut. combobox ile sayfaya getirdiğim verilerin yanına sipariş miktarlarını yazdıktan sonra diğer sayfaya hem yatay hem de dikey göndermem lazım. yardımcı olacak arkadaşlara şimdiden teşekkürler.
 

Ekli dosyalar

Korhan Ayhan

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

Ürün kodlarını örnek dosyanızda aynı olarak göstermişsiniz. Gerçek dosyanızda da bu şekildemi?
 
Katılım
7 Mart 2011
Mesajlar
184
Excel Vers. ve Dili
2007 TR
Selamlar,

Ürün kodlarını örnek dosyanızda aynı olarak göstermişsiniz. Gerçek dosyanızda da bu şekildemi?
Sayın Ayhan
ürün kodları üst tanım her bir benzersiz ürün koduna bağlı alt ürünler var örneğin xxx ürün koduna bağlı 10 15 ürün olabilir. tüm ürünleri çağırıpçağırdığımız yığınla veride arama yapmak zor olacağı için böyle düşündüm. önce ürün koduna göre süzüp ekrana gelecek olanlardan seçim yapmak için. kısacası sipariş sayfasına yatay olarak müşteriler sıralanacak dikey olarak ürünler ve keşisim noktalarına sayfadan gönderdiğimiğz veriler gelecek. aynı müşteriye farklı ürün kodlarından farklı ürünler sipariş edilebileceği gibi belki bir müşteri bir grutan ürün sipariş edecek. sipariş sayfasına müşteriler sabitlemek istedim çünkü yığınla müşteri yatay olarak hoş durmayacak sadece sipariş verenler olsun istedim. ürünler için de aynı şekilde yüzlerce ürün alt alta durmasın siparişi olan ürünler ekrana gelsin
umarım daha net anlatabilmişimdir.
saygılar
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim MÜŞTERİ As String, ÜRÜN As String
    Dim BUL_MÜŞTERİ As Range, BUL_ÜRÜN As Range
    Dim X As Integer, Satır As Long, Sütun As Integer
    
    Set S1 = Sheets("siparis")
    Set S2 = Sheets("giris")
    
    MÜŞTERİ = ComboBox1.Value
    
    If WorksheetFunction.CountA(S2.Range("E7:E" & Rows.Count)) = 0 Then
        MsgBox "Lütfen ürünlerin sipariş miktarlarını giriniz !", vbCritical
        Exit Sub
    End If
    
    Set BUL_MÜŞTERİ = S1.Rows(4).Find(MÜŞTERİ, , , xlWhole)
    If Not BUL_MÜŞTERİ Is Nothing Then
        Sütun = BUL_MÜŞTERİ.Column
    Else
        Sütun = S1.Cells(4, Columns.Count).End(1).Offset(0, 1).Column
        S1.Cells(4, Sütun) = MÜŞTERİ
    End If
    
    For X = 7 To S2.Cells(Rows.Count, 3).End(3).Row
        ÜRÜN = S2.Cells(X, 3)
        Set BUL_ÜRÜN = S1.Range("B:B").Find(ÜRÜN, , , xlWhole)
        If Not BUL_ÜRÜN Is Nothing Then
            S1.Cells(BUL_ÜRÜN.Row, Sütun) = S2.Cells(X, 5)
        Else
            Satır = S1.Cells(Rows.Count, 1).End(3).Offset(1).Row
            S1.Cells(Satır, 1) = S2.Cells(X, 2)
            S1.Cells(Satır, 2) = S2.Cells(X, 3)
            S1.Cells(Satır, 3) = S2.Cells(X, 4)
            S1.Cells(Satır, Sütun) = S2.Cells(X, 5)
        End If
    Next
    
    Set BUL = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
 
    MsgBox "Siparişler kayıt edilmiştir.", vbInformation
End Sub
 
Katılım
7 Mart 2011
Mesajlar
184
Excel Vers. ve Dili
2007 TR
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim MÜŞTERİ As String, ÜRÜN As String
    Dim BUL_MÜŞTERİ As Range, BUL_ÜRÜN As Range
    Dim X As Integer, Satır As Long, Sütun As Integer
    
    Set S1 = Sheets("siparis")
    Set S2 = Sheets("giris")
    
    MÜŞTERİ = ComboBox1.Value
    
    If WorksheetFunction.CountA(S2.Range("E7:E" & Rows.Count)) = 0 Then
        MsgBox "Lütfen ürünlerin sipariş miktarlarını giriniz !", vbCritical
        Exit Sub
    End If
    
    Set BUL_MÜŞTERİ = S1.Rows(4).Find(MÜŞTERİ, , , xlWhole)
    If Not BUL_MÜŞTERİ Is Nothing Then
        Sütun = BUL_MÜŞTERİ.Column
    Else
        Sütun = S1.Cells(4, Columns.Count).End(1).Offset(0, 1).Column
        S1.Cells(4, Sütun) = MÜŞTERİ
    End If
    
    For X = 7 To S2.Cells(Rows.Count, 3).End(3).Row
        ÜRÜN = S2.Cells(X, 3)
        Set BUL_ÜRÜN = S1.Range("B:B").Find(ÜRÜN, , , xlWhole)
        If Not BUL_ÜRÜN Is Nothing Then
            S1.Cells(BUL_ÜRÜN.Row, Sütun) = S2.Cells(X, 5)
        Else
            Satır = S1.Cells(Rows.Count, 1).End(3).Offset(1).Row
            S1.Cells(Satır, 1) = S2.Cells(X, 2)
            S1.Cells(Satır, 2) = S2.Cells(X, 3)
            S1.Cells(Satır, 3) = S2.Cells(X, 4)
            S1.Cells(Satır, Sütun) = S2.Cells(X, 5)
        End If
    Next
    
    Set BUL = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
 
    MsgBox "Siparişler kayıt edilmiştir.", vbInformation
End Sub
Sayın Ayhan Günaydınlar,
kodu denedim çalışıyor ancak işlem görmeyen veriyi atmamasını sağlayabilir miyiz? nasıl bir ek yapmalıyım koda. süzülen ürünlerden yalnızca sipariş adedi girilenler aktarılsa olur mu
saygılar
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim MÜŞTERİ As String, ÜRÜN As String
    Dim BUL_MÜŞTERİ As Range, BUL_ÜRÜN As Range
    Dim X As Integer, Satır As Long, Sütun As Integer
    
    Set S1 = Sheets("siparis")
    Set S2 = Sheets("giris")
    
    MÜŞTERİ = ComboBox1.Value
    
    If WorksheetFunction.CountA(S2.Range("E7:E" & Rows.Count)) = 0 Then
        MsgBox "Lütfen ürünlerin sipariş miktarlarını giriniz !", vbCritical
        Exit Sub
    End If
    
    S1.Range("D4:" & Cells(4, Columns.Count).Address).Orientation = 90
    
    Set BUL_MÜŞTERİ = S1.Rows(4).Find(MÜŞTERİ, , , xlWhole)
    If Not BUL_MÜŞTERİ Is Nothing Then
        Sütun = BUL_MÜŞTERİ.Column
    Else
        Sütun = S1.Cells(4, Columns.Count).End(1).Offset(0, 1).Column
        S1.Cells(4, Sütun) = MÜŞTERİ
    End If
    
    For X = 7 To S2.Cells(Rows.Count, 3).End(3).Row
        If S2.Cells(X, 5) <> 0 Then
            ÜRÜN = S2.Cells(X, 3)
            Set BUL_ÜRÜN = S1.Range("B:B").Find(ÜRÜN, , , xlWhole)
            If Not BUL_ÜRÜN Is Nothing Then
                S1.Cells(BUL_ÜRÜN.Row, Sütun) = S2.Cells(X, 5)
            Else
                Satır = S1.Cells(Rows.Count, 1).End(3).Offset(1).Row
                S1.Cells(Satır, 1) = S2.Cells(X, 2)
                S1.Cells(Satır, 2) = S2.Cells(X, 3)
                S1.Cells(Satır, 3) = S2.Cells(X, 4)
                S1.Cells(Satır, Sütun) = S2.Cells(X, 5)
            End If
        End If
    Next
    
    Set BUL = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
 
    MsgBox "Siparişler kayıt edilmiştir.", vbInformation
End Sub
 
Katılım
7 Mart 2011
Mesajlar
184
Excel Vers. ve Dili
2007 TR
Sayın Ayhan ;
çok teşekkür ederim. örnekten kendi çalışmama uyarladım şimdilik bir sıkıntı yok. elinize sağlık saygılar...


Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim MÜŞTERİ As String, ÜRÜN As String
    Dim BUL_MÜŞTERİ As Range, BUL_ÜRÜN As Range
    Dim X As Integer, Satır As Long, Sütun As Integer
    
    Set S1 = Sheets("siparis")
    Set S2 = Sheets("giris")
    
    MÜŞTERİ = ComboBox1.Value
    
    If WorksheetFunction.CountA(S2.Range("E7:E" & Rows.Count)) = 0 Then
        MsgBox "Lütfen ürünlerin sipariş miktarlarını giriniz !", vbCritical
        Exit Sub
    End If
    
    S1.Range("D4:" & Cells(4, Columns.Count).Address).Orientation = 90
    
    Set BUL_MÜŞTERİ = S1.Rows(4).Find(MÜŞTERİ, , , xlWhole)
    If Not BUL_MÜŞTERİ Is Nothing Then
        Sütun = BUL_MÜŞTERİ.Column
    Else
        Sütun = S1.Cells(4, Columns.Count).End(1).Offset(0, 1).Column
        S1.Cells(4, Sütun) = MÜŞTERİ
    End If
    
    For X = 7 To S2.Cells(Rows.Count, 3).End(3).Row
        If S2.Cells(X, 5) <> 0 Then
            ÜRÜN = S2.Cells(X, 3)
            Set BUL_ÜRÜN = S1.Range("B:B").Find(ÜRÜN, , , xlWhole)
            If Not BUL_ÜRÜN Is Nothing Then
                S1.Cells(BUL_ÜRÜN.Row, Sütun) = S2.Cells(X, 5)
            Else
                Satır = S1.Cells(Rows.Count, 1).End(3).Offset(1).Row
                S1.Cells(Satır, 1) = S2.Cells(X, 2)
                S1.Cells(Satır, 2) = S2.Cells(X, 3)
                S1.Cells(Satır, 3) = S2.Cells(X, 4)
                S1.Cells(Satır, Sütun) = S2.Cells(X, 5)
            End If
        End If
    Next
    
    Set BUL = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
 
    MsgBox "Siparişler kayıt edilmiştir.", vbInformation
End Sub
 
Katılım
7 Mart 2011
Mesajlar
184
Excel Vers. ve Dili
2007 TR
Sayın Ayhan Günaydın;
göndermiş olduğunuz kodları çalışmama uyarlamıştım. eklediğim yeni yerlerle ilgili olarak yeniden yardımınız hasıl oldu. müsait olduğunuzda bakabilir misiniz?
ekledim bir özet sayfasına verileri aktardığımız sayfadan müşterileri çağırıyorum. özet sayfada toplam alıyoruz. ancak macro toplama işinde daha çok acemiyim yapamadım bir türlü aslında çoketoplanın makro karşılığı olacak bir anlamda birinci sayfadaki müşteri adı ve ürün koduna göre toplam alacak örneğe ilave yaparak yeniden ekliyorum.
saygılarımla...
 

Ekli dosyalar

Üst