endekse göre bulup diğer sayfaya aktarma

Katılım
5 Şubat 2005
Mesajlar
22
Arkadaşlar merhaba.
foruma yeni katıldım ve excelde ne kadar işlerimizi kolaylaştıracak şeyler yapıldığını gördüm.tüm forum sayfalarını geziyorum ve arkadaşlar arasındaki yardımlaşmaya hayran kaldım.bilgimin yetersizliğinden sorunumu kendim çözemedim ve sizlerden yardım istiyorum.
2 acil yardım gerektiren konum var.
ilki alta eklemiş olduğum dosyada bir çok çalışma sayfası var.ben sadece bir sayfasını gönderdim.burda istediğim E sutünunda kullanımı 0 dan büyük olan firmaların ada no,parsel no ve isimleriyle birlikte sıra nolarıda güncellenerek firma listesi sayfasına aktarmak istiyorum.Birde bir buton ile firma ismine göre arama yapabilmek istiyorum.Bunları yapabilmenin imkanı varsa sizlerin yardımlarını bekliyorum.
ikinci yardım istediğim konu alta eklediğim tabloda s.çapı (E sütunu) istediğim çapa göre,t.tarih(h sütunu) tarihe göre artan veya azalan ,firma sahibi(f,g sütunu) sütununu a'dan z'ye ayrı ayrı sıralayabilmek ve sıralarkende adano,parsel no,takılan,sökülen,endeks ve notlar bölümünün sıralamadan sonra yerlerine gidecek şekilde olmasını istiyorum.Çok şey istiyorum biliyorum ama tablolar çok uzun ve sıralaması elle zor.Yardımlarınızı bekliyorum.İşlerinizde başarılar dilerim.
 

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
Merhaba
Ã?ncelikle hoşgeldiniz. Güzel sözleriniz içinde teşekkür ederiz. Sorularınıza gelince üzerinde düşünülmesi gerektiği için cevap konusunda sabırlı olmanızı rica ederim. İkinci sorunuza bir örnek hazırladım inceleyiniz. Tam olarak isteğinizi karşılamazsa tekrar bildirirsiniz.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Ã?teki sorunun bir kısmıda benden , listeleme işini yapıyor.

Ama arama ile ilgili açıklamaya ihtiyacım var, Ctrl+F ile yapılan aramadan farklı olarak nasıl bir kolaylık bekliyorsunuz, biraz daha açarmısınız.
 
Katılım
5 Şubat 2005
Mesajlar
22
leventm çok teşekkür ederim.hiç bu kadar hızlı yanıtlanacağını tahmin etmemiştim.tarih ve firma ismine göre sıralamayı mükemmel yapıyor.yalnız sayaç çapı sıralamasında neden kaynaklanıyor bilmiyorum ama düzgün sıralamıyor.bunu giderebilirmiyiz.birde markaya göre sıralama ekleyebilirsek çok memnun olurum.birde bu butonları nasıl kendi sayfama kopyalayabilirim biraz bilgi verirseniz sevinirim.sizleride yoruyorum ama kusura bakmayın.Çok teşekkürler
 
Katılım
5 Şubat 2005
Mesajlar
22
danersin arkadaşımada çok teşekkür ederim.
çok güzel olmuş,bu çalışma kitabında mükemmel çalışıyor.Sorumdada bahsettiğim gibi bir çok sayfa var.Listele butonunu bu sayfalara nasıl yapıştırırım,firma listesi olarak ayrı bir sayfa açmam gerekiyormu,oradada böyle mükemmel çalışırmı? birde bu konuda biraz yardımınızı alabilirsem çok sevinirim.Kusura bakmayın sorularım çok acemice ama yeni başladım bir şey bilmiyorum,inşallah sizin seviyenize azda olsa yaklaşabilirim.Selamlar.İşlerinizde başarılar dilerim
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Benim kodumun diğer sayfalardanda aynı şekilde çalışması için aşağıdaki gibi olması gerekiyor.

Sub kulananlar()
Worksheets("firma listesi").Range("liste").ClearContents 'liste isimli alanı temizler, bu alanı istediğiniz şekilde yeniden tanımlayın
k = 8 'firma listesinde kaçıncı sayfadan itibaren yazmaya başlayacak
For i = 9 To Cells(65536, 5).End(xlUp).Row
If Worksheets("firma kullanım").Cells(i, 5) > 0 Then
Worksheets("firma listesi").Cells(k, 1) = k - 7
Worksheets("firma listesi").Cells(k, 2) = Cells(i, 2)
Worksheets("firma listesi").Cells(k, 3) = Cells(i, 3)
Worksheets("firma listesi").Cells(k, 4) = Cells(i, 4)
k = k + 1
End If
Next i
End Sub

