Excel.deki verileri XML olarak kaydetmek

Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhabalar;

Kod:
Sub XML_Hazirla()
Dim xmlStr As String
Dim TAB1 As String
 
TAB1 = Chr$(9)
'On Error Resume Next
hata_yok = True
 
If hata_yok Then
 
   Open ActiveSheet.Range("J3").Value For Output As #1
   If Err <> O Then
       MsgBox ("Verilen Dosya Adı Hatalı. (Örnek: d:\Takip_Talebi_1.xml)")
       Exit Sub
   End If
   xmlStr = "<?xml version=""1.0"" encoding=""UTF-8""?>"
……………
…………………………

Koduyla excel sayfasındaki verileri D: Sürücüsünde " Takip Talebi-1" olarak ve XML belgesi olarak kaydediyorum.

Sorunum şu:

Şayet D sürücüsünde önceden aynı adlı XML belgesi varsa, yenisi aynı belge ile değişiyor.

Bunun yerine şayet D Sürücüsünde "Takip Talebi-1" adlı XML belgesi varsa
Open ActiveSheet.Range("J3").Value For Output As #1
kod satırından sonra yeni belgenin " Takip Talebi-2" 2 varsa 3 ...... şeklinde isim alması için nasıl bir ilave gerekir.

İlginiz ve yardımlarınız için şimdiden teşekkürler.
 

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
D:\TestFolder isimli klas&#246;r alt&#305;ndaki Takip_Talebi_1.xml ..... gibi dosyalar &#252;zerinde &#231;al&#305;&#351;mak &#252;zere;

Kod:
Sub Test()
    Dim FSO As Object, MyFolder As Object, MyFile As Object
    Dim MaxN As Long
    Dim Temp
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set MyFolder = FSO.GetFolder("[B][COLOR=red]D:\TestFolder[/COLOR][/B]")
    MaxN = 0
    For Each MyFile In MyFolder.Files
        If LCase(Right(MyFile.Name, 3)) = "xml" Then
            Temp = Replace(MyFile.Name, "Takip_Talebi_", Empty)
            Temp = Val(Replace(Temp, ".xml", Empty))
            If Val(Temp) > MaxN Then MaxN = Val(Temp)
        End If
    Next
        MsgBox "Rastlanan en son dosya :" & "Takip_Talebi_" & MaxN & " .xml" _
              & vbCrLf & vbCrLf & "Yeni dosya adi : Takip_Talebi_" & MaxN + 1 & ".xml"
    Set MyFolder = Nothing
    Set FSO = Nothing
End Sub
 
Son düzenleme:
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Sayın Haluk Üstadım;

Verdiğiniz kodu Modüle yerleştirdim.

D sürücüsünde de Test Folder isimli klasör açtım. Fakat 2 adet XML. dosyası yaratılıyor. 3. ve 4.... yaratılamıyor. Acaba nerede eksikliğim var?

Ekte gönderdiğim örnek dosyama bakabilirseniz çok hayra geçecek.

Selam ve saygılarımla.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
@Haluk Bey'in kodlarına kırmızı satırı ekleyin.
Sub Test()
..
..
Set FSO = Nothing
ActiveSheet.Range("J3").Value = "D:\TestFolder\Takip_Talebi_" & MaxN + 1 & ".xml"
End Sub
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Veyselemre;

Tek kelime ile harikas&#305;n&#305;z. &#199;ok te&#351;ekk&#252;r ediyorum.

Say&#305;n Haluk &#220;stad&#305;ma da en i&#231;ten te&#351;ekk&#252;rler.
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Haluk ve Veyselemre&#8217;nin yard&#305;m&#305;yla;
Kod:
Sub Test() Dim FSO As Object, MyFolder As Object, MyFile As Object Dim MaxN As Long Dim Temp Set FSO = CreateObject("Scripting.FileSystemObject") Set MyFolder = FSO.GetFolder("D:\Hukuk\UYAPDOSYALARI") MaxN = 0 For Each MyFile In MyFolder.Files If LCase(Right(MyFile.Name, 3)) = "xml" Then Temp = Replace(MyFile.Name, "Takip_Talebi_", Empty) Temp = Val(Replace(Temp, ".xml", Empty)) If Val(Temp) > MaxN Then MaxN = Val(Temp) End If Next MsgBox "D S&#252;r&#252;c&#252;s&#252;/Hukuk/UYAP DOSYALARI Klas&#246;r&#252;nde Rastlanan en son uyap dosyas&#305; :" & "Takip_Talebi_" & MaxN & " .xml" _ & vbCrLf & vbCrLf & "Yeni dosya ad&#305; : Takip_Talebi_" & MaxN + 1 & ".xml", vbOKOnly + vbInformation, Application.UserName Set MyFolder = Nothing Set FSO = Nothing ActiveSheet.Range("J3").Value = "D:\Hukuk\UYAPDOSYALARI\Takip_Talebi_" & MaxN + 1 & ".xml"End Sub
Koduyla EXCEL sayfas&#305;ndaki buton yard&#305;m&#305;yla, D s&#252;r&#252;c&#252;s&#252;nde, Hukuk Klas&#246;r&#252; i&#231;indeki UYAP DOSYALARI klas&#246;r&#252; i&#231;ine XML yaz&#305;l&#305;yor.

Benim istirham&#305;m;

