Sayfa adı oluştur masa üstüne kaydet...

Katılım
4 Temmuz 2012
Mesajlar
35
Excel Vers. ve Dili
TÜRKÇE
Merhabalar,

Aşağıdaki kodu internetten buldum (kodu Feyzullah hocam yazmıştır). Dosya ismi oluşturup masa üstüne kaydedebiliyorum, fakat sadece değerler geliyor. Dosyada renklendirme varsa olmadı bir türlü koşullu alanın verse renklendirme değerleri ile gelsin istiyorum.

yardımcı olabilirseniz sevinirim.

Saygılarımla.


Sub Kaydet()
'www.************* XXxxXXxxXX
Set con = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
sayfa = "Saat Bazlı Uyum" ' sayfa adını buraya yaz.
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "select distinct (isimler) from [" & sayfa & "$a1:d65536]"
rs.Open sorgu, con, 1, 1
If rs.RecordCount > 0 Then
Do While Not rs.EOF
adi = rs(0).Value
'isimlere göre sayfa oluştur
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = adi
Set bag = CreateObject("Adodb.Connection")
bag.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
Set kayit = CreateObject("Adodb.Recordset")
s = "select * from [" & sayfa & "$a1:d65536] where (isimler) = '" & adi & "'"
kayit.Open s, bag, 1, 1
On Error Resume Next
For i = 0 To kayit.Fields.Count 'SUTUN BAŞLIKLARI İÇİN
Cells(1, i + 1).Value = kayit.Fields(i).Name 'SUTUN BAŞLIKLARI İÇİN
Next i 'SUTUN BAŞLIKLARI İÇİN
On Error GoTo 0
If kayit.RecordCount > 0 Then
Range("a2").CopyFromRecordset kayit
End If
kayit.Close: bag.Close
'OLUŞTURULAN DOSYAYI MASAUSTUNE KAYDET
On Error Resume Next
Set WS = CreateObject("WScript.Shell")
desk = WS.SpecialFolders("Desktop")
Sheets(adi).Copy
Sheets(adi).SaveAs desk & "\" & adi & ".xlsx"
ActiveWorkbook.Close
Application.DisplayAlerts = False
Sheets(adi).Delete
Application.DisplayAlerts = True
On Error GoTo 0
'OLUŞTURULAN DOSYAYI MASAUSTUNE KAYDET
say = say + 1
rs.movenext
Loop
End If
MsgBox "İşlem tamam " & say & " adet dosya masaüstüne kaydedildi", vbInformation + vbMsgBoxRtlReading, "Dosya Kaydetme"
rs.Close: con.Close
Set rs = Nothing: Set con = Nothing
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
ADO uygulamaları saf veri ile ilgilenir. Renk biçim vs. bunları aktarmak için dosyaları açarak işlem yapmanız gerekir.

Buna benzer kod örnekleri forumda çok kez paylaşıldı.

WorkBooks.Open ifadesi ile arama yaparsanız örneklere erişebilirsiniz.

Arama sonuçları ; https://www.excel.web.tr/search/244584/?q=workbooks.open&o=date
 
Üst