• DİKKAT

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

makro ile, her yeni veriyi bir sonraki kolona almak

Katılım
2 Temmuz 2012
Mesajlar
19
Excel Vers. ve Dili
ingilizce
Merhaba,

normalde kullandığım excel i çok daha ufaltarak ekte sunuyorum. amacım temizle butonunu her kullandığımda girilen verileri boş olan ilk kolona arşivlemesi.
örnek tablodaki veriler için temizle butonunu kullandığımda arsiv sekmesindeki B kolonuna istediğim verileri alıyor, fakat bir daha bastığımda aynı kolonu kullanacak ben de arşivleme yapamayacağım. bunun yerine devam eden veri girişleri temizle butonuna her tıklandığında sırası ile C,D,E.... kolonlarına gitsin istiyorum.

şimdiden yardımlarınız ve ilgiliniz için tesekkur ederim
 
Merhaba,
Aşağıdaki kodu modüle yağıştırıp, temizle butonuna atayarak dener misiniz.
Kod:
Sub SutunlaraAktar()
    Set s1 = Sheets("bilgiler")
    Set s2 = Sheets("arsiv")
    s1.Range("B1:B" & s1.[B65536].End(3).Row).Copy s2.Cells(2, s2.[IV2].End(1).Column + 1)
    s1.Range("B1:B" & s1.[B65536].End(3).Row).ClearContents
End Sub
 
Merhaba

öncelikle yanıtınız için çok tesekkur ederim. kodu denedim çalışıyor.
fakat benim sectiğim veriler yerine tümünü aktarıyor. aslında ornek tablo için problem değil fakat orjinal olan cok daha fazla veri ve bazı makrolar içeriyor. ayrıca öğrendikçe modifiye ediyorum. bu nedenle bana eğer anlatması kolay ise sonraki kolon nasıl atanır bilgisini verirseniz çok yardımcı olursunuz.

çok çok az bilgim olduğundan yorum yapmam doğru olmaz fakat "coloumn + 1" ibaresi aradığım şey gibi geldi.
 
Merhaba,
Aradığınız şey,
Kod:
s2.[IV2].End(1).Column + 1
Komut Arşiv sayfasının 2.satırını baz alarak en son kolondan(2003 versiyonda IV kolonu) başa doğru dolu olan kolonun bir sonrasını yani ilk boş kolonu gösterir.
 
Merhaba

Bu şekilde çok çok daha fazla yardımcı olmuş oldunuz, tekrar teşekkür ederim
 
Merhaba,

sanırım ben beceremedim.
basit bir copy paste macrosu yapıp onun uzerinden oynadım. paste komutunun yerine
Range(s2.[IV2].End(1).Column + 1).Paste yazdım, zaten buradan hata verdi ekte orjinal dosya bulunmakta dogru komut ne sekilde olmalı yardımınızı rica ederim
 

Ekli dosyalar

Merhaba,
Orjinal dosyanızda uzun bir aramadan sonra makronuzu buldum ama, ne yapmak istediğinizi anlamadım.
Hangi sayfadaki hangi verileri, hangi sayfaya taşıyacaksınız? Taşımadan sonra ilgili alan temizlenecek mi?
 
Merhaba,

ilginiz için teşekkür ederim.
amacım organizasyonu yaptığımız yüklemelerin karlılığını hesaplayıp excel'de arşivlemek. bu nedenle "konsol kar hesaplama" sekmesinde bulunan 6 başlığı "teketek" sekmesinden cekmek. bu duruma kadar problem yok. record macro seceneği ile yapabiliyoruz. kabaca soylersem aynı konteyner içerisindeki diğer yükleri ayıramayacağımdan dolayı bu bilgileri yan kolon içerisine görmek istiyorum.

bunu yaparken, konsol sıfırla butonunu kullanmak istiyorum ki her sıfırladığımda yazdıklarımı "konsol kar hesaplama" sekmesinde saklasın ve geriye dönük veriler elimde olsun. ay sonunda (yine kabaca) konteyner kar raporu geldiğinde elimdekiler ile hangisi uyuşmuyor kontrol edebileyim
 
Merhaba,
Açıklamanızı anlamadığımı belirtmek zorundayım. Siz konuyu biliyorsunuz ama biz bilmiyoruz. Açıklamalarınıza bakarak işlem yapmak durumundayız.
""konsol kar hesaplama" sekmesinde bulunan 6 başlığı "teketek" sekmesinden cekmek.." diyorsunuz. Bu 6 başlık teketek sekmesinde hangi hücrelerde yer alıyor ben bulamadım. Ör. ORIGIN sözcüğü teketek sayfasında yok.
" bu duruma kadar problem yok. record macro seceneği ile yapabiliyoruz.." Öyle ise;Makronuzdaki ilgili satırı aşağıdaki ile değiştirerek dener misiniz?
Kod:
    Range("B:B" & [IV1].End(1).Column + 1).Select
 
Merhaba, iyi günler

yukarıda belirtmiş olduğunuz kodu // Range("B1").Select // yerine yazdım makroyu çalıştırdığımda "method range of subject _global failed hatası almaktayım.

not: aşağıdaki kode yalnızca bir hücre için, fakat problem değil bir hücreyi yapsam da bana yetecek

mevcut durum aşağıdaki gibi...

' arsiv11 Macro
'

'
Sheets("teketek").Select
Range("B2").Select
Selection.Copy
Sheets("konsol kar hesaplama").Select
Range("B:B" & [IV1].End(1).Column + 1).Select
Selection.Paste
 
Merhaba,
Böyle kullanabilirsiniz.
Kod:
Sub Aktar()
Sheets("teketek").Select
    Range("B2").Select
    Selection.Copy
    Sheets("konsol kar hesaplama").Select
    Cells(2, [IV2].End(1).Column + 1).Select
    ActiveSheet.Paste
End Sub
 
Eğer uygunsanız son bir sorum daha olacak.

paste yaparken yalnızca değerleri (paste special) almak istedim, ve kendimce paste kodunun devamını aşağıdaki gibi yaptım fakat hata verdi. hatasız olması için nasıl bir düzenleme yapmam gerekir?

Kod:
Sheets("teketek").Select
    Range("E21").Select
    Selection.Copy
    Sheets("konsol kar hesaplama").Select
    Cells(6, [IV6].End(1).Column + 1).Select
    ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
Merhaba,

Kodunuzdaki " ActiveSheet.PasteSpecial Paste:=xlPasteValues" satırındaki ActiveSheet tanımını, Selection ile değiştirin.
 
çalıştı çok teşekkür ederim
 
Geri
Üst