Çoklu sayfalar ile çalışma

Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
Fazla bir şeyler talep ettiğim hissine kapılarak çekinerek yazıyorum.Ama daha önceki sorularına verilen cevapları gördükçede azda olsa cesaretlenmiyor değilim ve öğrenmemek ayıp diyerek kızarmış elma gibi olup yazıyorum ekteki çalışmaya bir bakın şimdiden yardımlarınız için teşekkürler
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Ödeme emri sayfasında AKTAR butonuna basıyorsunuz.:cool:
Ekli dosyayı incelyiniz.:cool:
Kod:
Sub AKTAR()
Dim d As Worksheet
Set d = Sheets("255demirbaş")
Sheets("ÖDEME EMRİ").Select
If Range("K5").Value = "" Then
    MsgBox "Tarih girmelisiniz.", vbCritical
    Range("K5").Select
    Exit Sub
End If
If MsgBox("ÖDEME EMRİNİ AKTARMAK İSTİYORMUSUNUZ ?", vbYesNo, Application.UserName) = vbNo Then Exit Sub
For i = 13 To 22
If Cells(i, "C").Value <> "" Then
sat = d.Cells(65536, "B").End(xlUp).Row + 1
d.Range("B" & sat).Value = Range("K5").Value
d.Range("C" & sat).Value = Range("P4").Value
d.Range("D" & sat).Value = Range("N9").Value
d.Range("E" & sat).Value = Range("O34").Value
For k = 6 To 13
MsgBox Cells(i, "C").Value & vbLf & d.Cells(9, k).Value
    If Cells(i, "C").Value = d.Cells(9, k).Value Then
        d.Cells(sat, k).Value = Cells(i, "O").Value
        Exit For
    End If
Next k
End If
Next i
MsgBox "AKTARMA İŞLEMİ TAMAMLANDI..!!", vbOKOnly + vbInformation, Application.UserName
End Sub
 
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
çok teşekkür ederim orion
ama sanırım benim eksik verdiğim bilgiden dolayı çalışma biraz eksik gibi yeni dosyayı açıklamalarla ekte tekrar gönderiyorum allah kolaylık versin:)
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sayın stres

Yarı formül yarı makro ile yapılmış dosyayı inceleyin. Umarım doğrudur.

740 sayfasında hata vardı giderildi....
Dosyayı yeniledim.
 
Son düzenleme:
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
Sayın stres

Yarı formül yarı makro ile yapılmış dosyayı inceleyin. Umarım doğrudur.

740 sayfasında hata vardı giderildi....
Dosyayı yeniledim.

evet ama ekte göndereyim dikkat edersen yine bazı eksiklikler var orda açıkladım
özellikle parasal tutar yerine toplam miktar atılırsa sıkıntı kalmayacak
kolay gelsin
 
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
ha unutmadan birde 740 kırkın alt kalemleri yaklaşık 27 adet
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
1. san&#305;r&#305;m 740 255 ile ilintili olmu&#351; ve 740 ad&#305;na tahakkuk d&#252;zenledi&#287;imde s&#305;f&#305;r at&#305;yor 2. 740 veya 255 in kar&#351;&#305;s&#305;na yazd&#305;&#287;&#305;m rakam&#305; de&#287;ilde genel toplamda olu&#351;an rakam&#305; atarsa s&#305;k&#305;nt&#305; &#231;&#246;z&#252;l&#252;r yani O13+O14 =25 10+20=30 SADECE OTUZ RAKAMINI ATARSA RAKAM YER&#304;NE &#304;Y&#304; OLUR VE 3. her bir harcama cetveline ba&#287;&#305;ms&#305;z ats&#305;n bilgileri
1. 255 ile 740 aras&#305;ndaki ba&#287;&#305; &#231;&#246;zd&#252;m. Form&#252;lde hata yapm&#305;&#351;&#305;m.Yukardaki dosyada mesaj&#305;n&#305;zdan &#246;nce d&#252;zelttim. (2. d&#252;zeltme)

2. ve 3. Ne anlatmak istedi&#287;inizi &#231;&#246;zemedim. &#214;rnek dosyan&#305;zdaki verileri s&#305;f&#305;rlay&#305;p, nas&#305;l istiyorsan&#305;z o haliyle tekrar d&#252;zenler misiniz.

4. dosyan&#305;zda l&#252;tfen ger&#231;ek isim ve veri kullanmay&#305;n.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Say&#305;n stres

