sevensuleyman
Altın Üye
- Katılım
- 9 Kasım 2012
- Mesajlar
- 202
- Excel Vers. ve Dili
- office 2010
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub rafstok()
Application.ScreenUpdating = False
Set s1 = Sheets("STOK KODLARI")
Set s2 = Sheets("RAF KODLARI")
Set s3 = Sheets("İSTEDİĞİM")
eski = WorksheetFunction.Max(s3.Cells(Rows.Count, "A").End(3).Row, 2)
s3.Range("A2:B" & eski).ClearContents
son1 = s1.Cells(Rows.Count, "A").End(3).Row
son2 = s2.Cells(Rows.Count, "A").End(3).Row
For i = 2 To son1
If WorksheetFunction.CountIf(s2.Range("A1:A" & son2), s1.Cells(i, "A")) > 0 Then
For j = i + 1 To son1
If WorksheetFunction.CountIf(s2.Range("A1:A" & son2), s1.Cells(j, "A")) = 0 Then
yeni = s3.Cells(Rows.Count, "A").End(3).Row + 1
s3.Cells(yeni, "A") = s1.Cells(j, "A")
s3.Cells(yeni, "B") = s1.Cells(i, "A")
Else
i = j - 1
j = son1
End If
Next
End If
Next
s3.Activate
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı :)" & yeni & " adet ürün listelendi", vbInformation
End Sub
teşekkür ederimAşağıdaki makroyu deneyin. Verilerinizin çokluğuna ve bilgisayarınızın durumuna göre işlem uzun sürebilir:
PHP:Sub rafstok() Application.ScreenUpdating = False Set s1 = Sheets("STOK KODLARI") Set s2 = Sheets("RAF KODLARI") Set s3 = Sheets("İSTEDİĞİM") eski = WorksheetFunction.Max(s3.Cells(Rows.Count, "A").End(3).Row, 2) s3.Range("A2:B" & eski).ClearContents son1 = s1.Cells(Rows.Count, "A").End(3).Row son2 = s2.Cells(Rows.Count, "A").End(3).Row For i = 2 To son1 If WorksheetFunction.CountIf(s2.Range("A1:A" & son2), s1.Cells(i, "A")) > 0 Then For j = i + 1 To son1 If WorksheetFunction.CountIf(s2.Range("A1:A" & son2), s1.Cells(j, "A")) = 0 Then yeni = s3.Cells(Rows.Count, "A").End(3).Row + 1 s3.Cells(yeni, "A") = s1.Cells(j, "A") s3.Cells(yeni, "B") = s1.Cells(i, "A") Else i = j - 1 j = son1 End If Next End If Next s3.Activate Application.ScreenUpdating = True MsgBox "İşlem tamamlandı :)" & yeni & " adet ürün listelendi", vbInformation End Sub
güncelburada birden fazla aynı stok kartı farklı raflarda varsa bütün raf kodlarının yanyana yazsın. düzenlerseniz çok sevirimm.
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Set stoklar = Sheets("STOK KODLARI")
Set raflar = Sheets("RAF KODLARI")
Set rapor = Sheets("EŞLEŞEN STOKLAR")
rapor.Cells.Clear
rapor.[A1] = "Stok Kodu"
sonstok = stoklar.Cells(Rows.Count, "A").End(3).Row
sonraf = raflar.Cells(Rows.Count, "A").End(3).Row
For raf = 2 To sonstok
If WorksheetFunction.CountIf(raflar.Range("A1:A" & sonraf), stoklar.Cells(raf, "A")) > 0 Then
For urun = raf + 1 To sonstok
If WorksheetFunction.CountIf(raflar.Range("A1:A" & sonraf), stoklar.Cells(urun, "A")) = 0 Then
yeni = rapor.Cells(Rows.Count, "A").End(3).Row + 1
If WorksheetFunction.CountIf(rapor.Range("A1:A" & yeni), stoklar.Cells(urun, "A")) = 0 Then
rapor.Cells(yeni, "A") = stoklar.Cells(urun, "A")
End If
sat = WorksheetFunction.Match(stoklar.Cells(urun, "A"), rapor.Range("A1:A" & yeni), 0)
sut = rapor.Cells(sat, Columns.Count).End(xlToLeft).Column + 1
If rapor.Cells(1, sut) = "" Then
rapor.Cells(1, sut) = "Raf Yeri" & sut - 1
End If
rapor.Cells(sat, sut) = stoklar.Cells(raf, "A")
Else
raf = urun - 1
urun = sonstok
End If
Next
End If
Next
rapor.Activate
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı :)" & chr(10) &chr(10) & yeni & " adet ürün listelendi", vbInformation
End Sub
çok teşekkür ederimAşağıdaki kodları deneyiniz, işlem uzun sürebilir:
PHP:Private Sub CommandButton1_Click() Application.ScreenUpdating = False Set stoklar = Sheets("STOK KODLARI") Set raflar = Sheets("RAF KODLARI") Set rapor = Sheets("EŞLEŞEN STOKLAR") rapor.Cells.Clear rapor.[A1] = "Stok Kodu" sonstok = stoklar.Cells(Rows.Count, "A").End(3).Row sonraf = raflar.Cells(Rows.Count, "A").End(3).Row For raf = 2 To sonstok If WorksheetFunction.CountIf(raflar.Range("A1:A" & sonraf), stoklar.Cells(raf, "A")) > 0 Then For urun = raf + 1 To sonstok If WorksheetFunction.CountIf(raflar.Range("A1:A" & sonraf), stoklar.Cells(urun, "A")) = 0 Then yeni = rapor.Cells(Rows.Count, "A").End(3).Row + 1 If WorksheetFunction.CountIf(rapor.Range("A1:A" & yeni), stoklar.Cells(urun, "A")) = 0 Then rapor.Cells(yeni, "A") = stoklar.Cells(urun, "A") End If sat = WorksheetFunction.Match(stoklar.Cells(urun, "A"), rapor.Range("A1:A" & yeni), 0) sut = rapor.Cells(sat, Columns.Count).End(xlToLeft).Column + 1 If rapor.Cells(1, sut) = "" Then rapor.Cells(1, sut) = "Raf Yeri" & sut - 1 End If rapor.Cells(sat, sut) = stoklar.Cells(raf, "A") Else raf = urun - 1 urun = sonstok End If Next End If Next rapor.Activate Application.ScreenUpdating = True MsgBox "İşlem tamamlandı :)" & chr(10) &chr(10) & yeni & " adet ürün listelendi", vbInformation End Sub