• DİKKAT

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

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
 
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
 
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.
 
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:
 
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 .
 
Selamlar,

Bu durumda aynı işlemi tekrarlamanız gerekiyor maalesef.
 
Sn. COST CONTROL
İlginiz için teşekkür ederim.
 
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.
 
Selamlar,

Sn. kombo konuyla ilgili örnek bir dosya ekleyebilirmisiniz.
 
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
 
Selamlar,

Dosyanız üzerinde birkaç değişiklik yaptım. Umarım istediğiniz gibi olmuştur.
 
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.
 
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:
 
Sn Cost Control
Detaylı açıklamanız için teşekkür ederim. :hey:
 
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.
 
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:
 
Geri
Üst