Veri aktar kodunda revize

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Aşağıdaki makro ile TOPLAM sayfasındaki verileri F1 hücresindeki rakama göre sayfa adı vererek yeni bir sayfaya aktarıyorum.
Yapmak istediğim, aktarma işleminin sonunda yeni açılan sayfanın Q sütunundaki veriyi Toplam sayfasında B sütununa aktarmak. Yeşil yazılan kısma kadar makro güzel çalışıyor. Yeşil yazan yerden sonra nasıl bir düzenleme yapmam gerek?



Sub SAYFA_EKLE()
ActiveSheet.Unprotect
Application.ScreenUpdating = False
SAY = Worksheets.Count - 1
Sheets("TOPLAM").Select
Sheets("TOPLAM").Copy After:=Sheets("TOPLAM")
ActiveSheet.Shapes("Button 8").Delete
ActiveSheet.Name = Format(Sheets("TOPLAM").Range("F1").Value, "00")
ActiveSheet.[F1].Select
Selection.NumberFormat = "00"
ActiveSheet.Protect
Sheets("TOPLAM").Select
[F1] = [F1] + 1
Range("B7:B500,E7:F500").ClearContents
For X = 3
Sheets("X").Select
Sheets(X).Range("Q7:Q500").Select
Selection.Copy
Sheets("TOPLAM").Range("B7").Select
ActiveSheet.Paste

Application.ScreenUpdating True
ActiveSheet.Protect
End Sub
 

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,

Kendi kodunuzu aşağıdaki ile değiştirip denermisiniz. (Siz kodunuzda For ile döngü başlatmaya çalışmışsınız fakat ifadeler eksik olduğu için işlemde hata oluşuyor.)

Kod:
Sub SAYFA_EKLE()
ActiveSheet.Unprotect
Application.ScreenUpdating = False
SAY = Worksheets.Count - 1
Sheets("TOPLAM").Select
Sheets("TOPLAM").Copy After:=Sheets("TOPLAM")
'ActiveSheet.Shapes("Button 8").Delete
ActiveSheet.Name = Format(Sheets("TOPLAM").Range("F1").Value, "00")
ActiveSheet.[F1].Select
Selection.NumberFormat = "00"
ActiveSheet.Protect
Sheets("TOPLAM").Select
[F1] = [F1] + 1
Range("B7:B500,E7:F500").ClearContents
ActiveSheet.Next.Select
Range("Q7:Q500").Select
Selection.Copy
Range("A7").Select
Sheets("TOPLAM").Select
Range("B7").Select
ActiveSheet.Paste
Range("A7").Select
Application.ScreenUpdating = True
ActiveSheet.Protect
End Sub
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sn. COST CONTROL
Yazdığınız kodlar istediğim gibi olmuş. Teşekkür ederim. (İlk kodlarda size aitti zaten. Üzerinde oynama yapmaya çalışıyordum.)
Bir şey daha öğrenmem mümkün mü acaba,
Yan yana olmayan sütunları aynı şekilde aktarırken yine aynı işlemi mi tekrarlamamız gerekiyor.
 

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,

Kodun içeriğine dikkat ederseniz sütun bazında bir aktarım söz konusu değil şablon olarak seçilen sayfa kopyalanıp ismi değiştiriliyor sadece yani sayfada sütunların yanyana olmamasının pek bir önemi yok bu kodda eğer sorunuzu yanlış anlamadıysam. :arkadas:
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sn COST CONTROL
Anlatmak istediğim o değildi.

Range("B7:B500,E7:F500").ClearContents
ActiveSheet.Next.Select
Range("Q7:Q500").Select
Selection.Copy
Range("A7").Select
Sheets("TOPLAM").Select
Range("B7").Select
ActiveSheet.Paste
Range("A7").Select

İlk aktarmadan sonra Q sütununu TOPLAM sayfasının B sütununa tekrar aktarıyoruz . Aynı şekilde T sütununu "TOPLAM" sayfasında F sütununa aktarmak için aynı işlemi tekrarlamak mı gerekiyor yoksa
kodlarda yapılacak değişiklikle bir seferde yapmak mümkünmü.
Uğraşıyorum ama tek seferde yapamıyorum. Sütunları yan yana aktarıyor .
 

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,