D S&#252;r&#252;c&#252;s&#252;/Hukuk/UYAP DOSYALARI klas&#246;r&#252; yerine,

Hem C S&#252;r&#252;c&#252;s&#252;/Hukuk/UYAP DOSYALARI klas&#246;r&#252;ne ve hemde
MASA&#220;ST&#220;NDE O AN OLU&#350;TURULACAK "UYAP DOSYALARI" Klas&#246;r&#252; &#304;&#199;&#304;NE YAZILMASI.

Bunun i&#231;in yukar&#305;daki kodda ne gibi de&#287;i&#351;iklik yap&#305;labilir.

&#350;imdiden te&#351;ekk&#252;rler.

 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Haluk ve Veyselemre &#252;statlar&#305;m:

Yukar&#305;daki kodu, Hem C s&#252;r&#252;c&#252;s&#252;ndeki ad&#305;n&#305; verdi&#287;im klas&#246;re ve HEM DE O AN MASA&#220;ST&#220;NDE OLU&#350;TURULACAK "UYAP DOSYALARIM" adl&#305; klas&#246;re yazd&#305;rmak i&#231;in, ne gibi ilave gerekir?

Te&#351;ekk&#252;rler.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
say&#305;n kucuksengun, dosyan&#305;z&#305;n son halini eklerseniz onun &#252;zerine ekleyelim, istedi&#287;iniz de&#287;i&#351;ikli&#287;i.
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Veyselemre;

Dosyam&#305;n son &#351;ekli ektedir.

D s&#252;r&#252;c&#252;s&#252;nde olu&#351;turdu&#287;um Hukuk/UYAP DOSYALARI i&#231;ine XML haz&#305;rl&#305;yor.

Benim iste&#287;im;
D S&#252;r&#252;c&#252;s&#252;/Hukuk/UYAP DOSYALARI klas&#246;r&#252; yerine,

Hem C S&#252;r&#252;c&#252;s&#252;/Hukuk/UYAP DOSYALARI klas&#246;r&#252;ne ve hemde
MASA&#220;ST&#220;NDE O AN OLU&#350;TURULACAK "UYAP DOSYALARI" Klas&#246;r&#252; &#304;&#199;&#304;NE YAZILMASI.

Selam ve sayg&#305;lar&#305;mla.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Denemeden yazdım, inşallah sorun çıkmaz.
Kod:
Sub XML_Hazirla()
'......
'......
FileCopy [j3], [j4] 'ilave edin
End Sub
Kod:
Sub Test()
Dim FSO As Object, MyFolder As Object, MyFile As Object
Dim MaxN As Long
Dim Temp
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set MyFolder = FSO.GetFolder("D:\Hukuk\UYAPDOSYALARI")
    MaxN = 0
    For Each MyFile In MyFolder.Files
        If LCase(Right(MyFile.Name, 3)) = "xml" Then
            Temp = Replace(MyFile.Name, "Takip_Talebi_", Empty)
            Temp = Val(Replace(Temp, ".xml", Empty))
            If Val(Temp) > MaxN Then MaxN = Val(Temp)
       End If
    Next
    
    Set WshShell = CreateObject("WScript.Shell")
    MyDesktopPath = WshShell.SpecialFolders("Desktop")
    Set WshShell = Nothing
    
    Path = MyDesktopPath & "\UYAPDOSYALARI"
    If FSO.FolderExists(Path) = False Then FSO.CreateFolder (Path)
    
    MsgBox "D Sürücüsü/Hukuk/UYAP DOSYALARI Klasöründe Rastlanan en son uyap dosyası :" & "Takip_Talebi_" & MaxN & " .xml" _
           & vbCrLf & vbCrLf & "Yeni dosya adı : Takip_Talebi_" & MaxN + 1 & ".xml", vbOKOnly + vbInformation, Application.UserName
    
    Set MyFolder = Nothing
    Set FSO = Nothing
    ActiveSheet.Range("J3").Value = "D:\Hukuk\UYAPDOSYALARI\Takip_Talebi_" & MaxN + 1 & ".xml"
    ActiveSheet.Range("J4").Value = Path & "Takip_Talebi_" & MaxN + 1 & ".xml"
End Sub
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Veyselemre;

Her zamanki gibi s&#252;persiniz. (Gerek bilgileriniz ve gerekse payla&#351;&#305;mc&#305;l&#305;&#287;&#305;n&#305;z)

Yaln&#305;z; UYAP DOSYALARI Klas&#246;r&#252; olu&#351;turuyor, fakat XML.yi bu klas&#246;r&#252;n i&#231;ine de&#287;il de yan&#305;na yaz&#305;yor. Herhalde ben deneme yan&#305;lma ile bu hususu de&#287;i&#351;tirebilirim.(Yapamazsam yine sizleri rahats&#305;z ederim.)

&#199;ok te&#351;ekk&#252;rler.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Yalnız; UYAP DOSYALARI Klasörü oluşturuyor, fakat XML.yi bu klasörün içine değil de yanına yazıyor. Herhalde ben deneme yanılma ile bu hususu değiştirebilirim.
Şöyle deneyin.
Kod:
ActiveSheet.Range("J4").Value = Path & "\Takip_Talebi_" & MaxN + 1 & ".xml"
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Veyselemre;

S&#252;persiniz.

&#199;ok Te&#351;ekk&#252;rler.
 
Üst