müşterilerin aldıkları mallar

Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
bir dosyam var 8000 satır müşteri isimler ve yan sutünlardan birine de aldıkları mallar girilmiş. bir kısmı

müşteri adı.. kodu ürün adı.
AYÞE DEMİRTAÞ 990324 MİMAR SİNAN 3'LÜ GÜVEÇ SADE SET
AYÞE DEMİRTAÞ 990408 ARZUM MODİCO SAÇ KURUTMA MKN.
AYNUR AK 990444 CEM TENCERE SETİ ÇAÐLA 9 PARÇA
AYTEN SÃ?NMEZSOY 990241 SERPA ELEKTRİKLİ BATTANİYE
İSMİ ALINMADI 323173 ORA VCD PLAYER

benim 2. dosyamda özel müşterilerimin ( 400 adet ) isimleri var. alta alta dizilmiş ve yanına telefonu yazılmış.

ben bu 8000 satır içinden benim özel müşterilerimin aldığı malları yanyana sıralamasını istiyorum


1 2 3 4 5 6 7
ahmet ora vcd b.şof mutfak rb. vs...
mehmet
ali
hüseyin

düşeyara formülü ile yapamadım.

yukarıdan da süz komutunu kullanacağım için bu bilgiler yanyana olmak zorunda. çünkü bir kampanyayı müşteriye haber verirken müşterinin daha önce o ürünü almadığını görmem gerekiyor.

yardımcı olursanız sevinirim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bir örnek dosya eklermisiniz.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
İstediğinizi formüllerle yapmak mümkün fakat veri sayınızın çok fazla olması dosyanızı şişirecektir. Bu sebeple makro ideal bir çözüm. Ekte örnek bir dosya hazırladım. Birde progressbar ekledim. Sanırım uygulama olarak iyi bir örnek olacaktır. Kodlarında taranan veri çok fazla olmasına rağmen oldukça hızlı çalıştığını düşünüyorum.
 
Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
çok güzel olmuş ancak satışların girildiği dosya ile isimlerini yazıdğım bazı müşterilerin dosyası farklı yerde idi. gerçek satış dosyasından kopyaladığım 1 sayfanın belli bir bölümü ve müşteri cep telefonlarını girdiğim dosyanın bir sayfasının belli bir bölümüydü. ben gercek özel müşterileri girdiğim dosyadan nasıl bu yaptığınız makroyu yapacağım. yani kendi sistemime nasıl oturtacağım?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer gerçek dosyanızın satır ve sutun yerleri değişmiyorsa, tüm verilerinizi aynı şekilde yukarıda verdiğim dosyanın ilgili sayfalarına kopyalayın. Makro verilerinizin tamamını algılayacaktır.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Butona bastığınızda karşınıza sağa doğru hareket eden bir bar çıkıyor bu verilerinizin taranmasının ne durumda olduğunu gösteriyor, sadece görsel amaçlıdır.
 
Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
MÜÞTERİLERİN TÜMÜNÜN GİRİLDİÃİ DOSYANIN YERİ C:\osman\satış & senet takibi.xls Ã?ZEL MÜÞTERİLERİN GİRİLDİÃİ DOSYA C:\CIGLTD\MÜÞTERİ CEP TELEFONLARI.XLS

İKİ DOSYAYI AYNI ANDA AÇIP LİSTELE TUÞUNA BASMAK İSTİYORUM. VE "MÜÞTERİ CEP TELEFONLARI" DOSYASINDA MÜÞTERİLERİN ALDIÐI MALLARIN LİSTELENMESİ K HÜCRESİNDEN BAÞLIYOR. O ÞEKİLDE AYARLAR MISINIZ?

BİR DE BUNUN NASIL YAPILDIÐINI BANA AÇIKLAR MISINIZ ?
 
Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
K HÜCRESİNDEN BAÞLIYOR YAZMIÞIM DÜZELTİYORUM

K SÜTUNU 4. SATIRDAN BAÞLIYOR.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu iki dosyanızın birebir bir örneğini eklerseniz onun üzerinden gidelim.

Bunun nasıl yapıldığını anlamak için alt+F11 ile kodların yazıldığı VB editörüne ulaşabilirsiniz. Konuyu tam olarak öğrenmek içinde makro ve vba konuları üzerinde çalışmaya başlamanız gereklidir.
 
Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
hep yaptığım makrolar makro kaydet tuşuna basıp yaptığım hareketlerle oluyordu. bunu pek ona benzetemediğim için sordum.

2 adet dosya göndereceğim ama 1. dosya "müşteri cep telefonları.xls" sığıyor ama tüm müşterilerin girildiği "satış & senet takibi.xls" dosyası sizin izin verdiğiniz aralıkların dışında.

