Böylesine önemli bir konunun açıklanmasını çok güzel anlatan Uzman Excel arkadaşımıza teşekkür ederim. Bu yorumu yaparken ben dahil 47 beğeni olmuş ki bana göre çok üzücü.
Teşekkür ederim. Çok sade güzel bir ders oldu. Çok sağolun. Z den A ya sıralamayı büyüktür yerine küçüktür yapınca gayet güzel çalıştı:) If mColl(i) < mColl(j) Then
@@UzmanExcel Mehmet bey yaklaşık 30 yıllık inşaatçıyım Programcı yapacaksınız bizi :) Emekleriniz için Tekrar teşekkürler. Allaha emanet Modul Kısmına Sub GeriyeDogruIslem() Dim eskiColl As New classDictionary With eskiColl .Ekle "Sedat" .Ekle "Vedat" .Ekle "Nihat" .Ekle "Ahmet" End With eskiColl.GeriyeDogru End Sub 'class kısmına Public Sub GeriyeDogru() Dim YeniColl As New Collection Dim i As Long
For i = mColl.Count To 1 Step -1 YeniColl.Add mColl(i) Next i Set mColl = YeniColl End Sub
Bi yöntem daha var Tek Fonksiyon de yapmak Class kısmı Public Function AZSirala(Optional SiralamaMetodu As Boolean = True) Dim i As Long Dim j As Long Dim vTemp As Variant For i = 1 To m_col.Count For j = i + 1 To m_col.Count If m_col(i) > m_col(j) And SiralamaMetodu = True Then vTemp = m_col(j) m_col.Remove j m_col.Add vTemp, vTemp, i ElseIf m_col(i) < m_col(j) And SiralamaMetodu = False Then vTemp = m_col(j) m_col.Remove j m_col.Add vTemp, vTemp, i End If Next j Next i End Function
Merhaba hocam. Raiseevent olayını rica etsem anlatabilr misiniz? Event ve Raiseevent beraber kullanılıyor heralde.Araştırmalarımda anlatamadım ve sanırım Türkçe kaynskta yok.
Merhaba Hocam. Çok meraklı, afacan biriyimdir :) Orayı burayı karıştırırken, VBA'ya alternatif olarak Python kullanıldığını öğrendim. Neyyy! Python mu? Evet. Hatta yıllardan beri gelen bir süreçmiş. Excel uzmanları VBA'nın eskiliğinden, yetersizliğinden şikayet edip duruyorlarmış Microsoft'a. Yeni bir, özellikle 'otomasyon' diline ihtiyaç olduğundan bahsediyorlarmış. Python'un zaten acayip 'utility'leri var: Pandas, Numpy gibi. [Python biliyorum.] Vs... Söyleseydiniz ya Hocam, "VBA ile kafanı yorma, (Excel için) Python'a yönel" diye! Neyse... Bu VBA kursunu bitirdiğinize göre, belki "Python ile Excel" gibi bir kursa başlarsınız. Biz de sizi izlemeye devam ederiz. Çalışmalarınızda kolaylıklar dilerim.
Python ile Excel kullanmak tam bir çile. Excel için hala en iyisi. Native sonuçta. Pandas zaten Excelin aynısı. Bence Python Excel için pek de uygun değil
Merhaba, ZA sıralamada bir If ile çözmek olası. Kodlar biraz uzun gibi olabilir ama sonuca ulaştırır. Public Function AZSirala(Optional SiralamaMetodu As Boolean = True) Dim i As Long Dim j As Long Dim vTemp As Variant If SiralamaMetodu = True Then For i = 1 To m_Coll.Count - 1 For j = i + 1 To m_Coll.Count If m_Coll(i) > m_Coll(j) Then vTemp = m_Coll(j) m_Coll.Remove j m_Coll.Add vTemp, vTemp, i End If Next j Next i Else For i = 1 To m_Coll.Count - 1 For j = i + 1 To m_Coll.Count If m_Coll(i) < m_Coll(j) Then vTemp = m_Coll(j) m_Coll.Remove j m_Coll.Add vTemp, vTemp, i End If Next j Next i End If End Function
Böylesine önemli bir konunun açıklanmasını çok güzel anlatan Uzman Excel arkadaşımıza teşekkür ederim. Bu yorumu yaparken ben dahil 47 beğeni olmuş ki bana göre çok üzücü.
Çok teşekkür ederim Necdet Bey. Çok naziksiniz. İnşallah artar diyelim
Çok teşekkürler. Ağzınıza sağlık.
Çok teşekkür ederim Adnan Bey. Çok naziksiniz
Teşekkür ederim. Çok sade güzel bir ders oldu. Çok sağolun. Z den A ya sıralamayı büyüktür yerine küçüktür yapınca gayet güzel çalıştı:) If mColl(i) < mColl(j) Then
Reverse olanın cevabını merak ediyorum aslında Sedat Bey. Onunla ilgili bir kodunuz var mi?
@@UzmanExcel Mehmet bey yaklaşık 30 yıllık inşaatçıyım Programcı yapacaksınız bizi :) Emekleriniz için Tekrar teşekkürler. Allaha emanet
Modul Kısmına
Sub GeriyeDogruIslem()
Dim eskiColl As New classDictionary
With eskiColl
.Ekle "Sedat"
.Ekle "Vedat"
.Ekle "Nihat"
.Ekle "Ahmet"
End With
eskiColl.GeriyeDogru
End Sub
'class kısmına
Public Sub GeriyeDogru()
Dim YeniColl As New Collection
Dim i As Long
For i = mColl.Count To 1 Step -1
YeniColl.Add mColl(i)
Next i
Set mColl = YeniColl
End Sub
Doğru cevap. Tebrikler. Hepinizi developer yapacağım inşallah
Teşekkür ederim
Güzel bir konu olmuş
Çok teşekkür ederim Ali Bey. Çok naziksiniz
Hocam
Kodu hazırladım
Buraya yazabilirsiniz Ali Bey
Bi yöntem daha var
Tek Fonksiyon de yapmak
Class kısmı
Public Function AZSirala(Optional SiralamaMetodu As Boolean = True)
Dim i As Long
Dim j As Long
Dim vTemp As Variant
For i = 1 To m_col.Count
For j = i + 1 To m_col.Count
If m_col(i) > m_col(j) And SiralamaMetodu = True Then
vTemp = m_col(j)
m_col.Remove j
m_col.Add vTemp, vTemp, i
ElseIf m_col(i) < m_col(j) And SiralamaMetodu = False Then
vTemp = m_col(j)
m_col.Remove j
m_col.Add vTemp, vTemp, i
End If
Next j
Next i
End Function
Benden önce yorum yapılmış, geç kalmışım :)
Veee mehmet hocam bizi bilgisiz bırakmamış. Hocam biz senden önce hücreye bilgi yazdırınca kendimizi filozof görüyorduk 😊
Çok teşekkür ederim Sefa Bey. Çok naziksiniz.
Merhaba hocam.
Raiseevent olayını rica etsem anlatabilr misiniz?
Event ve Raiseevent beraber kullanılıyor heralde.Araştırmalarımda anlatamadım ve sanırım Türkçe kaynskta yok.
İnşallah Zafer Bey. Listeye ekliyorum
Hocam
Sıralama metodu False ise ayrı Sub'te aynı sıralamayı Küçük ise yaparak sıralayıp Exit Function yaparak fonksiyon'den çıkabiliriz
Tabii If yardımıyla
Kod blogunu bekliyorum Ali Bey. :)
Cevaplari merak ediyorum
Merhaba Mehmet bey, Udemy ders videolarının devamı gelecek mi, sanırım dersler tam olarak bitmedi.
Merhaba Nurullah Bey. Udemy dersleri bitti. Pek vaktim yok ama inşallah yeni videolar çekersem TH-cam'a, onları da yüklerim Udemy'e
Merhaba Hocam, array deki bazı verileri döngü ile çıkarmak istiyorum mümkün müdür?
Benim yeni array class videomu izleyebilirsiniz. Orda anlatıyorum
@@UzmanExcel sanırım çokefiltrele den bahsettiniz hocam çünkü tüm videolarınızı izledim. Çokefiltrelede de hariç tut diyemedim sanırım beceremedim.
Onu yeniledim. En son versiyonunu indirebilirseniz hata muhtemelen gidecektir
@@UzmanExcel şimdi oldu hocam çok teşekkürler 🙏🏻
Hocam sanki yeni video vardı göremiyorum. Yanlış mı izledim yarısını? 😅
O videodaki Google Sheets Form özellikleri değişmiş. Artık doğru değil ordaki bilgiler. Ondan kaldırdım
Miras alma yok degil mi? Vba da
Maalesef
Merhaba Hocam.
Çok meraklı, afacan biriyimdir :)
Orayı burayı karıştırırken, VBA'ya alternatif olarak Python kullanıldığını öğrendim.
Neyyy! Python mu?
Evet.
Hatta yıllardan beri gelen bir süreçmiş. Excel uzmanları VBA'nın eskiliğinden,
yetersizliğinden şikayet edip duruyorlarmış Microsoft'a. Yeni bir, özellikle
'otomasyon' diline ihtiyaç olduğundan bahsediyorlarmış. Python'un zaten acayip
'utility'leri var: Pandas, Numpy gibi. [Python biliyorum.] Vs...
Söyleseydiniz ya Hocam, "VBA ile kafanı yorma, (Excel için) Python'a yönel" diye!
Neyse... Bu VBA kursunu bitirdiğinize göre, belki "Python ile Excel" gibi bir
kursa başlarsınız. Biz de sizi izlemeye devam ederiz.
Çalışmalarınızda kolaylıklar dilerim.
Python ile Excel kullanmak tam bir çile. Excel için hala en iyisi. Native sonuçta. Pandas zaten Excelin aynısı. Bence Python Excel için pek de uygun değil
Merhaba, ZA sıralamada bir If ile çözmek olası. Kodlar biraz uzun gibi olabilir ama sonuca ulaştırır.
Public Function AZSirala(Optional SiralamaMetodu As Boolean = True)
Dim i As Long
Dim j As Long
Dim vTemp As Variant
If SiralamaMetodu = True Then
For i = 1 To m_Coll.Count - 1
For j = i + 1 To m_Coll.Count
If m_Coll(i) > m_Coll(j) Then
vTemp = m_Coll(j)
m_Coll.Remove j
m_Coll.Add vTemp, vTemp, i
End If
Next j
Next i
Else
For i = 1 To m_Coll.Count - 1
For j = i + 1 To m_Coll.Count
If m_Coll(i) < m_Coll(j) Then
vTemp = m_Coll(j)
m_Coll.Remove j
m_Coll.Add vTemp, vTemp, i
End If
Next j
Next i
End If
End Function
Bu yavaş bir sort algoritmasi, bunu merge sort algoritmasi ile yaparsaniz daha hızlı olacaktır
@@UzmanExcel merge sort olayını ilk defa duydum, bilsem uğraşırdım. Teşekkürler.
Binary search gibi çalışıyor