• DİKKAT

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

SUB (numerik,sting) aktarımı

  • Konbuyu başlatan Konbuyu başlatan onerc
  • Başlangıç tarihi Başlangıç tarihi
Katılım
6 Ocak 2012
Mesajlar
2
Excel Vers. ve Dili
2007 TR
Arkadaşlar yardımınıza ihtiyacım var.

Sub Kaydet(deger)
If IsNumeric(deger) Then Sheets("STOK").Range("A" & Sheets("STOK").Range("A1").Value + 4) = deger
End Sub

burayı daha verimli hale getirmem lazım çünkü bunu 330 defa tekrar yazmak istemiyorum.

Mevcut halde , başka bir SUB ile Kaydet.e rakam gönderiyorum , bu 'deger' ile A1,B1 yada AA1 gibi ilk hücreden BAĞ_DEĞ_SAY() formülünün değerini okuyup , üzerine 4 ekleyip , 'deger'e atalı rakamı o hücreye yazıyorum.

Soru1. 330 farklı SUB yazmak zorunda kalmamın bir nedeni , A,B,C.... AA,AB gibi kolon ~referansını her farklı SUB için ayrıca belirtme zorunluluğum. SUB Kaydet,e A,B,C gibi harfi nasıl gönderebilirim? O ZAMAN TEK GENEL SUB İLE İŞLERİ HALLEDEBİLECEĞİM.

Soru2. BAĞ_DEĞ_SAY ın VBA da bir karşılığı var mı? Böylece 300ü aşkın sütunda bu formülleri tek tek koyup , hantallaşmaktan kurtulurum.

Fikri olup paylaşacak arkadaşlara şimdiden teşekkürler.
Daha anlaşılır olması için ekte dosya gönderdim.
 

Ekli dosyalar

Son düzenleme:
1.sorunuz

prosedüre harf göndermek yerine sütun numarasını gönderebilirsiniz. Bu durumda da kaydet kodu aşağıdaki gibi olabilir.

Kod:
Sub Kaydet(deger,[COLOR=red]sutun[/COLOR])
[COLOR=red]satir=Sheets("STOK").cells(65536,sutun).end(3).row+1 [/COLOR]
If IsNumeric(deger) Then Sheets("STOK").[COLOR=red]cells(satir,sutun)[/COLOR] = deger
End Sub

Not: prosedüre veri gönderirken aşağıdaki gibi parantezsiz kullanın.

kaydet değer,sütunno

2.sorunuz

BAĞ_DEĞ_SAY fonksiyonunun VBA'daki kullanımı aşağıdaki gibidir.

worksheetfunction.count(aralık)

ancak verileri saydırmak yerine yukarıda önerdiğim gibi satir değişkeninde yazdığım yapıyı kullanabilirsiniz.
 
Levent bey , çok teşekkür ederim.
İyi çalışmalar..
 
Geri
Üst