• DİKKAT

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

3 ihtimalli veri süz aktar

Katılım
2 Haziran 2015
Mesajlar
349
Excel Vers. ve Dili
2010
Merhaba arkadaşlar benim makro ile 3 ihtimalli veri aktarmam gerek, şöyle ki
örnek sayfamda "VERİ" sayfasında "A" sütunundaki ve "AL"sütunundaki verileri süz, mükererer verileri süz,mükerer verileri filtrele,"AL" sütunun süz, eğer mükerer veriler "ALINACAK","ALINDI" ise "RAPOR" Sayfasına aktar, fakat mükerer değe hem
"ALINACAK" hem "ALINDI" hem "BEKLİYOR ise aktarma olacak kolay gelsin teşekkürler..
NOT "A sütunu ile CL sütunu arasında aktarım olacak


http://s4.dosya.tc/server5/jr4wo4/3_IHTIMAL.rar.html
 
Örnek dosyanızda olması gereken sonucu da paylaşır mısınız? Açıklamanız pek anlaşılır değil maalesef.

"VERİ" sayfasında "A" sütunundaki ve "AL"sütunundaki verileri süz,

Neye göre süzülecek?

mükererer verileri süz, mükerer verileri filtrele,

Nasıl mükerrer?

"AL" sütunun süz,

Neye göre süzülecek?

"eğer mükerer veriler "ALINACAK","ALINDI" ise "RAPOR" Sayfasına aktar, fakat mükerer değe hem
"ALINACAK" hem "ALINDI" hem "BEKLİYOR ise aktarma olacak"

Nasıl yani?
 
Merhaba sayın yusuf44 şöyleki "A" Sütununda ki H1AZCJ004606X7B seri nolu ürün "AL" sütundaki karşılığı "ALINACAK" "ALINDI" ise "RAPOR " Sayfasına aktar,eğer 3 üçüncü değeri "BEKLİYOR" İse aktarma, şeklinde olacak ve diğer seri noları da sayıp aynı işlemi yapacak
 
Aşağıdaki kodları bir modüle kopyalayıp dener misiniz?
(Muhtemelen tam olarak istediğiniz sonuç değil)
Kod:
Sub mükerreraktar()
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")

son = s1.Cells(Rows.Count, "A").End(3).Row
For i = 1 To son
    aranan = s1.Cells(i, "A").Value
    If WorksheetFunction.CountIf(s1.Range("A1:A" & son), aranan) > 1 Then
        durum = s1.Cells(i, "AI")
        If durum <> "BEKLİYOR" Then
            For j = i + 1 To son
                If s1.Cells(i, "A") = aranan Then
                    durum = s1.Cells(i, "A")
                    If durum = "BEKLİYOR" Then GoTo 10
                End If
            Next
            If durum = "ALINDI" Or durum = "ALINACAK" Then
                yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1
                s1.Range("A" & i & ":AC" & i).Copy s2.Cells(yeni, "A")
            End If
        End If
    End If
10:
Next
                
End Sub
 
Malesef sayın yusuf44 istediğim bu değil,süzme işleminde hem sayacak hem süzecek,
SERİ NO tek ise "ALINACAK" aktar,SERİ NO çift olsa "ALINACAK" ve "ALINDI" aktar fakat SERİ NO 3 tane ise"ALINACAK" ve "ALINDI" ise aktar ama "BEKLİYOR ise aktarılmayacak teşekkürler..
 
Mesajımda da belirttiğim gibi istediğiniz o değildi. Maalesef dosyanız ve açıklamalarınız yeterli değil. Örnek dosyanızda olabilecek her durumun Görüldüğü bir sonucu paylaşırsanız iyi olur. Dosyanızda " bu satırı aktar çünkü şundan dolayı, bu satırı aktarma çünkü bundan dolayı" gibi hiç bilmeyen birinin bile tereddüt etmeden anlayacağı açıklama bulunması işi hızlandırır.
 
Merhaba sayın yusuf44 "A" Sütunundaki değerleri RAPOR sayfasına aktar, eğer "A" sütununda ki değer "AL" sütununda ki karşlığı "BEKLYOR" ise aktarma

H1AZCJ004606X7B ALINACAK
H1AZCJ004606X7B ALINDI
H1AZCJ004606X7B BEKLİYOR "bu değerlerin hiçbirini aktarma"
 
Aşağıdaki gibi deneyiniz:

Kod:
Sub mükerreraktar()
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")

son = s1.Cells(Rows.Count, "A").End(3).Row
For i = 1 To son
    aranan = s1.Cells(i, "A").Value
    If s1.Cells(i, "AI") = "ALINDI" Or s1.Cells(i, "AI") = "ALINACAK" Then
        If WorksheetFunction.CountIfs(s1.Range("A1:A" & son), aranan, s1.Range("AI1:AI" & son), "BEKLİYOR") = 0 Then
            yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1
            s1.Range("A" & i & ":AC" & i).Copy s2.Cells(yeni, "A")
            
        End If
    End If
Next
                
End Sub

Eğer bu da olmazsa lütfen anlatım şeklinizi değiştirin, anlayabileceğimiz şekilde anlatın, demek ki anlayamıyoruz maalesef.
 
Merhaba sayın yusuf 44 estağfurullah,kodlarınızı denedim fakat aktarım olmadı, 1 seri numarası düşünün
bir parçası "ALINDI" aynı seri nolu ürünün bir parçası "ALINACAK" ve aynı seri nolu ürünün 1 parçası"BEKLİYOR" benim amacım "A" sütununda seri noları süzüp içlerinde "AL" sütününda "BEKLİYOR" yazan seri nolu ürünleri süz ve aktarma diğerlerini aktar şeklinde olacak teşekküler kolay gelsin..
 
Tablonun diğer hücre satır ve sütunlarında ne olursa olsun "Alındı" ve " Alınacak" olan tüm satırlar aktarılsın mı istiyorsunuz? Eğer öyleyse neden "mükerrer, Bekliyor" gibi durumlardan bahsediyorsunuz? Onlar önemli değil mi? Önemliyse son mesajınız nasıl olacak?

Eğer isteğiniz bu mesajı daki ilk cümledeki gibiyse son verdiğim kodda içiçe iki if ve End If satırı var. O iflerden arada olan satırları silin.

Kod:
Sub mükerreraktar()
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")

son = s1.Cells(Rows.Count, "A").End(3).Row
For i = 1 To son
    aranan = s1.Cells(i, "A").Value
    If s1.Cells(i, "AI") = "ALINDI" Or s1.Cells(i, "AI") = "ALINACAK" Then
            yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1
            s1.Range("A" & i & ":AC" & i).Copy s2.Cells(yeni, "A")
    End If
Next
                
End Sub
Eğer bu da olmazsa lütfen 7. Mesajdaki gibi açıklama ve örnek veriniz.
 
