• DİKKAT

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

Satırı ; kodu devam ettirerek diğer sayfaya kopyala

  • Konbuyu başlatan Konbuyu başlatan cems
  • Başlangıç tarihi Başlangıç tarihi

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,581
Excel Vers. ve Dili
office 2010 tr 32bit
Sayın Evren Gizlen'in aşağıdaki kodları ile userform'dan tuş komutu ile ana ekran sayfasındaki çok dağınık verileri , sozbitim sayfasında son boş satıra satır-data şeklinde serilerek veri alıyorum

Sheets("Ana Ekran").Select

Dim i As Long, _
wso As Worksheet, _
wsd As Worksheet

Set wso = Sheets("Ana Ekran")
Set wsd = Sheets("Sozbitim") 'e atılıyor

i = wsd.Cells(Rows.Count, "a").End(3).Row + 1
wsd.Cells(i, "a") = wso.Range("c7") 'müşteri cari no ok
.
. >> birçok satır
.
wsd.Cells(i, "I") = wso.Range("e19")
wsd.Cells(i, "j") = wso.Range("b9") '
end sub

Ancak sozbitim sayfasına gelen son veri satırının A dan J ye kadar olan bölümünü kopyalayarak
fatura sayfasındaki ilk boş satıra a dan itibaren yapıştırmam gerek.

Bunu ; bir modulde ayrı bir sub kod başlığı altında sozbitim-fatura arasında yapıyorum ama, ikinci tuşa basmak unutulabiliyor. Bu yuzden , anaekran-sozbitim sayfaları arasında aktarması sonrasında ama devam eden iş olarak , sozbitim-fatura arasında ( son dolu satırda a-j arasını kopyala + fatura sayfasında ilk bos satırında a dan itibaren sererek yapıştır) mak amaclı birleşik kodları nasıl düzenlenebilir
 
Son düzenleme:
Merhaba,

Sorunuzu tam olarak anlayamadım fakat 2 çalışan kodu oluşturduysanız aşağıdaki gibi bir yapı kurabilirsiniz.

Kod:
Sub Makro1()
    'kodlar
    [COLOR=red]Call Makro2[/COLOR]
End Sub
'''''''''''''''''''''''''''''''''''''''''''''
Sub Makro2()
    'kodar
End Sub

Bu şekilde sadece Makro1 i butona bağlayarak 2 kodu çalıştırmış olursunuz.

.
 
Ömer Bey merhaba ;
Denedim ancak :

Dim i As Long, _
wso As Worksheet, _
wsd As Worksheet

koyu olan kısmı ambigious olarak değerlendirdi ve durdu

Dim i As Long, _
wso As Worksheet, _
wsd As Worksheet
wsf As Worksheet ekledim ( wsf fatura sayfası)

yine durdu.

Tam olarak şu şekilde açıklayayım. Paylaştırılmış bir dosyada İki ayrı tuş ve iki ayrı sub olarak kullanmak kaydı ile 1ci sayfadan2ciye ilk sub ile 2ci sayfadan3cüye ikinci sub ile aktarıyorum. Ancak programı kullanan ikinci düğmeye basmayı unutuyor ve başkası da 3cu sayfaya atılmayan veriyi arıyor. Tabi sıkıntı bulunana kadar herşey duruyor. Her iki ayrı sub içinde aynı kodları kullanıyorum ve genel çözüm olarak tek tuşta 3 sayfaya peşpeşe aktarım aklıma geliyor. Bulduğum kodlamalarla uğraştım en sonunda kafam durdu ve bilene sormak istedim .

Basit görünse de birşey çakışıyor. Tam olarak beklentim ;
1cisayfadan2cisayfaya veritabanı olarak attıktan sonra 2ci sayfadaki son satırdaki bilgiden a:j arasını 3cü sayfada ilk boş satıra TEK TUŞ ile atabilmek. Bu tek tuş altında olursa personel de çakışmayacak ; her ne kadar ne olduğunu bilmeseler de unutmanın ilacı sanırım ikili düğmenin orda olmaması.
 
Son düzenleme:
Sayfada, A:J hücreleri arasındaki son satır indisini mi arıyorsunuz.
 
evet, ikinci sayfada son satırın bir bölümünü üçüncü sayfaya tek kod içinde sıralı olarak atmak
 
evet, ikinci sayfada son satırın bir bölümünü üçüncü sayfaya tek kod içinde sıralı olarak atmak

Aşağıdaki gibi bir yapı kurarak denermisiniz.

Kod:
Dim S2 As Worksheet, S3 As Worksheet, sOn2 As Long, sOn3 As Long
 
Set S2 = Sheets("Sayfa2")
Set S3 = Sheets("Sayfa3")

sOn2 = S2.Range("A:J").Find("*", , , , xlByRows, xlPrevious).Row
sOn3 = S3.Cells(Rows.Count, "A").End(xlUp).Row + 1
 
S2.Range("A" & sOn2 & ":J" & sOn2).Copy S3.Range("A" & sOn3)
.
 
Deniyorum Ömer Bey
 
Saat gibi çalıştı Ömer Bey :)

Elleriniz dert görmesin teşekkür ederim
 
Geri
Üst