tüm müşterilerin verildiği satış & senet takibi.xls dosyasının adresini versem yeterli olur mu ? hücre başlangıcı size göndermiş olduğum dosyanın "müşteri bilgi dosyası" sayfası ile aynı hücreden başlıyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Burada userform kullanıldığı için sizi yanıltmış olabilir, progressbarı kaldırırsak normal makro kaydet ile elde edilen yapıya çevirmek mümkün. Dosyalarınızda tüm verilerin bulunması gerekmez sadece 20-30 adet veri bulunması yeterlidir. Müşteri isimlerinide değiştirebilirsiniz. Gerçek dosyalar üzerinde çalışırsak, hata yapma ihtimalimiz ortadana kalkacaktır.
 
Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
son olacak galiba bu dosya sistemine oturtursak iş biter.

size özel müşterilerin dosyasını gönderiyorum. bu dosyanın adresi C:\CIGLTD\MÜÞTERİ CEP TELEFONLARI.XLS k sutunundan itibaren listelemesi gerekiyor. listeleyeceği dosya C:\osman\satış & senet takibi.xls dosyası sayfa adı da "SATIÞ & SENET" sayfası size ilk gönderdiğim dosya ile aynı yerde müşterilerin aldığı mallar mevcut size o dosyayı da gönderiyorum ikisiyle bağlantılı o yaptığınız tuşla basmalı makrosunu yaparsanız sevirinim.

not: satış senet takibi dosyasına müşteri cep telefonları dosyasınının sayfasını eklemememin sebebi dosyayı çok yavaşlatmasıdır.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekteki dosyayı inceleyin. Diğer "SATIÞ & SENET TAKİBİ" isimli dosyayı açmanıza gerek yoktur. Sadece eklediğim dosyayı herhangi bir klasöre kopyalayıp kodu çalıştırmanız yeterlidir.
 
Katılım
9 Ocak 2006
Mesajlar
313
Excel Vers. ve Dili
Excel 2007 türkçe
özür dilerim tamamıyla benim hatam.

sizi çok meşgul ettim ama ben yanlış kopyalamışım, C:\osman\satış & senet takibi.xls dosyasındaki (tüm müşterilerin bulunduğu dosya) da müşteri isimleri size gönderdiğim benim yanlış kopyaladığım dosyada gördüğünüz gibi B sütünundan değil orjinal dosyada C sütunundan başlıyormuş. o an çok müşterim geldiği için bunu fark edemedim. daha önceki metni 3 saat gibi bir zamanda zor yazmıştım. müşterim sürekli geldiği için. ondan dolayı kusura bakmayın. yazdığınız makroya baktım sütuna başvuru ile ilgili birşey göremediğimden kendim düzeltemedim. o şekilde düzeltilirse makro düzgün çalışacak.

şimdiden teşekkürler
müşteri isimleri ise benim yanlış kopyaladığım dosyada b2 den başlıyordu orjinal dosyada c4 den başlıyor. (aşağıya doğru.)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodu aşağıdaki gibi değiştirerek deneyin. Satılan mallarında E sütununda olduğu kabul edilmiştir. Eğer farklı bir sütunda ise kod içindeki kırmızı renkli harfi değiştirin.

[vb:1:9dfaa76283]Private Sub CommandButton1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.Open Filename:="C:\SATIÞ & SENET TAKİBİ.xls", UpdateLinks:=0
Workbooks("SATIÞ & SENET TAKİBİ.xls").Activate
Sheets("SATIÞ & SENET").Copy before:=Workbooks("MÜÞTERİ CEP TELEFONLARI.xls").Sheets(1)
Workbooks("SATIÞ & SENET TAKİBİ.xls").Save
Workbooks("SATIÞ & SENET TAKİBİ.xls").Close
Workbooks("MÜÞTERİ CEP TELEFONLARI.xls").Activate
Set s1 = Sheets("sayfa1")
Set s2 = Sheets("SATIÞ & SENET")
s1.Select
s1.[k5:y65536].ClearContents
ProgressBar1.Min = 4
ProgressBar1.Max = s1.[f65536].End(3).Row
For a = 5 To s1.[f65536].End(3).Row
bul = 1
say = WorksheetFunction.CountIf(s2.[c4:c65536], s1.Cells(a, "f"))
If say > 0 Then
For b = 1 To say
adr = "c" & bul + 1 & ":c65536"
bul = WorksheetFunction.Match(s1.Cells(a, "f"), s2.Range(adr), 0) + bul
adr2 = "k" & a & ":y" & a
sut = WorksheetFunction.CountA(s1.Range(adr2)) + 11
s1.Cells(a, sut) = s2.Cells(bul, "e")
Next
End If
ProgressBar1 = a
Next
Columns("K:Y").EntireColumn.AutoFit
Sheets("SATIÞ & SENET").Delete
ActiveWindow.ScrollColumn = 6
Unload Me
End Sub
[/vb:1:9dfaa76283]
 
Üst