Bu durumda aynı işlemi tekrarlamanız gerekiyor maalesef.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sn. COST CONTROL
İlginiz için teşekkür ederim.
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
Selam
Benzer bir soruda benim olacak. Makronun içindeki aşağıdaki kısımla veri aktarıyorum. Aktardığım sayfada (sayfa6) F sütununda gelen verileri formülde kullanıyorum. Aktardığım hücrelerde (ac7:ac150) formül sonucu boş kalan hücreler var. Bundan dolayı #DEĞER hatası alıyorum.
.
.
.
ActiveSheet.Range("ac7:ac150").Copy
Sheets("SAYFA6").Range("f7").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
.
.
.


#DEĞER hatası almamak için kodlarda nasıl bir düzenleme yapmam gerekecek.

PasteSpecial Paste:=xlValues olan yeri "0" dan büyük hücreler olarak düzenlemeye çalıştım ama yapamadım.
Bana yol gösterirseniz memnun olurum.
 

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,

Sn. kombo konuyla ilgili örnek bir dosya ekleyebilirmisiniz.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Benzer bir soruda benim olacak. Makronun içindeki aşağıdaki kısımla veri aktarıyorum. Aktardığım sayfada (sayfa6) F sütununda gelen verileri formülde kullanıyorum. Aktardığım hücrelerde (ac7:ac150) formül sonucu boş kalan hücreler var. Bundan dolayı #DEĞER hatası alıyorum.
Hemen hemen aynı sorun. Açıklama dosyada demek istemiyorum ama
( http://www.excel.web.tr/viewtopic.php?t=18320 )
Başka türlü izah edemedim.Özür dilerim.
Sevgilerle
 

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,

Dosyanız üzerinde birkaç değişiklik yaptım. Umarım istediğiniz gibi olmuştur.
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
Sn. Cost Control
Yukardaki dosyaya yazdığınız kodların bir kısmını ben kendime uyarlamaya çalıştım. Yeniden düzenleme yapıp butonu diğer sayfaya koyunca oluyor . Ama aşağıdaki kodlamayı anlayamadım. F8 ile adımladım ama yine anlamadım. İşlevinin ne olduğunu izah etmeniz mümkünmü acaba? ADRES bir makro kodlamasımı?

ADRES = WorksheetFunction.Count([f7:f150]) + 7
Range("f" & ADRES & ":f150").ClearContents
VE
SkipBlanks 'ın işlevi nedir?

Ben 150 satırda işlem görüyorum. Bunun için F150 ye kadar seçtim ve makro sorunsuz çalıştı.
Bu arada kodlar bana da yaradı teşekkür ederim.
 

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,

Sn. kombo ben en son eklenen dosya üzerinde kodu düzenlemeye çalışırken dosyada kullanılan fonksiyonlardan kaynaklanan #DEĞER hatasını düzeltebilmek için bu eklemelere ihtiyaç duydum. Açıklamasına gelince;

[F7:F150] veri aralığındaki sayısal değerleri saydırıp bu değeri ADRES değişkenine atadım ayrıca ilk kısımda bulunan boş satırları ve başlık satırınıda +7 diyerek ADRES değişkenini belirlemiş oldum.

Daha sonra bu değişkeni kullanarak fonksiyonlar sebebiyle hataya sebebiyet veren boş gibi görünen gereksiz hücrelerin içeriğini sildirdim. Böylece #DEĞER hatasından kurtulmuş olduk. :mrgreen:

SkipBlanks ise makro kaydet yöntemiyle özel yapıştır-değerleri yaptığımda kendiliğinden oluşan bir kod kelime anlamıda Skip (atlamak-geçmek) / Blanks (boşluk) anlamına gelmektedir. İkisini birleştirince boşları atla gibi bir sonuç ortaya çıkıyor. :hey:
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
Sn Cost Control
Detaylı açıklamanız için teşekkür ederim. :hey:
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sn. COST CONTROL
Elinize emeğinize sağlık. Teşekkür ederim.

Not. Koşullu Biçimlendirme ile sizin yaptığınız şekilde de Yeşil Defter' in en alt satırına (aktarmadan sonra) çizgi çekilmiyor. Onu bende bir türlü yapamadım.
 

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,

Dosyanızı bu şekilde formüllerle oluşturmanız ileride başka birşeyler eklemek istediğinizde size problem çıkarabilir. Bu yapılan işlemleri makro ile halletmeniz daha sağlıklı olur kanaatindeyim. Belirttiğiniz gibi alt satıra çizgi çizdirebilmek epey uğraştım fakat çözemedim. Neyse probleminizin çözülmesine sevindim. :arkadas:
 
Üst