Soru başka sayfaya aktarırken formüllü alanları aktarmama

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,372
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
arkadaşlar bu sayfadaki veriler başka sayfadan aktarma makrosu ile geliyor.aktarılan sayfadaki verilerde formül var.aktarırkende formüllü alanları bu şekilde aktarıyor.
benim yapmak istediğim dolu olan satırlar aktarmak..aktarma makrosu aşağıdaki gibidir.bu kodda nasıl bir değişiklik yaparsak aktarırken sadece dolu alanları aktarsın

Sheets("FATURA LİSTESİ").Range("A6:O10000").Copy
Sheets("Sayfa1").Range("A2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
MsgBox "Kopyalama Yapıldı..!!"

iyi çalışmalar
 

Ekli dosyalar

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,213
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Aktarma işlemini bir döngü ile yaparsanız herhangi bir mukayese ile sadece var olanları sayfaya alırsınız.
Yada ikinci bir makro ile (örnekteki gibi stok adı değeri 0 olanları) silersiniz.
İyi çalışmalar.
 

Ekli dosyalar

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,372
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Üstad teşekkürler.sorunum çözüldü.

çok değişik başka çalışmalarımda var onlarda da bu sorunu yaşıyorum.formüllü alanlarıda aktarıyor.
bu konuda tam bilgim yok aktarma işlemini döngü ile nasıl yapılıyor.
yukarıda yazdıklarınızı örnekle açıklayabilir misiniz

iyi çalışmalar
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,213
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
sizin sayfanızı FATURA LİSTESİ sayfası olarak tanımladım.
Bu sayfada G sütun verisi sıfır yada boş olmayanları rapor sayfasına alacak makro uyguladım.
Ayrıca makroda her satıra yaptığı işle ilgili basit açıklama yazdım.
Deneyin ve kodları inceleyin.
İyi çalışmalar.
 

Ekli dosyalar

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,372
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Teşekkür ederim üstad
dosyaki makro kodları ve açıklayıcı notlar için ayrı ayrı teşekkür ederim

iyi çalışmalar
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,032
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formüllü tablonuzu ekleseydiniz belki alternatif çözümler sunulabilirdi.
 

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,372
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Korhan bey günaydın
sizlerden zaman zaman aldığım destekler neticesinde bu çalışmayı yaptım.
bu çalışmayı yapmamdaki gaye biz muhasebeciler için çok yorucu olan faturalar işlenmesini daha pratik ve kontrol edilebilir bir şekilde programa aktarım yapmak.
e-fatura vb.değişimlerin olması neticesinde gerek program portallarından gerekse gib üzerinden excel formatında indirdiğim fatura listelerini muhasebe programıma sorunsuz bir şekilde aktarmak
ancak başka sayfalara aktarma yaptığım zaman önceki sayfada formül varsa aktarılan sayfaya formülü aktarmasada değerleri aktarıyor.
örneğin fatura listesi sayfasında kırmızı olan satırlarda formüller var sayfa 1 e aktarım yaptığımda formülden kaynaklı değerleri aktarıyor.
bu değerleri aktarmasını istemiyorum.muygun bey sağolsun güzel bir çözüm üretti.
sizden de alternatif bir çözüm gelirse memnun olurum tabiki
ilginize alakanıza teşekkür ederim

iyi çalışmalar
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,032
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayfanızda kilit nokta "AA" sütunudur.

Buradaki son dolu satıra göre işlem yapılırsa istediğiniz sonuca ulaşabilirsiniz.

Değer olarak veri aktarma işleminde kopyala-değer yapıştır kullanmak zorunda değilsiniz. Aşağıdaki yöntemle yapabilirsiniz.

Deneyiniz.

C++:
Private Sub CommandButton2_Click()
    Dim S1 As Worksheet, S2 As Worksheet, Son As Long

    Set S1 = Sheets("FATURA LİSTESİ")
    Set S2 = Sheets("Sayfa1")
    
    Son = S1.Cells(S1.Rows.Count, "AA").End(3).Row
    
    With S2
        .Range("A2:O" & .Rows.Count).ClearContents
        .Range("A2:O2").Resize(Son - 5).Value = S1.Range("A6:O" & Son).Value
    End With
    
    Set S1 = Nothing
    Set S2 = Nothing
    
    MsgBox "Veri aktarımı tamamlanmıştır."
End Sub
 

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,372
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Korhan bey teşekkür ederim

ancak sayfa 1 e aktarıldığında E ve F sütunlarındaki cari ve stok kodları böyle geliyor.
fatura listesi sayfasında virgüllü ve noktalı hesap kodları var aynı şekilde aktarmıyor.
sorun nerede burada

iyi çalışmalar
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,032
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sizin kaynak verilerizde sıkıntı var.

Hesap kodlarında virgül ve nokta kullanılmış. Bildiğiniz üzere excelin ondalık ayıracı virgüldür.

Bu sebeple işler karışıyor.

İlk olarak "FATURA LİSTESİ" sayfasında;

E6 hücresindeki formülü aşağıdaki gibi değiştiriniz.

C++:
=EĞERHATA(YERİNEKOY(DÜŞEYARA(AA6;CH!$A$2:$J$5000;10;0);",";".");" ")
F6 hücresindeki formülü aşağıdaki gibi değiştiriniz.
C++:
=EĞERHATA(YERİNEKOY(İNDİS(CH!$F$2:$H$3000;TOPLA.ÇARPIM(KAÇINCI(AA6&YUVARLA(M6;0);CH!$A$2:$A$3000&CH!$H$2:$H$3000;0));1);",";".");" ")
Sonra aşağıdaki makroyu deneyiniz.

C++:
Private Sub CommandButton2_Click()
    Dim S1 As Worksheet, S2 As Worksheet, Son As Long

    Set S1 = Sheets("FATURA LİSTESİ")
    Set S2 = Sheets("Sayfa1")
    
    Son = S1.Cells(S1.Rows.Count, "AA").End(3).Row
    
    With S2
        .Range("A2:O" & .Rows.Count).ClearContents
        .Range("E2:F" & .Rows.Count).NumberFormat = "@"
        .Range("A2:O2").Resize(Son - 5).Value = S1.Range("A6:O" & Son).Value
    End With
    
    Set S1 = Nothing
    Set S2 = Nothing
    
    MsgBox "Veri aktarımı tamamlanmıştır."
End Sub
Böylece hesap kodları düzgün şekilde aktarılacaktır.
 

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,372
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Korhan bey teşekkür ederim.
herzamanki gibi dört dörtlük çözüm ürettiniz.
bizler siz ve diğer üstadların hakkını nasıl ödeyeceğiz.
iyiki varsınız hepiniz.

iyi çalışmalar
 
Üst