• DİKKAT

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

bir değer karşılığına gelen verileri sıralama

Katılım
3 Nisan 2014
Mesajlar
173
Excel Vers. ve Dili
excel 2010
arkadaşlar iş yeri pc sinde olduğum için dosya ekleyemedim ama A kolonunda aşağıya doğru 1 den 20 ye kadar sayılar var. B kolonunda ise bu sayıların yan satırında Takip Murat Takip Gamze ve Takip Ahu yazıyor. D1 hücresinde Takip Murat, E1 Hücresinde Takip Gamze ve F1 Hücresinde Taki Ahu var. Her kullanıcının altına doğru A kolonundaki sayıları yazdırmak istiyorum. bu konuda destek olma şansınız olur sa çok sevinirim.
 
Merhaba.

D1 hücresine uygulayın ve sağa doğru kopyalayın.
Kod:
=İNDİS($A$1:$A$20;KAÇINCI(D$1;$B$1:$B$20;0);0)
 
ömer bey merhabalar öncelikle desteğiniz için teşekkür ederim.

cep telefonumdan dosyayı ekledim. yapmak istediğimide kısaca belirttim. Takip Murat olarak bulunan edğerleri alt alta sıralamasını istiyorum açıkçası.
bu şekilde inceleyebilir misiniz?

syg.
 

Ekli dosyalar

Formulle yapinca sadece sayiyor fakat saymasi yerine a kolonundaki degerin kendisi getirilebilirmi? Ekledigim dosyada ben manuel olarak yazdim. Yani sonic olarak gelmesi bekledigim durum. Umarim bir sekilde yapilabilir destekleriniz icin simdiden cok tesekkur ederim.
 
Merhaba.

Aşağıdaki kod'u sayfanın kod bölümüne (alt taraftan sayfa adına fareyle sağ tıklayıp
KOD GÖRÜNTÜLEyi seçtiğinizde açılan ekranın sağ tarafına
) yapıştırın ve çalıştırın.
Kod:
Sub SIRALA()
Range("D2:F20").ClearContents
For sut = 4 To 6
    kişi = Cells(1, sut)
    For brn = 1 To 20
        If Cells(brn, 2) <> kişi Then GoTo 10
        Cells(Cells(21, sut).End(3).Row + 1, sut) = Cells(brn, 1)
10:     Next
Next
End Sub
 
Sayın ataköylü-59 desteğiniz için çok teşekkür ederim ama sanırım Ömer bey tarafından iletilen macro benim için daha faydalı olacak.
Ömer bey merhaba, Macro ekli örnekte tam istediğim gibi çalıştı. Kendi dosyama uyarlamak istedim ama hangi alanı nasıl değiştireceğimi bilemedim. Orjinalde yerleri biraz farklı ve 250 satırdan biraz fazla. zaman zaman da yeni satırlar ekliyorum ama 500 ü geçmeyecektir. Orjinal dosyadaki yerlerini belirtme için yeni bir dosya ekledim veriler aynen bu şekilde yer alıyor. Nasıl değiştirmem gerekir kodu bana yardımcı olabilirseniz kendimde yapmaya çalışırım.
 

Ekli dosyalar

Tekrar merhaba.

İşke tam da bu nedenle, cevaplarımın altındaki İMZA bölümünde;

gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge

şeklinde not var.
.
 
