Xml Dosyası düzenleme ve yine xml formatında kaydetme

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
İşin ticari kısmını üzerinize alırsanız, xml' den paketlemeye kadar tüm işleri yapabilirim. ;)
BaBS için olmasa da KDV muhtasara gibi beyannameler için bu programın çok verimli olacağı kesin. Paketleme işini Bdpye bırakmak daha iyi olacaktır diye düşünüyorum.Son kontrolleri onda yapıp İVD sine yüklemek daha isabet olur.
Ticari kısma gelince dosya tam teşekküllü bittiğinde piyasaya süreceğim kesin :)
:cool:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yukarıda 58 No'lu mesajımda belirttiğim gibi, oluşturulan XML dosyasını Excel'e aktarırken alınan hata mesajı çözemedim ama bir şeyi fark ettim;

Daha önce @Erdem_34 'ün 40 No'lu mesajına eklemiş olduğu ve kendisinin ürettiğini belirttiği XML dosyasını da Excel'e manuel olarak aktarırken aynı hata mesajı alınıyor. Bu da demek oluyor ki; sorun VBA kodlarında değil !

Bu durumda yapılabilecek en iyi test; ekli dosya ile bir XML tablosu üretip, bunu VD'nin bahsedilen programına tanıtmak olacaktır.

Bu işlemi yapıp, sonucun olumlu veya olumsuz olduğunu bildirebileceklere teşekkür ederim. Dosyanın en güncel hali ektedir...

*********************************************************************
Not-1: Ekli dosya, içinde bulunduğu dizinde yer alan EBYN6.xsd ve FORMBA_6.xsd ile birlikte çalıştırıldığında, beklendiği gibi; eğer Excel tablosundaki verilerde herhangi bir uyumsuzluk olduğunda uyarı alınmakta ve verilerin Excel'e doğru bir şekilde girişlerinin yapılması sağlanmaktadır. Bu bağlamda; Excel dosyasının söz konusu XSD dosyalarıyla uyumlu olduğu sonucu ortaya çıkmaktadır.

Sorun; normal şartlarda; doğru hazırlanmış bir XML tablosunun Excel'e sorunsuz bir şekilde aktarılmasını beklerken; 58 No'lu mesajımda belirttiğim durumun oluşmasıdır. Aynı mesajımda belirttiğim gibi; sorunun muhtemelen söz konusu XSD dosyalarının hazırlanışından kaynaklanan bir problem olduğunu düşünüyorum.

*********************************************************************

_________________________________________________________________
Not-2: Dosyanın son haline 79 No'lu mesajdan erişilebilir.
_________________________________________________________________


.
 

Ekli dosyalar

Son düzenleme:
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
1545642513051.png

V.no ile tc no aynı anda gelmiş Onun dışında problem görünmüyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
V.no ile tc no aynı anda gelmiş Onun dışında problem görünmüyor.
Bilgi için teşekkürler,...... Ancak; eklediğiniz resimdeki VK No - TC NO benim eklediğim dosyadaki veriler değil sanırım. Siz değiştirip de mi kullandınız?

.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Beyanname programında Türkiye dışında ülke seçildiğinde VK-No ve TC No birlikte otomatik 11111 olarak doluyor.
O kısım doğru aslında.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Benim düzenlediğim kodlar bu şekilde.
Beyanname değişse bile değişikliği kolay olur diye düşünüyorum.
Bu arada kodlar kdv için. Ama genel mantık aynı:)
Kod:
Sub XML_oluştur()

  Set tn = Sheets("Tanımlar")
