• DİKKAT

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

Devamli Degisen bir Integer sayisina göre kopyalama yapan bir fonksiyon???

Katılım
30 Ağustos 2009
Mesajlar
51
Excel Vers. ve Dili
Microsoft Office Excel 2007 Almanca
Merhaba arkadaslar.
Öncelikle simdiye kadar kendi cabamla yazdigim programi assagiya yaziyorum
------------------
Public Sub sayac()//sayac Prosedürü
Range.("E1").Value=Range("E1").Value+1//E1 hücresindeki degeri hep 1 ile topla
kopyala //kopyala fonksiyonunu cagir
End Sub
...................
Sub kopyala() //kopieren Prozedur
Dim x As Integer //x diye bir integer belirle
x=Range("E1").Value //E1hücresinin degerini x e aktar
Range("B7").Select//B7 hücresine git
Selection.Copy//B7 de olan degeri kopyala
Range("G6").Select//G6ya git
ActiveSheet.Paste //B7 de olan degeri G6ya yapistir
End Sub
---------------------

Sizlerin de gördügü gibi kopyala ve sayac olmak üzere iki prosedür belirledim. Sayac prozedürü E1 hücresinde olan degeri devamli bir ile topluyor. Excel dosyamin üzerine bir tane de dügme koydum ve bu iki makroyu o dügmeye aktardim. Yani dügmeye her basisimda E1 degeri bir artiyor ve B7 de yazili olan deger ise G6 hücresine kopyalaniyor.

Fakat programimda söyle bir degisiklik lazim: örnegin E1 degeri üstünde 5 yaziyor ise ben dügmeye bastigimda 6 yazmali ve B6 da olan degeri G6 ya kopyalamali. Veya da E1 hücresinde 10 yaziyor ise ben dügmeye bastigimda E1 in degeri 11 olmali ve B11 de yazili olan deger bu sefer G6 ya yazilmali.
Yani B sütununda bulunan degerleri bilgisayar benim her dügmeye basisimda yukaridan assagiya tek tek okuyup G6 Hücresine yazdirmali.

Umarim yeterince aciklayici olmusumdur.

Benim icin gercekten önemli bir program bu yardim olabilirseniz cok sevinirim

Tesekkür ederim
 
Merhaba,

Sorunuzu tam olarak anladığımı sanmıyorum, tek anladığım E1 hücresi sürekli 1 artacak.
Bu arada B6 G6 ya aktarılacak, B6 ne zaman değişiyor onu anlamadım, her halde değişiyordur.

Kod:
Sub Sayac()
[E1] = [E1] + 1
[G6] = [B6]
End Sub
 
Aslinda B sütununda tek satirlik hazir bir tablo var. Tablo B1dan basliyor, B15000 e kadar gidiyor sonra. Bu hazir verilmis bir tablo. Benim E1 hücresinde ki degeri her arttirisimda B sütununda verilmis tablonun degerleri tek tek G6 hücresinde cikmali.

Örnegin:
B
3
2
1
4
5
B sütununda böyle bir tablo verilmis olsun. Benim her E1 i degistirisimde G6 daki sayilar degismeli. Ilk basisimda G6 ya 3 yazilmali, sonra ki basisimda E1 sayisi yine artmali ve bu sefer G6 da 2 yazmali. Diger basisimda bu sefer 1 yazmali ve böyle gitmeli.

Aslinda bu program bir dokuma makinesi icin lazim. G6 hücresi bir motoru simgeliyor. Her sinyal gelisinde(dügmeye basilisinda) motor ilk verilen degerleri okumali ve ona göre dönmeli. Aslinda yaziyla da rahat anlatamiyorum ne yazik ki. Umarim aciklayabilmisimdir derdimi
Yanitin icin cok sagol:)
 
Kopyala isimli prosedürünüzü aşağıdaki ile değiştirerek denermisiniz.

Kod:
Sub kopyala()
Dim x As Integer
x=Range("E1").Value
range("g6")=Range("B" & x).value
End Sub
 
Merhaba,

Umarım doğru anlamışımdır.

Kod:
Sub Sayac()
[E1] = [E1] + 1
[G6] = Range("B5").Offset([E1], 0)
End Sub
 

Ekli dosyalar

Tamamdir Dostum oldu simdi

range("g6")=Range("B" & x).value bu komutu bilmiyorumdum cok sagol;)
 
Merak ettim bizim yanıt olmadı mı? :)
 
Oldu oldu süper oldu. Ben de iki saatten beri bu senin komutu bulmaya calisiyordum. Hangi komutu yazsam error veriyordu. Senin yanit ise yaradi sonunda:)
 
Geri
Üst