haklısınız Ömer bey, aslında çözüm tarafı kolay olması için aslında bu şekilde yampıştım ama sanırım yanlış yaptım kendimce iyilik yapmaya çalıştım. yerden göğe kadar haklısınız :( yazdığınız macrodaki yerleri uyarlayabilirim sandım ama gerçekten benim için zor iş. yinede emeğiniz için teşekkür ederim. hakkınızı helal edin.
 
Makro yazmayı bilmeyen üyelerimizin yanlış tercihlerinden biriside bu yöntemdir.

Temel yoksa verilen kodları nasıl düzenleyeceksiniz?

Tabiri caizse "apalamadan yürümeye kalkmak" buna denir.

Excel dersanesi bölümünde makrolarla ilgili temel bilgilere ulaşabilirsiniz. Bilmediğiniz yerleride foruma sorarak öğrenebilirsiniz. Ondan sonra size önerilen kodları kendi dosyanıza uyarlamaya çalışabilirsiniz. Bu şekilde işiniz daha kolaylaşır. Aksi durumda siz kodlara bakarsınız, kodlar da size bakar.
 
Tekrar özürdilerim böyle bir duruma sebep olmak beni cidden üzdü. Macro yazmayı bende çok istiyorum ama nerden nasıl başlarım karar veremedim. Her uzmanın farklı bir yorumu oluyor kodlarda mantık üretemedim. Sanırım birden fazla yol ve yöntem var. Ben örnek datamı çözümleyecek kadar bilsem yine yeter ama sanırım biraz zaman alacak.

saygılarımla.
 
Tekrar merhaba.

Yeni belge üzerinden oluşturulan kod aşağıda.
Kod'u bu kez bir MODÜL'e yapıştırın ve çalıştırın
(sayfalardan birine bir düğme/metin kutusu ekleyip buna fareyle
sağ tıklayıp MAKRO ATAyı seçin ve açılan küçük ekranda SIRALA isimli makroyu
seçip işlemi onaylarsanız, bu düğme/metin kutusuna tıklayarak da kod'un çalışmasını sağlayabilirsiniz
)

MODÜL: ALT+F11 tuşlarına bastığınızda açılan VBA ekranında,
üst taraftaki MENÜ çubuğunda INSERT -> Module 'yi seçin,
sol tarafta göreceğiniz yeni eklenen Modül'e fareyle çift tıklayın, sağdaki boş alan.
Kod:
Sub SIRALA()
Dim s1, pr As Worksheet
Set s1 = Sheets("Sayfa1"): Set pr = Sheets("PROSEDURLER")
[COLOR="blue"][SIZE="2"]'****Yukarıdaki kısım ile sayfa adları için kullanılacak kısaltmalar tanımlandı.[/SIZE][/COLOR]
son = pr.[A65536].End(3).Row[COLOR="blue"][SIZE="2"] '**** PROSEDURLER sayfasında A sütunundaki son dolu satır tespit edildi.[/SIZE][/COLOR]
s1.Range("Y3:AA1000").ClearContents[COLOR="blue"][SIZE="2"] '***Sayfa1'de isimlerin altına daha önce yazılan veri varsa temizlendi.[/SIZE][/COLOR]
For omr = 25 To 27 [COLOR="blue"][SIZE="2"]'***Sayfa1'de 25 - 27'nci sütunlar için döngü oluşturuluyor (yani Y-AA sütunları)[/SIZE][/COLOR]
    kişi = s1.Cells(2, omr)[COLOR="blue"][SIZE="2"] '*** kişinin adına bakılacak (2'nci satırda ve 25-27'nci sütunlarda)[/SIZE][/COLOR]
    For brn = 3 To son[COLOR="blue"][SIZE="2"] '***PRO sayfasında 3'üncü satırdan son dolu satıra kadar döngü kuruluyor.[/SIZE][/COLOR]
        If pr.Cells(brn, 9) <> kişi Or pr.Cells(brn, 8) = "" Then GoTo 10 [COLOR="blue"][SIZE="2"]'***PRO sayfasında 9'uncu sütundaki (I sütunu) isim aranılan isimden farklıysa VEYA ilgili satırda H sütunu boşsa aşağıdaki 10 ile başlayan satıra atlanacak[/SIZE][/COLOR]
        s1.Cells(Cells(65536, omr).End(3).Row + 1, omr) = pr.Cells(brn, 8) [COLOR="blue"][SIZE="2"]'*** isim tutuyorsa satırdaki H sütunundaki değer kişinin sütunundaki ilk boş hücreye yazılacak[/SIZE][/COLOR]
10:     Next[COLOR="blue"][SIZE="2"] '***PRO sayfasında sonraki satıra bak[/SIZE][/COLOR]
Next[COLOR="Blue"][SIZE="2"] '*** Sayfa1'de sonraki kişiye bak[/SIZE][/COLOR]
End Sub
NOT: Mavi renkli (başında TEK TIRNAK olan) kısımlar açıklamalar için kullanıldı, bunları silerek de kullanabilirsiniz.
 
ömer bey çok teşekkür ederim size karşı mahçup oldum. siz yşnede yardımcı oldunuz allah razı olsun. Tek bir sorum olacak. macro çalışıyor ama PROSEDURLER sayfasındaki H kolonundaki verileri getiriyor. B kolonunda verileri getirmesi içni nasıl bir düzeltme yapabiliriz.
saygılarımla.
 
Aşağıdaki satırda yer alan 8 sayısı alınacak verinin sütun numarasıdır, onu 2 yaparsanız B sütunundakini yazar.
Ancak unutmayın I sütunudaki isim tutuyorsa VE H sütunu dolu ise veri yazılacaktır.
Kod:
s1.Cells(Cells(65536, omr).End(3).Row + 1, omr) = pr.Cells(brn, 8)
 
Ömer bey binlerce kez teşkkür ederim. Elinize sağlık. her çekilde mükemml oldu.
bundan sonra açıklamalara daha dikkat edeceğim. Hızlı bir şekilde de macro öğrenmek için çalışmalara başlıyor olacağım.
tekrar teşekkür ederim.

saygılarımla.
 
Geri
Üst