Set kdv = Sheets("KDV")
    FullPath = "C:\ebyn\beyannameler\Beyannameler\" & "KdvBeyanname.xml"

    Set objStream = CreateObject("ADODB.Stream")
    objStream.Charset = "iso-8859-9"

    objStream.Open
    objStream.WriteText ("<?xml version='1.0' encoding='ISO-8859-9'?>" & vbLf)
    objStream.WriteText ("<beyanname xsi:noNamespaceSchemaLocation=" & "'" & tn.Range("B1") _
    & ".xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' kodVer=" & "'" & tn.Range("B1") & "'>" & vbLf)
    objStream.WriteText ("  <genel>" & vbLf)
    objStream.WriteText ("      <idari>" & vbLf)
    objStream.WriteText ("          <vdKodu>" & tn.Range("B3") & "</vdKodu>" & vbLf)
    objStream.WriteText ("          <donem>" & vbLf)
    'Dim intTotalRows As Integer: intTotalRows = 6 ' Worksheets("DATA").Cells(Rows.Count, "B").End(x1Up).Row
    'For intRow = 1 To intTotalRows
    objStream.WriteText ("              <tip>aylik</tip>" & vbLf)
    objStream.WriteText ("              <yil>" & tn.Range("B4") & "</yil>" & vbLf)
    objStream.WriteText ("              <ay>" & tn.Range("B5") & "</ay>" & vbLf)
    objStream.WriteText ("           </donem>" & vbLf)
    objStream.WriteText ("       </idari>" & vbLf)
    objStream.WriteText ("     <mukellef>" & vbLf)
    objStream.WriteText ("         <vergiNo>" & tn.Range("B6") & "</vergiNo>" & vbLf)
    objStream.WriteText ("         <soyadi>" & tn.Range("B7") & "</soyadi>" & vbLf)
    objStream.WriteText ("         <ticSicilNo>" & tn.Range("B8") & "</ticSicilNo>" & vbLf)
    objStream.WriteText ("         <eposta>" & tn.Range("B9") & "</eposta>" & vbLf)
    objStream.WriteText ("         <alanKodu>" & Left(tn.Range("B10"), 3) & "</alanKodu>" & vbLf)
    objStream.WriteText ("         <telNo>" & Right(tn.Range("B10"), 7) & "</telNo>" & vbLf)
    objStream.WriteText ("     </mukellef>" & vbLf)
    objStream.WriteText ("     <hsv sifat='kendisi'>" & vbLf)
    objStream.WriteText ("         <vergiNo>" & tn.Range("B6") & "</vergiNo>" & vbLf)
    objStream.WriteText ("         <soyadi>" & tn.Range("B7") & "</soyadi>" & vbLf)
    objStream.WriteText ("         <adi>""</adi>" & vbLf)
    objStream.WriteText ("         <ticSicilNo>" & tn.Range("B6") & "</ticSicilNo>" & vbLf)
    objStream.WriteText ("         <eposta>" & tn.Range("B9") & "</eposta>" & vbLf)
    objStream.WriteText ("         <alanKodu>312</alanKodu>" & vbLf)
    objStream.WriteText ("         <telNo>3975252</telNo>" & vbLf)
    objStream.WriteText ("     </hsv>" & vbLf)
    objStream.WriteText ("     <duzenleyen>" & vbLf)
    objStream.WriteText ("          <vergiNo>" & tn.Range("B6") & "</vergiNo>" & vbLf)
    objStream.WriteText ("          <soyadi>" & tn.Range("B6") & "</soyadi>" & vbLf)
    objStream.WriteText ("          <adi>""</adi>" & vbLf)
    objStream.WriteText ("          <ticSicilNo>" & tn.Range("B6") & "</ticSicilNo>" & vbLf)
    objStream.WriteText ("          <eposta>" & tn.Range("B9") & "</eposta>" & vbLf)
    objStream.WriteText ("          <alanKodu>" & Left(tn.Range("B10"), 3) & "</alanKodu>" & vbLf)
    objStream.WriteText ("          <telNo>" & Right(tn.Range("B10"), 7) & "</telNo>" & vbLf)
    objStream.WriteText ("      </duzenleyen>" & vbLf)
    objStream.WriteText ("  </genel>" & vbLf)
    objStream.WriteText ("  <ozel>" & vbLf)
    objStream.WriteText ("      <tevkifatUygulanmayanlar>" & vbLf)
    objStream.WriteText ("          <tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <matrah>572847.82</matrah>" & vbLf)
    objStream.WriteText ("              <oran>1</oran>" & vbLf)
    objStream.WriteText ("              <vergi>5728.48</vergi>" & vbLf)
    objStream.WriteText ("              </tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <matrah>21165744.60</matrah>" & vbLf)
    objStream.WriteText ("              <oran>8</oran>" & vbLf)
    objStream.WriteText ("              <vergi>1693259.57</vergi>" & vbLf)
    objStream.WriteText ("          </tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("          <tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <matrah>11215075.28</matrah>" & vbLf)
    objStream.WriteText ("              <oran>18</oran>" & vbLf)
    objStream.WriteText ("              <vergi>2018713.55</vergi>" & vbLf)
    objStream.WriteText ("          </tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("      </tevkifatUygulanmayanlar>" & vbLf)
    objStream.WriteText ("      <vergiToplami>3717701.60</vergiToplami>" & vbLf)
    objStream.WriteText ("      <digerIslemler>" & vbLf)
    objStream.WriteText ("          <digerIslem>" & vbLf)
    objStream.WriteText ("              <islemTuru>504</islemTuru>" & vbLf)
    objStream.WriteText ("              <matrah>569900.82</matrah>" & vbLf)
    objStream.WriteText ("              <vergi>58130.40</vergi>" & vbLf)
    objStream.WriteText ("          </digerIslem>" & vbLf)
    objStream.WriteText ("      </digerIslemler>" & vbLf)
    objStream.WriteText ("      <digerVergiToplami>58130.40</digerVergiToplami>" & vbLf)
    objStream.WriteText ("      <toplamMatrah>33523568.52</toplamMatrah>" & vbLf)
    objStream.WriteText ("      <hesaplananKDV>3775832.00</hesaplananKDV>" & vbLf)
    objStream.WriteText ("      <ilaveEdilecekKDV>0.17</ilaveEdilecekKDV>" & vbLf)
    objStream.WriteText ("      <toplamKDV>3775832.17</toplamKDV>" & vbLf)
    objStream.WriteText ("      <indirimler>" & vbLf)
    objStream.WriteText ("          <indirim>" & vbLf)
    objStream.WriteText ("              <indirimTuru>101</indirimTuru>" & vbLf)
    objStream.WriteText ("              <vergi>762406.75</vergi>" & vbLf)
    objStream.WriteText ("          </indirim>" & vbLf)
    objStream.WriteText ("          <indirim>" & vbLf)
    objStream.WriteText ("              <indirimTuru>102</indirimTuru>" & vbLf)
    objStream.WriteText ("              <vergi>3808733.63</vergi>" & vbLf)
    objStream.WriteText ("          </indirim>" & vbLf)
    objStream.WriteText ("          <indirim>" & vbLf)
    objStream.WriteText ("              <indirimTuru>103</indirimTuru>" & vbLf)
    objStream.WriteText ("              <vergi>14555.62</vergi>" & vbLf)
    objStream.WriteText ("          </indirim>" & vbLf)
    objStream.WriteText ("      </indirimler>" & vbLf)
    objStream.WriteText ("      <indirimlerToplami>4585696.00</indirimlerToplami>" & vbLf)
    objStream.WriteText ("      <indirilecekKDVODler>" & vbLf)
    objStream.WriteText ("          <indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("              <oran>1</oran>" & vbLf)
    objStream.WriteText ("              <bedel>4087514.00</bedel>" & vbLf)
    objStream.WriteText ("              <KDVTutari>40875.14</KDVTutari>" & vbLf)
    objStream.WriteText ("          </indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("          <indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("              <oran>8</oran>" & vbLf)
    objStream.WriteText ("              <bedel>14259046.50</bedel>" & vbLf)
    objStream.WriteText ("              <KDVTutari>1140723.72</KDVTutari>" & vbLf)
    objStream.WriteText ("          </indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("          <indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("              <oran>18</oran>" & vbLf)
    objStream.WriteText ("              <bedel>14595193.17</bedel>" & vbLf)
    objStream.WriteText ("              <KDVTutari>2627134.77</KDVTutari>" & vbLf)
    objStream.WriteText ("          </indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("      </indirilecekKDVODler>" & vbLf)
    objStream.WriteText ("      <indirilecekKDVODToplamKDV>3808733.63</indirilecekKDVODToplamKDV>" & vbLf)
    objStream.WriteText ("      <ihracGerceklesmeyenTecilEdilemeyenKDV>0.00</ihracGerceklesmeyenTecilEdilemeyenKDV>" & vbLf)
    objStream.WriteText ("      <kdvsizTeminEdilenlerIcinOdenmeyenKDV>0</kdvsizTeminEdilenlerIcinOdenmeyenKDV>" & vbLf)
    objStream.WriteText ("      <ihracatDonemindeIadeEdilecekKDV>0.00</ihracatDonemindeIadeEdilecekKDV>" & vbLf)
    objStream.WriteText ("      <yuklenilenKDV>0</yuklenilenKDV>" & vbLf)
    objStream.WriteText ("      <ihracVergiFark>0</ihracVergiFark>" & vbLf)
    objStream.WriteText ("      <tecilEdilecekKDV>0.00</tecilEdilecekKDV>" & vbLf)
    objStream.WriteText ("      <odenmesiGerekenKDV>0.00</odenmesiGerekenKDV>" & vbLf)
    objStream.WriteText ("      <iadeEdilmesiGerekenKDV>0.00</iadeEdilmesiGerekenKDV>" & vbLf)
    objStream.WriteText ("      <sonrakiDonemeDevredenKDV>809863.83</sonrakiDonemeDevredenKDV>" & vbLf)
    objStream.WriteText ("      <matrahaDahilOlmayanBedel>2317145.50</matrahaDahilOlmayanBedel>" & vbLf)
    objStream.WriteText ("      <teslimVeHizmetleriTeskilEdenBedelAylik>35840714.02</teslimVeHizmetleriTeskilEdenBedelAylik>" & vbLf)
    objStream.WriteText ("      <teslimVeHizmetleriTeskilEdenBedelKumulatif>348314250.82</teslimVeHizmetleriTeskilEdenBedelKumulatif>" & vbLf)
    objStream.WriteText ("      <krediKarti>27705408.98</krediKarti>" & vbLf)
    objStream.WriteText ("  </ozel>" & vbLf)
    objStream.WriteText ("</beyanname>" & vbLf)
      
    objStream.SaveToFile FullPath, 2
    objStream.Close

End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Beyanname programında Türkiye dışında ülke seçildiğinde VK-No ve TC No birlikte otomatik 11111 olarak doluyor.
O kısım doğru aslında.
Erdem Bey, bu durumda; sonuca ulaştık diyebilir miyiz?

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
......
...
..
Bu konu başlığına ilgi duymamın sebebi ise; Excel'deki verilerden XML dosyası hazırlamak ama bunu yaparken, print/put-read gibi konvansiyonel I/O metodları yerine, XML'e özgün kendi fonksiyonlarını kullanmak ve bunları burada paylaşarak konuya ilgi duyanlar için "açık kaynak" oluşturmaktı.
...
..
.
Sayın @acar6783 ; hazırladığınız kodla işinizi görüyorsanız sorun yok demektir. Sizin kod tasarımınızda yukarıdaki alıntıda olduğu gibi 46 No'lu mesajımda bahsetmiştim. Ben şahsen, XML kodlamasıyla işin daha sağlıklı ve daha kolay yapılabileceğini düşünüyorum.

.
 
Son düzenleme:

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Haluk bey elinize sağlık.
Dosya çok güzel olmuş.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
BaBs için bu kodları kullanacağım .

Baştan beri ilginiz için çok teşekkür ederim . (y)(y)(y)
Emin olun Faydasını görecek çok kişi olduğunu düşünüyorum.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Benim düzenlediğim kodlar bu şekilde.
Beyanname değişse bile değişikliği kolay olur diye düşünüyorum.
Bu arada kodlar kdv için. Ama genel mantık aynı:)
Kod:
Sub XML_oluştur()

  Set tn = Sheets("Tanımlar")
Set kdv = Sheets("KDV")
    FullPath = "C:\ebyn\beyannameler\Beyannameler\" & "KdvBeyanname.xml"

    Set objStream = CreateObject("ADODB.Stream")
    objStream.Charset = "iso-8859-9"

    objStream.Open
    objStream.WriteText ("<?xml version='1.0' encoding='ISO-8859-9'?>" & vbLf)
    objStream.WriteText ("<beyanname xsi:noNamespaceSchemaLocation=" & "'" & tn.Range("B1") _
    & ".xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' kodVer=" & "'" & tn.Range("B1") & "'>" & vbLf)
    objStream.WriteText ("  <genel>" & vbLf)
    objStream.WriteText ("      <idari>" & vbLf)
    objStream.WriteText ("          <vdKodu>" & tn.Range("B3") & "</vdKodu>" & vbLf)
    objStream.WriteText ("          <donem>" & vbLf)
    'Dim intTotalRows As Integer: intTotalRows = 6 ' Worksheets("DATA").Cells(Rows.Count, "B").End(x1Up).Row
    'For intRow = 1 To intTotalRows
    objStream.WriteText ("              <tip>aylik</tip>" & vbLf)
    objStream.WriteText ("              <yil>" & tn.Range("B4") & "</yil>" & vbLf)
    objStream.WriteText ("              <ay>" & tn.Range("B5") & "</ay>" & vbLf)
    objStream.WriteText ("           </donem>" & vbLf)
    objStream.WriteText ("       </idari>" & vbLf)
    objStream.WriteText ("     <mukellef>" & vbLf)
    objStream.WriteText ("         <vergiNo>" & tn.Range("B6") & "</vergiNo>" & vbLf)
    objStream.WriteText ("         <soyadi>" & tn.Range("B7") & "</soyadi>" & vbLf)
    objStream.WriteText ("         <ticSicilNo>" & tn.Range("B8") & "</ticSicilNo>" & vbLf)
    objStream.WriteText ("         <eposta>" & tn.Range("B9") & "</eposta>" & vbLf)
    objStream.WriteText ("         <alanKodu>" & Left(tn.Range("B10"), 3) & "</alanKodu>" & vbLf)
    objStream.WriteText ("         <telNo>" & Right(tn.Range("B10"), 7) & "</telNo>" & vbLf)
    objStream.WriteText ("     </mukellef>" & vbLf)
    objStream.WriteText ("     <hsv sifat='kendisi'>" & vbLf)
    objStream.WriteText ("         <vergiNo>" & tn.Range("B6") & "</vergiNo>" & vbLf)
    objStream.WriteText ("         <soyadi>" & tn.Range("B7") & "</soyadi>" & vbLf)
    objStream.WriteText ("         <adi>""</adi>" & vbLf)
    objStream.WriteText ("         <ticSicilNo>" & tn.Range("B6") & "</ticSicilNo>" & vbLf)
    objStream.WriteText ("         <eposta>" & tn.Range("B9") & "</eposta>" & vbLf)
    objStream.WriteText ("         <alanKodu>312</alanKodu>" & vbLf)
    objStream.WriteText ("         <telNo>3975252</telNo>" & vbLf)
    objStream.WriteText ("     </hsv>" & vbLf)
    objStream.WriteText ("     <duzenleyen>" & vbLf)
    objStream.WriteText ("          <vergiNo>" & tn.Range("B6") & "</vergiNo>" & vbLf)
    objStream.WriteText ("          <soyadi>" & tn.Range("B6") & "</soyadi>" & vbLf)
    objStream.WriteText ("          <adi>""</adi>" & vbLf)
    objStream.WriteText ("          <ticSicilNo>" & tn.Range("B6") & "</ticSicilNo>" & vbLf)
    objStream.WriteText ("          <eposta>" & tn.Range("B9") & "</eposta>" & vbLf)
    objStream.WriteText ("          <alanKodu>" & Left(tn.Range("B10"), 3) & "</alanKodu>" & vbLf)
    objStream.WriteText ("          <telNo>" & Right(tn.Range("B10"), 7) & "</telNo>" & vbLf)
    objStream.WriteText ("      </duzenleyen>" & vbLf)
    objStream.WriteText ("  </genel>" & vbLf)
    objStream.WriteText ("  <ozel>" & vbLf)
    objStream.WriteText ("      <tevkifatUygulanmayanlar>" & vbLf)
    objStream.WriteText ("          <tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <matrah>572847.82</matrah>" & vbLf)
    objStream.WriteText ("              <oran>1</oran>" & vbLf)
    objStream.WriteText ("              <vergi>5728.48</vergi>" & vbLf)
    objStream.WriteText ("              </tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <matrah>21165744.60</matrah>" & vbLf)
    objStream.WriteText ("              <oran>8</oran>" & vbLf)
    objStream.WriteText ("              <vergi>1693259.57</vergi>" & vbLf)
    objStream.WriteText ("          </tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("          <tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("              <matrah>11215075.28</matrah>" & vbLf)
    objStream.WriteText ("              <oran>18</oran>" & vbLf)
    objStream.WriteText ("              <vergi>2018713.55</vergi>" & vbLf)
    objStream.WriteText ("          </tevkifatUygulanmayan>" & vbLf)
    objStream.WriteText ("      </tevkifatUygulanmayanlar>" & vbLf)
    objStream.WriteText ("      <vergiToplami>3717701.60</vergiToplami>" & vbLf)
    objStream.WriteText ("      <digerIslemler>" & vbLf)
    objStream.WriteText ("          <digerIslem>" & vbLf)
    objStream.WriteText ("              <islemTuru>504</islemTuru>" & vbLf)
    objStream.WriteText ("              <matrah>569900.82</matrah>" & vbLf)
    objStream.WriteText ("              <vergi>58130.40</vergi>" & vbLf)
    objStream.WriteText ("          </digerIslem>" & vbLf)
    objStream.WriteText ("      </digerIslemler>" & vbLf)
    objStream.WriteText ("      <digerVergiToplami>58130.40</digerVergiToplami>" & vbLf)
    objStream.WriteText ("      <toplamMatrah>33523568.52</toplamMatrah>" & vbLf)
    objStream.WriteText ("      <hesaplananKDV>3775832.00</hesaplananKDV>" & vbLf)
    objStream.WriteText ("      <ilaveEdilecekKDV>0.17</ilaveEdilecekKDV>" & vbLf)
    objStream.WriteText ("      <toplamKDV>3775832.17</toplamKDV>" & vbLf)
    objStream.WriteText ("      <indirimler>" & vbLf)
    objStream.WriteText ("          <indirim>" & vbLf)
    objStream.WriteText ("              <indirimTuru>101</indirimTuru>" & vbLf)
    objStream.WriteText ("              <vergi>762406.75</vergi>" & vbLf)
    objStream.WriteText ("          </indirim>" & vbLf)
    objStream.WriteText ("          <indirim>" & vbLf)
    objStream.WriteText ("              <indirimTuru>102</indirimTuru>" & vbLf)
    objStream.WriteText ("              <vergi>3808733.63</vergi>" & vbLf)
    objStream.WriteText ("          </indirim>" & vbLf)
    objStream.WriteText ("          <indirim>" & vbLf)
    objStream.WriteText ("              <indirimTuru>103</indirimTuru>" & vbLf)
    objStream.WriteText ("              <vergi>14555.62</vergi>" & vbLf)
    objStream.WriteText ("          </indirim>" & vbLf)
    objStream.WriteText ("      </indirimler>" & vbLf)
    objStream.WriteText ("      <indirimlerToplami>4585696.00</indirimlerToplami>" & vbLf)
    objStream.WriteText ("      <indirilecekKDVODler>" & vbLf)
    objStream.WriteText ("          <indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("              <oran>1</oran>" & vbLf)
    objStream.WriteText ("              <bedel>4087514.00</bedel>" & vbLf)
    objStream.WriteText ("              <KDVTutari>40875.14</KDVTutari>" & vbLf)
    objStream.WriteText ("          </indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("          <indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("              <oran>8</oran>" & vbLf)
    objStream.WriteText ("              <bedel>14259046.50</bedel>" & vbLf)
    objStream.WriteText ("              <KDVTutari>1140723.72</KDVTutari>" & vbLf)
    objStream.WriteText ("          </indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("          <indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("              <oran>18</oran>" & vbLf)
    objStream.WriteText ("              <bedel>14595193.17</bedel>" & vbLf)
    objStream.WriteText ("              <KDVTutari>2627134.77</KDVTutari>" & vbLf)
    objStream.WriteText ("          </indirilecekKDVOD>" & vbLf)
    objStream.WriteText ("      </indirilecekKDVODler>" & vbLf)
    objStream.WriteText ("      <indirilecekKDVODToplamKDV>3808733.63</indirilecekKDVODToplamKDV>" & vbLf)
    objStream.WriteText ("      <ihracGerceklesmeyenTecilEdilemeyenKDV>0.00</ihracGerceklesmeyenTecilEdilemeyenKDV>" & vbLf)
    objStream.WriteText ("      <kdvsizTeminEdilenlerIcinOdenmeyenKDV>0</kdvsizTeminEdilenlerIcinOdenmeyenKDV>" & vbLf)
    objStream.WriteText ("      <ihracatDonemindeIadeEdilecekKDV>0.00</ihracatDonemindeIadeEdilecekKDV>" & vbLf)
    objStream.WriteText ("      <yuklenilenKDV>0</yuklenilenKDV>" & vbLf)
    objStream.WriteText ("      <ihracVergiFark>0</ihracVergiFark>" & vbLf)
    objStream.WriteText ("      <tecilEdilecekKDV>0.00</tecilEdilecekKDV>" & vbLf)
    objStream.WriteText ("      <odenmesiGerekenKDV>0.00</odenmesiGerekenKDV>" & vbLf)
    objStream.WriteText ("      <iadeEdilmesiGerekenKDV>0.00</iadeEdilmesiGerekenKDV>" & vbLf)
    objStream.WriteText ("      <sonrakiDonemeDevredenKDV>809863.83</sonrakiDonemeDevredenKDV>" & vbLf)
    objStream.WriteText ("      <matrahaDahilOlmayanBedel>2317145.50</matrahaDahilOlmayanBedel>" & vbLf)
    objStream.WriteText ("      <teslimVeHizmetleriTeskilEdenBedelAylik>35840714.02</teslimVeHizmetleriTeskilEdenBedelAylik>" & vbLf)
    objStream.WriteText ("      <teslimVeHizmetleriTeskilEdenBedelKumulatif>348314250.82</teslimVeHizmetleriTeskilEdenBedelKumulatif>" & vbLf)
    objStream.WriteText ("      <krediKarti>27705408.98</krediKarti>" & vbLf)
    objStream.WriteText ("  </ozel>" & vbLf)
    objStream.WriteText ("</beyanname>" & vbLf)
     
    objStream.SaveToFile FullPath, 2
    objStream.Close

End Sub
Merhaba,

Excel dosyasını varsa onu'da paylaşabilir misiniz.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Teşekkürler Erdem Bey...... Konuya katkıda bulunan @veyselemre ve @Zeki Gürsoy 'a da teşekkürler.

.
Dosyada bir kaç değişiklik yaptım. Dosya adı konusunda daha kullanışlı olacağını düşünüyorum.
Kod:
Set Tn = Sheets("Tanımlar")
    Set babs = Sheets("BABS_ŞABLON")
    Set kls = CreateObject("Scripting.FileSystemObject")
 
    'XML_FileName = ThisWorkbook.Path & Application.PathSeparator & ".xml"
    ayilk = Replace((VBA.DateSerial(Tn.Range("D5"), Tn.Range("E5"), 1)), ".", "")
    ayson = Replace((VBA.DateSerial(Tn.Range("D5"), Tn.Range("E5") + 1, 0)), ".", "")
  
    
    yol = "C:\ebyn\beyannameler\" & Tn.Range("C9")
    XML_FileName = yol & "\" _
    & Tn.Range("B5") & "_" & Tn.Range("C9") & "_" & Tn.Range("I3") & "_" & ayilk & "_" & ayson & ".xml"
    varmı = kls.FolderExists(yol)
  If varmı = False Then kls.CreateFolder yol
 

Ekli dosyalar

Son düzenleme:
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Konunun en başından bu yana eklemeyi gözden kaçırdığım bir durum var.Kodları uyarlarken düzeltmeleri yaptım.
Haluk beyin hazırlamış olduğu kodlara ek olarak "BS" için gerekli düzeltmeleri yaptım.
 

Ekli dosyalar

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Dosyanın tekrar revize edilmiş son durumu ektedir. Bu revizyonda, hazırlanacak BA veya BS Formu'na yönelik XML dosyası için, bu dosyadan başka hiç bir dosyaya ihtiyaç bulunmamaktadır. Kodlar, sizin yerinize en güncel dosyaları (EBYN.xsd ve FORMBA_#.xsd veya FORMSA_#.xsd ) Gelir İdaresi Başkanlığı'nın resmi web sitesinden indirecektir.

Ana başlıklarıyla dosyada yapılan işler;

1) Gelir İdaresi Başkanlığı'nın resmi web sitesine bağlanarak, en son yayınlanmış olan "Uygulama Hazırlama Kılavuzu"bilgisaya indirilmekte ( şu an itibariyle 01.08.2018 tarihli Versiyon: V76.0),

2) İndirilen sıkıştırılmış (*.zip) dosyası açılmakta,

3) Açılan dosyalar arasından en güncel kod numarasına sahip FORMBA_#.xsd veya FORMSA_#.xsd ile gerekli EBYN.xsd dosyaları seçilerek, Excel dosyasının bulunduğu dizine aktarılmakta,

4) Daha önceki versiyonlarda olduğu gibi;

4.1) İlgili FORMBA/FORMSA ve Schema dosyalarının denetiminde, söz konusu XML dosyası oluşturularak doğrulama yapılmakta,

4.2) Eğer istenirse; hazırlanan XML tablosunun Excel dosyasında "BA" veya "BS" isimli sayfaya aktarılması sağlanmakta,

4.3) Yine, eğer istenirse XML tablosunun "ham" olarak (işlenmemiş) şekilde Excel dosyasında "XML_Tablo" isimli sayfaya aktarılması ve buna bağlı Schema dosyasının oluşturulması sağlanmakta,

4.4) Dosyada oluşturulmuş olan XML Map'in silinmesi

işlemleri yapılmaktadır.

Açıklamalardan da görüldüğü gibi; bu dosyada XML dosyasının hazırlanmasından tutun da, bir web sitesindeki dosyanın bilgisayara indirilmesi, "zip" olarak sıkıştırılmış dosyanın açılması, XML tablosunun okunarak Excel sayfasına aktarılması vb bir çok işlem yapılmaktadır. Bu bağlamda dosya, bir çok güzel VBA kodunu içermekte olup, çok daha başka konularda hazırlanacak dosyalarda kullanılabilecektir.

Dosya ekte verilmektedir...


.
 

Ekli dosyalar

Son düzenleme:
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Haluk bey on numara olmuş.
Aynı dosya "BS" için de uyarlanabilir.
Ben açtım ama "HTTP.send" bu bölümde hata aldım.
1545832919511.png
 
Üst