DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Eki inceleyin.Arkadaşlar veri sayfasında karmaşık düzen halinde girilen adisyon nolarını tablo sayfasında
xx01-xx50 ve xx51-xx00 düzeninde 50' şerli olarak gruplayıp
sıralı şekilde kendiliğinden yerleştirecek bir makro yazarmısınız.
Teşekkürler
Eki inceleyin.
üstad eline sağlık çok güzel olmuş ama ufak bi sıkıntı var 50 şerli gruplamayı yanlış yapıyo mesela 1,2,3,4......48,50 yazıp 49u atlayıp yazmazsam
Merhaba.
Daha açık anlatmalısınız.
Mesela sıralama nerede olmalı ?. "veri" sayfasındamı; "tablo" sayfasına aktarılıp veya tablolara alınması tamamlandıktan sonramı?
Sub Adisyon_Sirala()
Dim i As Long, _
SonSat As Long, _
j As Integer, _
k As Integer, _
min As Integer, _
Kol As Integer, _
Kocan As Integer
Dim wsv As Worksheet
Dim wst As Worksheet
Kocan = 50
Set wst = Sheets("Tablo")
Set wsv = Sheets("Veri")
SonSat = wsv.Cells(Rows.Count, "A").End(3).Row
If SonSat < 2 Then Exit Sub
min = Application.WorksheetFunction.min(wsv.Range("A2:A" & SonSat))
Kol = Int(min / Kocan) - 1
Application.ScreenUpdating = False
wst.Cells.ClearContents
For i = 2 To SonSat
k = Int(wsv.Cells(i, "A") / Kocan) - Kol
j = wsv.Cells(i, "A") Mod Kocan
If j = 0 Then j = Kocan
wst.Cells(j, k) = wsv.Cells(i, "A")
Next i
Application.ScreenUpdating = True
MsgBox "ADİSYONLAR SIRALANMIŞTIR....", vbInformation, "NECDET YEŞERTENER ---> [URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
elimde 50 lik koçanlar halinde adisyonlar var bunların düzenli kullanıldığını saptamak için tablo oluşturacam.böylelikle kullanılmamış adisyonların yeri boş kalacak.
öncelikle sıralama tablo sayfasında olacak. ama dediğim gimi 50 şerli gruplar halinde. ama bu gruplar her sutunda sabit kalacak mesela 3 nolu adisyon veri sayfasında yazılmamışsa tablo sayfasında yeri boş klacak. yani yerine başka adisyon nosu gelmeyecek.
ama sizden bi ricam olacak son olarak derdimi böyle parça parça anlattım ama toblayo son haline getiemek istiyorum yardımcı olursanız sevinirim.
veri sayfasında a sütunundaki her adisyon numarasının hangi tarihte kullanıldığını b sütunan girceğim. örn: 1145 nolu adisyon 5 şubat olarak veri sayfasına girilecek. böylelikle tablo sayfasında da her adisyon numarsının yanında veri sayfasına girilen tarihler olacak.
mümkünse şimdiden teşekkürler.
Private Sub CommandButton1_Click()
Sheets("tablo").Cells = ""
Range("A2:b65000").Sort Key1:=Range("A2")
b = 1
c = 1
Sheets("tablo").Select
Sheets("tablo").Cells(c, b) = Cells(2, 1)
Sheets("tablo").Cells(c, b + 1) = Cells(2, 2)
For a = 2 To Cells(65000, 1).End(xlUp).Row - 1
r = Cells(a, 1)
x:
c = c + 1
If Cells(a + 1, 1) <> "" Then
If r + 1 <> Cells(a + 1, 1) Then
Sheets("tablo").Cells(c, b) = ""
r = r + 1
If c = 50 Then
b = b + 2
c = 0
End If
GoTo x
End If
End If
Sheets("tablo").Cells(c, b) = r + 1
Sheets("tablo").Cells(c, b + 1) = Cells(a + 1, 2)
If c = 50 Then
b = b + 2
c = 0
End If
Next
End Sub
kodların alt kısmında bulunan ilgili bölüme aşağıdaki kırmızı kodu yazın.
Kod:'................................................. '................................................. '................................................. ıf c = 50 then b = b + 2 c = 0 end ıf goto x end ıf end ıf sheets("tablo").cells(c, b) = r + 1 [color="red"]sheets("tablo").cells(c, b + 1) = cells(a, 2)[/color] ıf c = 50 then b = b + 2 c = 0 end ıf next end sub
Sub Adisyon_Sirala()
Dim i As Long, _
SonSat As Long, _
j As Integer, _
k As Integer, _
min As Integer, _
Kol As Integer, _
Kocan As Integer
Dim wsv As Worksheet
Dim wst As Worksheet
Kocan = 50
Set wst = Sheets("Tablo")
Set wsv = Sheets("Veri")
SonSat = wsv.Cells(Rows.Count, "A").End(3).Row
If SonSat < 2 Then Exit Sub
min = Application.WorksheetFunction.min(wsv.Range("A2:A" & SonSat))
Kol = Int(min / Kocan) - 1
Application.ScreenUpdating = False
wst.Cells.ClearContents
For i = 2 To SonSat
k = Int(wsv.Cells(i, "A") / Kocan) - Kol
k = k * 2 - 1
j = wsv.Cells(i, "A") Mod Kocan
If j = 0 Then j = Kocan
wst.Cells(j, k) = wsv.Cells(i, "A")
wst.Cells(j, k).Offset(0, 1) = wsv.Cells(i, "B")
Next i
Application.ScreenUpdating = True
MsgBox "ADİSYONLAR SIRALANMIŞTIR....", vbInformation, "NECDET YEŞERTENER ---> [URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
Merhaba.
Son mesajımdaki kodlar değişti.
Merhaba. Ek dosyada düzeldi.ÜSTAD VERİ SAYFASINDA Kİ B SÜTUNUNU BUTTON SIRALAMIYO DEĞERLER KARIŞIYOR. eKE GÖZ ATABİLİRMİSİN.