• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

arama sonucuna gore kayıt etme esnasında hata

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
9 Ağustos 2008
Mesajlar
16
Excel Vers. ve Dili
EXCELL 2010 TR
Arkadaşlar bir stok programından ürün bilgilerini excelle alıp, bu excell sayfasını eticaret sitemize uygun sablona aktarmak istiyoruz. Bunun için vba da iki dosya arasında sadece kopru gorevi gorecek bir çalışmamız var.
Bu çalışmamıza ait aşağıdaki kodda iki işlem sorunsuz yapılıyor. Ancak kod 3. kez işleme girdiğinde ya turuncu renkli kısımda ya da kırmızı renkli kısımda "object variable or with variable not set" hatası alıyorum. Vba da çok iyi değilim ancak üç gündür araştırmama rağmen sorunumu çözemedim. Yardımcı olursanız çok mutlu olurum. Şimdiden teşekkürler.

Kod:
Private Sub CommandButton1_Click()
syf = Giris.txsayfaadi.Value
Sheets(syf).Activate
Range("b5").Select
bul = lbkategori.Caption

NoA = Worksheets(syf).Cells.SpecialCells(xlCellTypeLastCell).Row
Noac = Worksheets("categories").Cells.SpecialCells(xlCellTypeLastCell).Row


1 On Error GoTo 2
lbkategori.Caption = ActiveCell.Value
Sheets("categories").Activate
With Sheets("categories")
[COLOR="DarkOrange"]Sheets("Categories").Range("c1:c" & Noac).Find(lbkategori.Caption).Select[/COLOR]
[COLOR="Red"]ActiveCell.Offset(0, -2).Select[/COLOR]
lbno.Caption = ActiveCell.Value
End With
2  On Error GoTo 3
 MsgBox "Kategori bulunamadı. Yeni oluşturuluyor..."
Range("a2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
On Error GoTo 3
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
ActiveCell.Offset(0, 2).Value = lbkategori.Caption
Sheets(syf).Activate
ActiveCell.Offset(1, 0).Select
5
If ActiveCell.Value = lbkategori.Caption Then
ActiveCell.Offset(1, 0).Select
Else
GoTo 1
End If
GoTo 5
3 On Error GoTo 4
ActiveCell.Value = 1
ActiveCell.Offset(0, 2).Value = lbkategori.Caption
Sheets(syf).Activate
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = lbkategori.Caption Then
ActiveCell.Offset(1, 0).Select
Else
GoTo 1
End If
GoTo 5
4 MsgBox " İşlem tamamlandı..."
End Sub
 
Dosyanızı görmeyince kodlarınız düzgün gibi görünüyor ama, bana göre olası sebepler ;

1. On Error komutu hata meydana geldiğinde çalışan bir komuttur. Siz kodlarınızda
Sheets("Categories").Range("c1:c" & Noac).Find(lbkategori.Caption).Select
satırı ile bir arama (find) yaptırıyorsunuz. Arama sonucu istenilen veri bulunduğu sürece komut devreye girmeyeceği gibi, veri bulunamazsa komut devreye girecek ve 1 kez çalışacaktır. 2. kez aranılan veri bulunamazsa On Error komutu çalışmayacak ve HATA verecektir. (Excel'in yapısı böyle malesef)

2. ActiveCell.Offset(0, -2).Select komutu ise, o esnada seçili olan aktif hücrenin 2 hücre solunu seç demektir. Şöyle düşünün; aktif hücreniz o esnada A sütunu. 2 soldaki hücre neresi olur ? A sütununun solunda başka bir hücre olamayacağı için doğal olarak HATA verecektir.
 
skorpiyon öncelikle ilgin için teşekkür ederim. kodları tekrar incelediğimde activecell'i istedigim sutundan bir hücreye getirmediğimi farkettim. şimdi senin uyarın sonucu farkettiğim hatayı düzeltmeye çalışıyorum. yardımın için çok teşekkür ederim.
 
Uğraşmama rağmen hala çözemedim ve artık bu sorunu sağlıklı düşünememeye başladım diğer kodları da bozuyorum. Eğer dosyaları inceleyim yardımcı olabilirseniz çok sevinirim.
 

Ekli dosyalar

Sayın karalanet,

Ek'li dosyayı inceleyiniz. İstediğiniz bu şekilde midir ?
 

Ekli dosyalar

evet istediğim buydu. çok teşekkür ederim. emeğinize sağlık
 
skorpiyon yardımın sayesinde çalışmamı tamamladım. tekrar çok teşekkür ederim...
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst