- Katılım
- 9 Kasım 2006
- Mesajlar
- 13
- Excel Vers. ve Dili
- Office Excel 2003 SP2
Merhabalar,
Konuyu nasıl anlatıcam bilmiyorum ama, Sayfa1 stokid ler ve bunlara air barkod numaraları var, stokid lerin bazılarının asıl barkad numarası ve yardımcı barkod numaraları. yapmak istediğim makro ile sayfa2 de A sütununa stokid yi B sütununa asıl barkod numarasını ve C-D-E-F sütunlarına varsa yardımcı barkodlarını yazdırmak. Yapmak istediğimi iç içe döngüler ile yaptım fakat dolayısı ile çok yavaş çalışıyor. Bende aşağıdaki kod yapısını yazdım fakat bunda da tarama yaptığında bir iki kere çalışıyor ve sonra Fc2 = Sayfa2.Columns("A").Find(What:=CStr(BARKODID)).Row kodunda Run-time error 91 hatasını veriyor bir türlü çözemedim. Yardımcı olursanız sevinirim.
Konuyu nasıl anlatıcam bilmiyorum ama, Sayfa1 stokid ler ve bunlara air barkod numaraları var, stokid lerin bazılarının asıl barkad numarası ve yardımcı barkod numaraları. yapmak istediğim makro ile sayfa2 de A sütununa stokid yi B sütununa asıl barkod numarasını ve C-D-E-F sütunlarına varsa yardımcı barkodlarını yazdırmak. Yapmak istediğimi iç içe döngüler ile yaptım fakat dolayısı ile çok yavaş çalışıyor. Bende aşağıdaki kod yapısını yazdım fakat bunda da tarama yaptığında bir iki kere çalışıyor ve sonra Fc2 = Sayfa2.Columns("A").Find(What:=CStr(BARKODID)).Row kodunda Run-time error 91 hatasını veriyor bir türlü çözemedim. Yardımcı olursanız sevinirim.
Kod:
Sub Barkod_Ayikla()
Dim Say, SonSat_Ana, SonSat_List As Integer
Dim BARKODID, Yaz
SonSat_Ana = SonSatir(Sayfa1, 2)
SonSat_List = SonSatir(Sayfa2, 1)
Sayfa2.Activate
For x = 2 To SonSat_Ana
Yaz = "KO"
SonSat_List = SonSatir(Sayfa2, 1)
On Error GoTo hata
BARKODID = Sayfa1.Cells(x, 2).Value
Fc2 = Sayfa2.Columns("A").Find(What:=CStr(BARKODID)).Row
If Sayfa1.Cells(x, 3).Value = "Asıl" Then
Sayfa2.Cells(Fc2, 2).Value = Sayfa1.Cells(x, 4).Value
Else
If Sayfa2.Cells(Fc2, 3).Value = "" Then
Sayfa2.Cells(Fc2, 3).Value = Sayfa1.Cells(x, 4).Value
ElseIf Sayfa2.Cells(Fc2, 4).Value = "" Then
Sayfa2.Cells(Fc2, 4).Value = Sayfa1.Cells(x, 4).Value
ElseIf Sayfa2.Cells(Fc2, 5).Value = "" Then
Sayfa2.Cells(Fc2, 5).Value = Sayfa1.Cells(x, 4).Value
ElseIf Sayfa2.Cells(Fc2, 6).Value = "" Then
Sayfa2.Cells(Fc2, 6).Value = Sayfa1.Cells(x, 4).Value
End If
End If
Yaz = "OK"
hata:
If Yaz <> "OK" Then
Sayfa2.Cells(SonSat_List + 1, 1).Value = BARKODID
If Sayfa1.Cells(x, 3).Value = "Asıl" Then
Sayfa2.Cells(SonSat_List + 1, 2).Value = Sayfa1.Cells(x, 4).Value
Else
Sayfa2.Cells(SonSat_List + 1, 3).Value = Sayfa1.Cells(x, 4).Value
End If
Yaz = "OK"
End If
Next
End Sub