Levent beyin sıralama ile ilgili koyduğu 3 düğmenin kodları ise aşağıdaki gibi ; bu kodlarda Range("E4", Range("G4").. sıralamanın hangi sütuna göre yapılacağını belitliyor. dolayısı ile bu kodları farklı sub isimleri ile kopyalayıp istediğiniz sütuna göre kopyalama yapabilirsiniz. yani
Marka sütunu içinde ;
Sub firma()
Range("B4:L" & Cells(65536, 1).End(xlUp).Row).Sort Key1:=Range("d4")
Range("a1").Select
End Sub
yapmanız gerekli. Çapları sıralaması excel açısından doğru. ancak hücre biçimlendirmesini fraction(kesir?) yapıp, inch işaretlerinide kullanmazsanız istediğiniz gibi bir sıralama yapar.

Ben bu düzeltmeleri yapıp dosyaları ekliyorum. Ama bu kodları kendi dosyanıza nasıl taşırsınızı iki cümle ile anlatmak zor, anlatımı daha iyi olan biri (örneğin Snxxrt anlatabilirmii :hey: , yada forumda konu ile ilgili arama yapabilirsiniz. Kısaca VBA editörünü açıp (Alt+F11) ile oraya bir modül koyup, prosedürleri o modüle kopyalamanız arkasından sayfada oluşturacağınız düğmelere makroları atamanız gerekiyor.
 

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
Ersin beye açıklamaları ve dosyaya yaptığı ilave için çok teşekkür ediyorum. Bu hazırlanan dosyalar gönderdiğiniz örnekteki referans değerlerini esas alarak hazırlanmıştır. Eğer asıl dosyanızda başlık sayısı,tablonun başladığı satır ve sütun numarası gibi değerler farklı ise yazılan makroları yeni çalışmaya uydurmak gerekir. Eğer bir fark yoksa size tavsiyem asıl dosyanızdaki tabloları bu örnek dosyalardaki sayfalara kopyalayın ve bunu asıl dosyanız yapın. Birde sayfa isimlerini değiştirmeyin. Bu uyarılarımı dikkate alırsanız sanırım sorun olmaz,aksi takdirde makrolar doğru çalışmaz veya hata mesajı verir. Eğer asıl dosyanıza ilavede sorun yaşarsanız,dosyanızın tabloları bozmamak kaydı ile verileri silerek gönderin biz gerekli ilaveleri yapalım.
 
Katılım
5 Şubat 2005
Mesajlar
22
Danersin ve Leventm arkadaşlarıma teşekkür ederim.
Tavsiyelerinize uyarak şimdilik orjinal dosyadan kopyalayıp yapıştırarak kullanacağım.Orjinal dosyaya denedim ama hata verdi.Buda benim acemiliğimden kaynaklanıyor.Orjinale sizlerin yapmış olduğunuz makroları uygulamaya çalışacağım inşallah olur,uygularken sizlerinde yardımlarını beklerim.
danersin arkadaşımızın bahsettiği gibi benim gibi acemilerinde anlayabileceği dilde Snxxrt arkadaşımızında yardımlarını bekleriz.İşlerinizde başarılar
 

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
Levent bey bir anlık yokluğunuzu fırsat bulmuşken sizin dosyayada el attım. pardon.
Ersin bey dosyayla ilgilendiğiniz için özellikle teşekkür ediyorum,Bugün ilgilenecek fazla vakit bulamamıştım. Her zaman örneklerin ikinci bir gözle tekrar incelenmesini desteklemişimdir. Hatta alternatif öneriler olursa bundan dahada memnun olurum. Bu sebeple lütfen bu tip açıklamalar yapma gereği duymayın. Ã?neri ve desteğinize her zaman ihtiyacımız var.
 
Katılım
5 Şubat 2005
Mesajlar
22
TEÞEKKÜRLER ERSİN BEY.
Tavsiyeniz üzere dosyaları indirdim.
Abone sayaç listesinde haddim olmayarak ada ve parsel sıralaması ekledim.lakin ikisinin aynı anda düzgün sıralamasını sağlayamadım.düzgün sıralanmayan kısımları sarı ile doldurdum.Nerde hata yapmışım bir bakarsanız sevinirim.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Aslında mantık yürütmeniz iyi ama VBA'nın mantığı daha farklı , aşağıdaki şekilde düzeltirseniz 2 sütuna göre sıralama yapabilirsiniz, veya virgülden sonra Key3 ile bir sütun daha ekleyebilirsiniz.
VBA'nın bu kodları ne şekilde yazdığını anlamak için en güzel yol makro rekorder kullanarak Excel'in kendi yazdığı kodları incelemek.

Kod:
Sub ADANOPARSELNO()
    Range("B4:L" & Cells(65536, 1).End(xlUp).Row).Sort Key1:=Range("B4"), Key2:=Range("c4")
    Range("A1").Select
End Sub
 
Katılım
5 Şubat 2005
Mesajlar
22
leventm ve Ersin bey dün teşekkür etme fırsatım olmadı.Fakat söylediklerinizi aynen uyguladım ve çok işimi gördü.
Birde endeks çalışma kitabına arama butonu ekleyerek,butona tıklandığında bir kutu açılacak şekilde bu kutudada ada no,parsel no,firma isimlerine göre ayrı ayrı arama yapabilecek bir şey ekleyebilirmiyiz.İyi çalışmalar dilerim
 
Katılım
5 Şubat 2005
Mesajlar
22
Merhaba arkadaşlar.
endeks ve abone listesinde kullandıkça yeni ihtiyaçlar doğuyor.Sağolsunlar ersin bey ve levent bey yardımlarını eksik etmediler.bir şeyler daha istersem herhalde yardımlarınızı esirgemezsiniz.
ilk isteğim endeks çalışma kitabına ve abone sayaç listesi kitabına arama butonu ekleyerek,butona tıklandığında bir kutu açılacak şekilde bu kutudada ada no,parsel no,firma isimlerine göre ayrı ayrı arama yapabilecek bir şey ekleyebilirmiyiz.
diğer isteğim endeks çalışma kitabında E sutünundaki kullanımı olanları firma listesi sayfasına aktarıyordu,bir ihtiyaç daha doğdu.firma kullanım sayfasından firma listesine aktarırken girmiş olduğumuz ayın endeksine göre (mesela mart ayı endeksini gireceğiz) G sütunu ocak ayı endeksi ve L sütunu şubat ayı endekslerinide firma listesi sayfasına aktarmak istiyorum.Bu son aya kadar firma listesi sayfasında E,F,G sütunlarına yerleşebilirmi.Þimdiden teşekkürler
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
İlk sorunuzuz doğru anladı isem soruyu Userform kullanmak gerekir. Makrolar ile haşır neşir olmadığınıza göre userformlu çözüm çok uğraştırır sizi onun yerine forumdan "excelin arama fonksiyonunıu" kullanan örneklere bakıp farklı çözüm üretmeye çalışın derim, yada userform'la yardımcı olacak arkadaş varsa buyursun..

ikinci sorunuz için kodda ilk 2 ayla ilgili satırları ekledim. Kodlar ile çalışacaksanız en azından kodlarda böyle küçük düzeltmeleri yapacak kadar öğrenmeniz gerektiğini düşünüyorum. Diğer aylar içinde benim eklediğim mantıkla yeni satırlar ekleyeceksiniz sadece..eşitliğin sol tarafında "(k,6)" daki 6 rakamı birer birer artacak, sağ tarafta ise 2,3,4,7,12 diye giden sütun numarası firma kullanım sayfasından hangi sütundaki bilgiyi taşımak istiyorsanız o sütunun numarası yazılacak.

Kod:
Sub kulananlar()
Worksheets("firma listesi").Range("liste").ClearContents 'liste isimli alanı temizler, bu alanı istediğiniz şekilde yeniden tanımlayın
k = 8 'firma listesinde kaçıncı sayfadan itibaren yazmaya başlayacak
For i = 9 To Cells(65536, 5).End(xlUp).Row
    If Worksheets("firma kullanım").Cells(i, 5) > 0 Then
        Worksheets("firma listesi").Cells(k, 1) = k - 7
        Worksheets("firma listesi").Cells(k, 2) = Cells(i, 2)
        Worksheets("firma listesi").Cells(k, 3) = Cells(i, 3)
        Worksheets("firma listesi").Cells(k, 4) = Cells(i, 4)
        Worksheets("firma listesi").Cells(k, 5) = Cells(i, 7) 'eklenen satır1
        Worksheets("firma listesi").Cells(k, 6) = Cells(i, 12) 'eklenen satır2
        k = k + 1
    End If
Next i
End Sub
 
Katılım
5 Şubat 2005
Mesajlar
22
Ersin bey anlattıklarınızı çok iyi anladım.Hazır yiyicilik olarak lütfen algılamayın ama ayın sonunun gelmesi sebebiyle makro ve diğer konulara çalışamıyorum.Sizlerin yardımlarını bekliyorum.Teşekkür ederim.
iki soru sorabilirmiyim size ,ilki P9 satırına şu şekilde bir formül yazmış idim. =EÐER(L9>0;L9-G9;EÐER(O9>0;O9)) lakin burada L9>0 işlemi tek başına bu satırda ve diğer aylarda işimi görmüyor.G9 satırında değer olmaması durumunda p9 satırı formülü hesabı L9-I9 şeklinde olması gerekiyor.Bu formülü bir türlü oturtamadım.
ikincisi ise biraz önce verdiğiniz cevapla ilgili firma listesine aktarmayı verdiğiniz bilgiler doğrultusunda düzenledim.lakin sayacın arıza yapması durumunda değerG sütununa değil I sütununa giriyordum.böyle olunca listeleme yaparken g sütununda değer yoksa I sütunundan almasını ve hangi aya aitse oraya yazmasını istiuorum.Yardımlarınızı bekliyorum.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Sorunuza birkaç saat içinde bakacağım ama sizde kesinlikle yanlış anlamayın, kodlar ile çalışan bir dosyada her zaman için ufak efek değişiklikler yapmak sizin faydanıza. ancak anlayana dek sormaktanda hiç çekinmeyin..
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Formül için aşağıdaki hali işinize yararmı;
Yalnız ben anlamadım, sizin verdiğiniz formülde(dolayısı ile benimkindede) kullanılan su eksiye düşüyor.

=IF(AND(G9>0;L9>0)=TRUE;L9-G9;IF(AND(G9="";L9>0)=TRUE;L9-I9;IF(O9>0;N9;FALSE)))
önümdeki excel ing. olduğundan böyle yazdım kusura bakmayın.
IF = EÐER
TRUE =DOÐRU
AND = VE
FALSE=YANLIÞ
olarak düzeltilecek.



İkinci sorunuz içinde yine ilk 2 ay için yapacak şekilde kodu ekliyorum, diğer aylar için aylara ait if blokları aynı şekilde uzatılacak. blokları kodda yazdım

Kod:
Sub kulananlar()
Worksheets("firma listesi").Range("liste").ClearContents 'liste isimli alanı temizler, bu alanı istediğiniz şekilde yeniden tanımlayın
k = 8 'firma listesinde kaçıncı sayfadan itibaren yazmaya başlayacak
For i = 9 To Cells(65536, 5).End(xlUp).Row
    If Worksheets("firma kullanım").Cells(i, 5) > 0 Then
        Worksheets("firma listesi").Cells(k, 1) = k - 7
        Worksheets("firma listesi").Cells(k, 2) = Cells(i, 2)
        Worksheets("firma listesi").Cells(k, 3) = Cells(i, 3)
        Worksheets("firma listesi").Cells(k, 4) = Cells(i, 4)
        
        '1. aya ait blok
        If Cells(i, 7) = 0 Then
        Worksheets("firma listesi").Cells(k, 5) = Cells(i, 9)
        Else
        Worksheets("firma listesi").Cells(k, 5) = Cells(i, 7)
        End If
        
        '2. aya ait blok
        If Cells(i, 12) = 0 Then
        Worksheets("firma listesi").Cells(k, 6) = Cells(i, 14)
        Else
        Worksheets("firma listesi").Cells(k, 6) = Cells(i, 12)
        End If
               
        
        k = k + 1
    End If
Next i
End Sub
 
Katılım
5 Şubat 2005
Mesajlar
22
ERSİN BEY İLGİNİZE NE KADAR TEÞEKKÜR ETSEM AZDIR.
benim kitapta su eksi çıkmadı.deneme çalışma kitabında mükemmel çalışıyor.Bunları ana kitaba aktararak denemeye çalışacağım.Herhangi bir olumsuz durumda sizi tekrar rahatsız edebilirmiyim.Tekrar teşekkür ederim.Çalışmalarınızda başarılar.
 
Üst