Loop Parametre hatasi

Katılım
21 Ekim 2010
Mesajlar
16
Excel Vers. ve Dili
ingilizce
Sub Macro1()

For i = 1 To 500
Sheets("Makbuz").Range("A2").Value = Sheets("Data").Range("A" & i).Value
For x = 0+3 To 102
Sheets("Makbuz").Range("B5").Value = Sheets("").Range("C6" & x).Value
Next
End Sub

Aldigim hata "For without Next" Bunu nasil duzeltebilirim? ve Loop'u 3'er ya da 4'er saydirmak istersem nasil bir parametre kullanmaliyim? Ornegin For x = 0+3 To 102 uygun olur mu?

Bir diger soru ise birlesmis hucreleri nasil Range icersinde gosterebilirim? Ornek C4 ve D4 hucreleri birlesik ve bunu Range icersinde nasil tanimlayabilirim? Range("C4 & D4") seklinde mi?

Tskler simdiden
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Böyle olabilirmi kırmızı olan yer 3 er 3 er artıyor birde x değeri 1 er 1 er artıyor dolayısıyla her veri budurumda 4 er 4 er aralıkla artıyor.

For i = 1 To 500
Sheets("Makbuz").Range("A2").Value = Sheets("Data").Range("A" & i).Value
For x = 1 To 102
Sheets("Makbuz").Range("B5").Value = Sheets("").Range("C6" & x).Value
x = x + 3
Next
Next
End Sub
birleşik hücreler enüst ve en sol tarafdaki kesişim noktasındaki hücrede değerini saklar C4
Range("C4") olacak
 
Katılım
21 Ekim 2010
Mesajlar
16
Excel Vers. ve Dili
ingilizce
Böyle olabilirmi kırmızı olan yer 3 er 3 er artıyor birde x değeri 1 er 1 er artıyor dolayısıyla her veri budurumda 4 er 4 er aralıkla artıyor.




birleşik hücreler enüst ve en sol tarafdaki kesişim noktasındaki hücrede değerini saklar C4
Range("C4") olacak
ekte dosyayi gonderiyorum. Bordro sayfasindaki kirmizi boyali hucreler verileri birer birer cekecek ve print yapacak. Bunun icin nasil bir parametre gerekir?

Saygilar
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bunu denermisiniz.

Sub aktar()
For r = 6 To Worksheets("Bordro").Cells(Rows.Count, "c").End(3).Row
Sheets("Makbuz").Cells(2, 1).Value = Sheets("Bordro").Cells(r, 2).Value
Sheets("Makbuz").Cells(5, 3).Value = Sheets("Bordro").Cells(r, 3).Value
Sheets("Makbuz").Cells(5, 10).Value = Sheets("Bordro").Cells(r, 5).Value
Sheets("Makbuz").Cells(9, 1).Value = Sheets("Bordro").Cells(r + 2, 4).Value
Sheets("Makbuz").Cells(9, 3).Value = Sheets("Bordro").Cells(r, 11).Value
Sheets("Makbuz").Cells(9, 5).Value = Sheets("Bordro").Cells(r, 12).Value
Sheets("Makbuz").Cells(9, 6).Value = Sheets("Bordro").Cells(r, 13).Value
Sheets("Makbuz").Cells(9, 7).Value = Sheets("Bordro").Cells(r, 14).Value
Sheets("Makbuz").Cells(9, 9).Value = Sheets("Bordro").Cells(r + 2, 15).Value
r = r + 2
Worksheets("Makbuz").PageSetup.PrintArea = "$A$1:$L$28"
Worksheets("Makbuz").PrintOut Copies:=1, Collate:=True
Next r
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

- for i=1 to 500 döngüsünü "next" ile kapatın; eksik kalmış.

- for x=0 to 102 döngüsünde sayfa adı yazılmamış. Sheets("") olan kısım.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Katılım
21 Ekim 2010
Mesajlar
16
Excel Vers. ve Dili
ingilizce
bunu denermisiniz.
Cok tsk ederim. Eklemek istedigim bir soru var

For r = 6 To Worksheets("Bordro").Cells(Rows.Count, "c").End(3).Row

r 6'dan basliyor burasi tamamdir. yalniz Cells(Rows.count,"c").End(3).Row'un burada gorevi nedir? c ne gorevi goruyor?

ve Collate=True ne ise yarar?
 
Katılım
21 Ekim 2010
Mesajlar
16
Excel Vers. ve Dili
ingilizce
Bir diger konu ise

r = 6 diyoruz.

parametrenin sonunda r = r + 2 ; yani bu durumda r=8 olacak sanirim.

Sheets("Makbuz").Cells(2, 1).Value = Sheets("Bordro").Cells(r, 2).Value

bu parametrede gelecek olan r degeri 2. dongude 8 olarak yer degisecek. Yalniz veriyi (9,2)'den cekmesi gerekiyor.

Benim mi yanlisim yoksa anlamadigim bir farklilik mi var tskler
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Rows.count=satırları kontrol etmek
Cells(Rows.count,"c")=c sutünuna ait satırları kontrol etmek
Cells(Rows.count,"c").End(3).Row=dolu enson c satırını bulmak

Collate=True =harmanlamak yani yazıcıya gönderilen yazıları devamlı kılmak
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bir diger konu ise

r = 6 diyoruz.

parametrenin sonunda r = r + 2 ; yani bu durumda r=8 olacak sanirim.

Sheets("Makbuz").Cells(2, 1).Value = Sheets("Bordro").Cells(r, 2).Value

bu parametrede gelecek olan r degeri 2. dongude 8 olarak yer degisecek. Yalniz veriyi (9,2)'den cekmesi gerekiyor.

Benim mi yanlisim yoksa anlamadigim bir farklilik mi var tskler
dağruda birde next döngüsü var r de buda birer birer attığına göre 9 olur
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,844
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
r = r + 2
bundan önce

MsgBox r

bunu koy r nin değerini gözle bu durumlarda en güzel kodları öğrenmek mesajlarla pekişir.
 
Katılım
21 Ekim 2010
Mesajlar
16
Excel Vers. ve Dili
ingilizce
Ustad cok tskkur ederim. Son olarak ogrenmek istedigim End(3)'deki 3'un anlami.

Tesekkurler.
 
Üst