yasin85
Altın Üye
- Katılım
- 29 Haziran 2011
- Mesajlar
- 266
- Excel Vers. ve Dili
- 2019, Türkçe
- Altın Üyelik Bitiş Tarihi
- 25-08-2026
Ekli dosyalar
-
235.4 KB Görüntüleme: 17
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sn. @Orion1 ,Benzersiz aşağıdaki gibi oldu.
Dosya ektedir.
Kod:Private Sub UserForm_Activate() Dim f As Long, prgrsbaruzunluk As Double, deg3 As Long Dim labeluzunluk As Double, oran As Double Dim sh As Worksheet, i As Long, x As Integer, sonsat As Long Dim sat As Long, j As Byte, kod As String, ayirac As String Dim deg As Integer, sonuc As String, myarr(), liste() Dim z As Object, n As Long, refno As String Sheets("Sayfa2").Select Set sh = Sheets("Sayfa1") Range("A2:C" & Rows.Count).Clear Range("B2:B" & Rows.Count).NumberFormat = "@" Range("C2:C" & Rows.Count).NumberFormat = "#,##0" Application.ScreenUpdating = False sonsat = sh.Cells(Rows.Count, "A").End(xlUp).Row Set z = CreateObject("scripting.dictionary") sat = 2 Application.ScreenUpdating = False prgrsbaruzunluk = 16381 * 2 * (sonsat - 1) labeluzunluk = Label2.Width Label2.Width = 1 deg3 = 1 liste = sh.Range("A2:XFC" & sonsat).Value ReDim myarr(1 To 16383 * 2, 3) For i = 1 To UBound(liste) kod = liste(i, 1) ayirac = liste(i, 2) deg = 0 For j = 1 To 2 For x = 16383 To 3 Step -1 If liste(i, x) <> "" Then sonuc = Format(Split(liste(i, x), ayirac)(deg), "00") refno = kod & sonuc If Not z.exists(refno) Then n = n + 1 z.Add refno, n myarr(n, 1) = kod myarr(n, 2) = sonuc End If myarr(z.Item(refno), 3) = myarr(z.Item(refno), 3) + 1 End If oran = (deg3 / prgrsbaruzunluk) DoEvents Label2.Width = Int(oran * labeluzunluk) Label1.Caption = "% " & Int((deg3 / prgrsbaruzunluk) * 100) deg3 = deg3 + 1 Next x deg = 1 Next j Next Erase liste() Set z = Nothing Range("A2").Resize(n, 3) = myarr Erase myarr() Application.Wait Now + TimeValue("00:00:01") Unload Me Application.ScreenUpdating = True MsgBox "İşlem tamamlandı." End Sub
Sn. @ÖmerBey ,Sn. @ÖmerBey ,
İlk yaptığınız işlem benzersiz çalışıyor fakat oda çok uzun sürüyor..
ikinci kodunuz hızlı çalışıyor fakat tekrarlananlar geliyor bilginize..
Rica ederim,Sn. @ÖmerBey ,
İlk yaptığınızı dikkate alıyorum daha işlem için uğraşmayın bekleme işide bunun tuzu olsun ellerinize sağlık bilgilerinize sağlık çok teşekkürler..![]()
16830 küsur veriyi her satırda 2 kere dönüyor.Sn. @Orion1 ,
Dosya çalışıyor ellerinize sağlık tek sorun yavaş olması başka problem yok C hücresinden SO hücresi arasında ve satır olarak da 1000 satırlık işlemi oldukça uzun sürede yapıyor onada katlanacağız çok güzel bir çalışma oldu ellerinize sağlık..![]()
Hocam teşekkür ederim. Ama excel dosyası hariç bir şey indiremedim.Merhabalar,
C hücresinden XFC hücresine kadar uzunlukta olan alanda yan yana olan verileri alt alta gelmesinin işlemi yapmak istiyorum fakat B hücresinde yazılmış olan koşulu dikkate alarak hücre içerisinde ayraç niteliğinde bir alt satıra yazmasını sağlaya bilir miyiz?
Alt alta halini ekte bulunan exceldeki sayfa 2 düzeni gibi olması konusunda yardımcı ola bilir misiniz.
http://s2.dosya.tc/server8/dnjcjw/_VERILERI_KOSULLARA_GORE_ALT_ALTA_GETIRME.rar.html
Koşullar= (","),(" "),("/"),("*"),("-"),("alt+enter") .. vb
teşekkür ederim hocamAlternatif,
Sonuç mükerrer olarak.
Kod:Sub test() Set s1 = Sheets("Sayfa1") a = s1.Range("A2").CurrentRegion Set d = CreateObject("scripting.dictionary") art = (UBound(a, 2) - 2) * 2 ReDim b(1 To UBound(a) * art, 1 To 2) For i = 2 To UBound(a) For j = 3 To UBound(a, 2) deg = Split(a(i, j), a(i, 2)) For x = 0 To UBound(deg) krt = deg(x) If Not d.exists(krt) Then d(krt) = d.Count + 1 say = d.Count b(say, 1) = a(i, 1) b(say, 2) = deg(x) End If Next x Next j Next i Set s2 = Sheets("Sayfa2") s2.Range("A2:B" & Rows.Count) = Empty If say > 0 Then: s2.[A2].Resize(say, 2) = b MsgBox "İşlem bitti.", vbInformation End Sub