Merhaba Sayın yusuf44 kodlar "ALINACAK" ve "ALINDI" satırlarını aktarıyor buraya kadar sorun yok fakat aktardığı satırları ,aktarırken "VERİ" sayfası "A" sütununda süzecek ve eğer aktardığı satırlarda "AL" sütununda karşılığı "BEKLİYOR" Varsa o değerleri aktarmayacak( mükerer değer dediğim ise "A" sütununda tekarlayan satırların "ALINDI" "ALINACAK" "BEKLİYOR " değerine sahip olmasıydı teşekkürler..
 
9. Mesajda verdiğim kod herhangi bir kodun karşısında en az bir BEKLİYOR varsa o kodun hiçbir satırını aktarmıyor, diğer kodların AI sütunu ALINDI veya ALINACAK ise aktarıyor.

Son verdiğim kod herhangi bir kodun karşısında BEKLİYOR varsa o satırı aktarmıyor, ALINDI veya ALINACAK olan her satırı aktarıyor..

İkisi de olmuyorsa ne istiyorsunuz anlamıyorum. Ve bunu defalarca belirttim. Lütfen örnek dosyanızda "şu satır aktarılacak çünkü şundan dolayı, şu satır aktarılmayacak çünkü şundan dolayı " şeklinde açık net ve konuyu hiç bilmeyen bizim gibi kişilerin tereddütsüz anlayabileceği şekilde gösterin. Örnek dosyanızda farklı her durumun örneği olsun.
 
Öncelikle dosyanızda AL sütununda hiç veri yokken ve ALINDI ALINACAK ve BEKLİYOR ifadeleri AI sütunundayken sorularınızda hep AL sütununu kullanıyorsunuz, muhtemelen farkında değilsiniz.

Ben de A:CL aktarılması gerekirken hep A:AC aktarıyorum, bu da benim hatam.

Konuya dönersek:

1 - x kodlu ürün veri sayfasıdna sadece bir satırda geçiyor ve AI sütunu boş.
2 - y kodlu ürün veri sayfasında birden fazla satırda geçiyor ve hepsinin AI sütunu boş.
3 - z kodlu ürün veri sayfasında tek satırda geçiyor ve AI sütunu ALINDI
4 - a kodlu ürün veri sayfasında tek satırda geçiyor ve AI sütunu ALINACAK
5 - b kodlu ürün veri sayfasında tek satırda geçiyor ve AI sütunu BEKLİYOR
6 - c kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu birinin boş diğerinin ALINDI
7 - d kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu birinin boş diğerinin ALINACAK
8 - e kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu birinin boş diğerinin BEKLİYOR
8 - f kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu biri ALINACAK diğeri ALINDI
9 - g kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu biri ALINACAK diğeri BEKLİYOR
10 - h kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu biri ALINDI diğeri BEKLİYOR
11 - i kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu her ikisi de boş
12 - j kodlu ürün veri sayfasında 2 satırda geçiyor ve AI sütunu her ikisi de ALINDI ya da her ikisi de ALINACAK ya da her ikisi de BEKLİYOR
13 - k kodlu ürün veri sayfasında 3 satırda geçiyor ve AI sütunu üçü de boş
14 - l kodlu ürün veri sayfasında 3 satırda geçiyor ve AI sütunu ikisi ALINDI biri boş
15 - m kodlu ürün veri sayfasında 3 satırda geçiyor ve AI sütunu ikisi ALINACAK biri boş
16 - n kodlu ürün veri sayfasında 3 satırda geçiyor ve AI sütununda ikisi BEKLİYOr biri boş

vs
vs
vs

Gördüğünüz gibi alternatifler gittikçe çoğalıyor. Üç satırın durumunun da aynı 5 satırın durumu ortaya karışık vs bir sürü alternatif yapılabilir.

Bunca alternatif içinde doğru sonuca ulaşmak için tüm alternatifler için kesin net bir kural belirleyin. Ama bunu sizin bilgi ve düşüncenize göre değil bizim bilgi ve düşüncemize göre açıklayın. Çünkü siz konuyu bildiğiniz için size basit gelebilir ama biz konuya tamamen yabancıyız. Size çok basit gelen bir durumu anlamakta zorlanabiliriz.

O kod bir kere geçiyorsa ne olacak?
O kod iki kere geçiyorsa ne olacak?
O kod 3 kere geçiyorsa ne olacak?
O kod 3'ten fazla geçiyorsa ne olacak?
O kodun durumu hep boşsa ne olacak?
O kodun durumu her satırda aynı ise ne olacak?
O kodun durumu bazı satırlarda aynı bazı satırlarda farklı ise ne olacak?
O kodun durumu her satırda farklı ise ne olacak?
 
Merhaba sayın yusuf44 öncelikle sabırlı anlayışlı yardımınız için çok teşekkür ederim,sizi yormadan
şöyel özetlesem
1 ALINDI
1 ALINACAK
1 BEKLİYOR
2 ALINDI
2 ALINACAK
burdaki tabloda 1 değerine ait satırlarda "BEKLİYOR" değeri olduğu için , hiçbir satırı aktama 2 değerine ait satırları aktar "A" sütununda hiçbir satır boş değil,"AL" sütunuda hiçbir zaman boş değil teşekkürler

http://s8.dosya.tc/server5/78dwik/AKTAR.xlsx.html
 
Merhaba.

Soru sormak zor iş vesselam.

#diren YUSUF Bey.

Siz de benim gibi çok sabırlısınız.
.
 
Bunca zaman boşuna uğraştık muhtemelen. Çünkü son verdiğiniz dosyada 9. mesajda verdiğim kodu çalıştırdığımda 2 kodlu satırları Rapor sayfasına aktardı.

2 değişiklik yaptım:
Birincisi önceki mesajımda benim hatam olarak belirttiğim CL sütununa kadar aktarım için

Kod:
s1.Range("A" & i & ":[COLOR="Red"]AC[/COLOR]" & i).Copy s2.Cells(yeni, "A")
yerine

Kod:
s1.Range("A" & i & ":[COLOR="red"]CL[/COLOR]" & i).Copy s2.Cells(yeni, "A")

yaptım.

İkincisi verdiğiniz son dosyada VERİ sayfasının adında sonda bir boşluk varmış, sayfa adındaki o fazla boşluğu sildim.

Bunların dışında kodda hiçbir değişiklik yapmadım ve sonuç ektedir:

https://drive.google.com/file/d/1f-HDUcemvLASf6wOxy-MCDFyfWGOHscI/view?usp=sharing

Ayrıca daha önce de belirttiğim gibi sizin dosyada durum sütunu AI olduğu halde hala AL sütunu aktarılacak diyorsunuz. Ayrıca AL sütunu hiç boş olmaz demiştiniz ama ilk verdiğiniz dosyada 3, 5, 6, 10, 12 ve 13. satırlar boştu.

Muhtemelen 9. mesajdaki kodu çalıştıramadınız, dediğim gibi sorunsuz bir şekilde aktarım yapabiliyor.
 
Merhaba.

Soru sormak zor iş vesselam.

#diren YUSUF Bey.

Siz de benim gibi çok sabırlısınız.
.

Teşekkürler Ömer Bey. Amacımız hem öğrenmek hem öğretmek hem bilgi paylaşmak hem de sorun çözmek sonuçta. Kızmaca darılmaca olmaz bu işte, yeter ki saygı sınırları aşılmasın.
 
Yusuf44 Beyin kadunu birazcık değiştirdim belki olur
15 nolu mesajdaki dosyanıza göre bunu bir deneyiniz.

Kod:
Sub mükerreraktar()
Set s1 = Sheets([COLOR="Red"]"VERİ "[/COLOR])
Set s2 = Sheets("RAPOR")

son = s1.Cells(Rows.Count, "A").End(3).Row
For i = 2 To son

    If s1.Cells(i, "A") = "1" And s1.Cells(i, "AI") = "BEKLİYOR" Then
    Else
            yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1
            s1.Range("A" & i & ":AI" & i).Copy s2.Cells(yeni, "A")
    End If
Next
                
End Sub

not ilgili dosyanızda VERİ sayfası (VERİ ) olarak gözüküyor yanı sayfanın adının son tarafında boşlu var ona göre kırmızı yeri kendiniz düzeltin
 
Merhaba yusuf44,Ömer Bey,ve Halit bey öncelikle sabırlı yaklaşımınız için hepinize çok teşekkür ediyorum ve kodlarınızı denedim,VERİ sayfasında 1 rakamı örnektir ve değişkendir "BEKLİYOR" değeri içerdiği için aktarılmaması gerekiyor örnek dosyamı son halini değiştirip yüklüyorum hakkınızı helal edin yordum sizi umarım bu dosya açıklayıcı olur kolay gelsin..

http://s8.dosya.tc/server5/tc10ga/AKTAR_2.xlsx.html
 
Son düzenleme:
Geri
Üst