Sizinle anla&#351;amayaca&#287;&#305;z. G&#252;zel anlatm&#305;&#351;s&#305;n&#305;z ama, ben anlatt&#305;klar&#305;n&#305;z&#305; &#231;&#246;z&#252;mleyemiyorum. (Bug&#252;n her&#351;eyi zor anl&#305;yorum.)
Yukar&#305;da ki dosya zaten istediklerinizi yap&#305;yor. Ekte g&#246;nderdi&#287;im dosyada renklendirdim. Bu &#351;ekil istemiyormusunuz?

Form&#252;ller 255 sayfas&#305;nda S s&#252;tununda, 740 sayfas&#305;nda BB s&#252;tununda. &#304;nceleyin.
 
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
eline sağlık şimdi olmuş ama diyelimki yeni bir sayfa ekleyeceğim 253 veta 770 olacak formüller az çok tamamda makrosunu inceledim biraz her sayfa için ayrı bir makro oluşturulacak o da tamam makroda

Sub Aktar()
If MsgBox(" KAYDETMEK İSTİYORMUSUNUZ ??", vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
Sheets("255demirbaş").Select
i = [c65536].End(3).Row + 1
[S2:AD2].Copy
Range("b" & i).PasteSpecial Paste:=xlPasteValues
Range("b" & i).Select
Sheets("740Üretimgideri").Select
x = [c65536].End(3).Row + 1
[BB2:CF2].Copy
Range("b" & x).PasteSpecial Paste:=xlPasteValues
Range("b" & x).Select

burdaki (1 ve x) her sayfa için değişkenmi yada her sayfa için nasıl bir makro oluşturmam gerekiyor bu konudaki son sorum
kısaca bunada değinirseniz sevirim .Ha birde sağol formülleri yazmışssın onları kimse müdale edemesin diye nasıl gizleyebilirim. son söz bu konuda son :roll:
 
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
as3434 ne kadar teşekkür etsem azdır makronun ve formülün mantığını çözdüm:hihoho: birde formül hücrelerini bulunduğu yeri nasıl gizleyeceğim onu yazarsan:???:
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
as3434 ne kadar teşekkür etsem azdır makronun ve formülün mantığını çözdüm birde formül hücrelerini bulunduğu yeri nasıl gizleyeceğim onu yazarsan
Esas işlemi sayfalarda ki formüller yapıyor..
Makro sadece belli bir alanı kopyala-yapıştır yapıyor.

Kod:
Sub Aktar()
If MsgBox(" KAYDETMEK İSTİYORMUSUNUZ ??", vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
[COLOR=blue]Sheets("255demirbaş").Select[/COLOR]
[COLOR=red]i = [c65536].End(3).Row + 1[/COLOR]
[COLOR=blue][S2:AD2].Copy[/COLOR]
[COLOR=blue]Range("b" & i).PasteSpecial Paste:=xlPasteValues[/COLOR]
[COLOR=blue]Range("b" & i).Select[/COLOR]
 
[COLOR=darkred]Sheets("740Üretimgideri").Select[/COLOR]
[COLOR=red]i = [c65536].End(3).Row + 1[/COLOR]
[COLOR=darkred][BB2:CF2].Copy[/COLOR]
[COLOR=darkred]Range("b" & i).PasteSpecial Paste:=xlPasteValues[/COLOR]
[COLOR=darkred]Range("b" & i).Select[/COLOR]
[COLOR=#8b0000][/COLOR] 
[COLOR=darkred][COLOR=black]Sheets("[/COLOR][COLOR=green]yeni bir sayfa[/COLOR][/COLOR][COLOR=black]").Select[/COLOR]
[COLOR=red]i = [c65536].End(3).Row + 1[/COLOR]
[COLOR=darkred][COLOR=black][[/COLOR][COLOR=green]formül alanı[/COLOR][/COLOR][COLOR=black]].Copy[/COLOR]
[COLOR=black]Range("b" & i).PasteSpecial Paste:=xlPasteValues[/COLOR]
[COLOR=black]Range("b" & i).Select[/COLOR]
[COLOR=black]end sub[/COLOR]
Renkli alanları her sayfa için ayrı ayrı yapmanız lazım. i veya x olması farketmez. Hepsini aynı harfi verebilirsiniz. (i) mesela. Ama her sayfa için renkli guruplardan bir tane yazmanız lazım.
Tek bir seferde de olabilir ama o zaman kopyalanacak alan boyutlarının aynı olması lazım. ( [S2:AD2]. ve [BB2:CF2].)

Gizleme işini sütunları seçin Gizle deyin. O kadar. "ÖDEME EMRİ" sayfasında yaptığınız gibi.
 
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
gerçi dün itibariyle bu konu ile ilgili olarak son demiştim ama gel görki küçük bir tefarruat dışında tamam oda şu ödeme emri belgesinde 740 tan ödeme yaptığımda 740 ın 1. satırına bilgileri gönderiyor 255 ten ödeme yaptığımda 255 te bir veya bir kaç satır atlayarak mesela 5. satırdan kayıt yapıyor bunu düzletmenin yolu varmı gerçi ben kendime göre buldum aradaki boş satırları siliyorum halledidiyorum ama işte hallediyorum ?
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sayın stres

"Son" diye yazmanız önemli değil. Önemli olan işinize tam anlamı ile yarayacak bir dosya hazırlamak ve kullanımda sorun yaşamamak.

Söylediğiniz sorunu bende bugün farkettim ve çaresini bulamadım, sebebini de anlamadım.

Makro konusunda iyi değilim. Bende sizin gibi bu forumdan ne öğrendiysem o kadar biliyorum. Ama sorun hakkında araştırıyorum, çözebilirsem veya bu arada başka bir arkadaş yardımcı olursa bende birşey öğrenmiş olacağım.

Sevgi ile kalın.
 
Katılım
24 Temmuz 2007
Mesajlar
338
Excel Vers. ve Dili
2003
olsun yinede tüm yardımlarınız için teşekkür ederim
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Makro ile son satır bulma problemi.

Değerli arkadaşlar.

Kod:
Sub Aktar()
Sheets("255demirbaş").Select
i = [c65536].End(3).Row + 1
[S2:AD2].Copy
Range("b" & i).PasteSpecial Paste:=xlPasteValues
End Sub
Kodları ile C sütunun da ilk boş satırı bulup, kopyalamayı yapıyorum.
Sorun, [s2:ad2] aralığında veri olmayınca (boş), kopyalamadan sonra ilk boş satır bir alt satıra kayıyor. Yani arada boş satırlar oluşuyor.

http://www.excel.web.tr/showthread.php?t=35110
9 nolu mesajda.
ÖDEME EMRİ sayfasında 255 leri 740 yapın. Kaydet butonuna basın. tekrar 1 tane 255 yazın. kaydet . Ve 255 sayfasında sonuca bakın.
Arada kalan boşluk sorununu bir türlü çözemedim.
 
Son düzenleme:
S

Skorpiyon

Misafir
Arkada&#351;lar,

Say&#305;n AS3434'&#252;n dediklerini yapt&#305;ktan sonra,

"255demirba&#351;" sayfas&#305;nda C kolonunda bo&#351; g&#246;r&#252;nen h&#252;creye bir veriyi ta&#351;&#305;maya &#231;al&#305;&#351;&#305;n. H&#252;crenin i&#231;inin asl&#305;nda bo&#351; olmad&#305;&#287;&#305;n&#305; g&#246;receksiniz. Bu nas&#305;l oluyor bende anlam&#305;&#351; de&#287;ilim.

Sayg&#305;lar&#305;mla...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sorun [S2:AD2].Copy alanından kaynaklanmaktadır. Bu alan formülle verileri almaktardır. Ve formülede veri yoksa "" boş bırak ifadesi kullanılmıştır. Bunu aşabilmek için IF kontrolü eklemek faydalı olacaktır. Kodları aşağıdaki gibi düzenlerseniz problem çözülür.

Kod:
Sub AKTAR()
    If MsgBox(" KAYDETMEK İSTİYORMUSUNUZ ??", vbYesNo) = vbNo Then Exit Sub
    Application.ScreenUpdating = False
    Sheets("255demirbaş").Select
    If [R2] > 0 Then
    X = [C65536].End(3).Row + 1
    [S2:AD2].Copy
    Range("B" & X).PasteSpecial Paste:=xlPasteValues
    Range("B" & X).Select
    Else
    Sheets("740Üretimgideri").Select
    If [BA2] > 0 Then
    Y = [C65536].End(3).Row + 1
    [BB2:CF2].Copy
    Range("B" & Y).PasteSpecial Paste:=xlPasteValues
    Range("B" & Y).Select
    Sheets("ÖDEME EMRİ").Select
    End If
    Application.CutCopyMode = False
    End If
End Sub
 
Son düzenleme:
Üst