• DİKKAT

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

Toplu olarak uyumluluk modu dönüştür

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı geceler.

Sistemden alınan veriler hep Excel 97-2003 Çalışma Kitabı şeklinde çıkıyor.
Bu veriler hayli çok, sayfaları tek tek açıp Dosya/Uyumluluk Modu kısmından dönüştür yapıyorum, ancak veri fazla olduğu için bu da zaman alıyor.

Forum'da ve internette çok araştırdım ancak böyle bir çalışmaya rastlamadım.

Excel 97-2003 Çalışma Kitabı olarak alınan verilerin toplu olarak Excel Çalışma Kitabı şeklinde dönüştürebilir miyiz?
 
Dosyaları hep açtığım zaman ekte gönderdiğim şekilde uyarı veriyor, dönüştürdüğüm de düzeliyor.
 

Ekli dosyalar

  • Örnek.jpg
    Örnek.jpg
    11.4 KB · Görüntüleme: 11
Dosyanız "xls" ancak içeriği xml dir. (Bu dosya tipini öyle hatırlıyorum) Bir notepad ile açarsanız görebilirsiniz.

Açıp değiştirmekten başka çareniz yok gibi görünüyor.
 
Sayın Zeki Bey ilginiz için çok teşekkür ederim. Hayırlı çalışmalar hayırlı geceler.
 
Merhaba.

Bir konuda fikrimi söyleyeyim.

Siz hazır xls dosyası ile ilgili konu sormuşsunuz ancak
xlsx uzantılı dosyayı makro ile xls olarak kaydedilip kapatıldıktan sonra bu xls belgeyi açarken;

-- farklı kaydetme işlemi mavi kod satırıyla yapılmışsa, benzer uyarı alınıyor,
-- kırmızı kod satırıyla farklı kaydedilmişse, bu uyarı alınmıyor

sanırım.
.
Kod:
[FONT="Arial Narrow"][COLOR="Blue"]ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [B]isim[/B] & ".xls"[/COLOR]

[COLOR="Red"]ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [B]isim[/B], FileFormat:=-4143[/COLOR][/FONT]
 
Sayın Ömer Bey ilginiz için çok teşekkür ederim, hayırlı geceler.

Sistemden veri alırken, kaydet dediğimizde farklı kaydet diyalog penceresi geliyor, kayıt türü kısmında Excel Workbook(*.xls) şeklinde tek seçim var, başkada seçim yok. Bu şekilde kaydedildiğinde de 2.mesajımda belirttiğim şekilde uyarı veriyor.
 
Tekrar merhaba.

Yazdığım cevabın sizin sorunuzla doğrudan ilgisi yoktu zaten.

Sadece; xlsx uzantılı dosya makro vasıtasıyla xls olarak farklı kaydedilip kapatıldıktan sonra
bu xls uzantılı belge tekrar açılırken benzer uyarının alındığını fark etmiştim.

Onu belirtmek istedim.
.
 
Sayın Ömer Bey fikirleriniz güzel, bunu çözebileceğimiz bir fikriniz var mı?
 
Şunu söyleyeyim.

Elbette "olmaz" çok iddialı bir söz ancak Sayın GÜRSOY;
"Açıp değiştirmekten başka çareniz yok gibi görünüyor" demişse vardır bir bildiği diyorum.
.
 
Sayın Ömer Bey çok teşekkür ediyorum. Hayırlı çalışmalar hayırlı geceler diliyorum.
 
Sayın Ömer Bey makro kaydet ile masa üzerinde bulunan bu dosyanın birisin açıp dönüştür dediğimde kodlar oluşuyor, bu kodları tüm sayfalar için yapabilir miyiz?
 
Sayın Ömer Bey makro kaydet ile aşağıdaki kod oluşuyor.

Kod:
Sub Makro1()
    ChDir "C:\Users\xxxx\Desktop"
    Workbooks.Open Filename:="C:\Users\xxxx\Desktop\2222.xls"
    ActiveWorkbook.SaveAs Filename:="C:\Users\xxxx\Desktop\2222.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
End Sub
 
Sayın Ömer Bey, kodlar sayfaları açıp dönüştürüp tekrar kapatabilir.
 
Son düzenleme:
Sayın Ömer Bey, makrodan fazla anlamıyorum, döngü ile yapılabilir diye düşünüyorum.

Olabilir mi?
 
Verilerinizin yedeğini alıp aşağıdaki kodu deneyiniz.

Kod:
Sub Dosya_Uzantisini_Degistir()
    Dim Yol As String, Dosya As String, Kitap As Workbook, FSO As Object, Zaman As Double
    
    Zaman = Timer
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Yol = "C:\Users\Korhan\Desktop\Dosyalar\"
    Dosya = Dir(Yol & "*.xl*", vbDirectory)
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    While Dosya <> ""
        Set Kitap = Workbooks.Open(Yol & Dosya)
        Yeni_Kitap = Replace(Kitap.Name, "." & FSO.GetExtensionName(Yol & Dosya), "")
        Kitap.SaveAs Filename:=Yol & Yeni_Kitap & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        Kitap.Close
        Dosya = Dir
    Wend
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Şunu söyleyeyim.

Elbette "olmaz" çok iddialı bir söz ancak Sayın GÜRSOY;
"Açıp değiştirmekten başka çareniz yok gibi görünüyor" demişse vardır bir bildiği diyorum.
.

Merhaba Ömer bey;

Klasik olarak workbooks.open, saveas, close metotları kullanılabilir elbette. Bu durumda ekran başında bekleyip tek tek mesajların klik lenmesi gerekir. Bu da çözüm sayılabilir.

Ben her zaman en iyiyi isterim. Tam otomatik olması için findwindow, findwindowex, sendmessage api fonksiyonları ile yapılabilir. Kaç adet dosya olduğunu bilmiyoruz. Ancak 15-20 dosya için ileri düzey kodlamaya, hatta makroya bile gerek yok bence.
 
cSayın İdris Bey ve Sayın Zeki Bey ilginiz için çok teşekkür ederim. Gece çalıştığım için bilgisayar başına yeni geçtiğim için ancak cevap yazabildim.

Maalesef dosyalar 1000'in üzerinde olduğu için böyle bir şey istemiştim.

Sayın Korhan Bey sizin yazmış olduğunuz kodlar gayet güzel çalışıyor, ellerinize sağlık.

Herkes kendi oturumunda çalışma yapacağı için hangi oturum olursa olsun, Yol = "C:\Users\Korhan\Desktop\Dosyalar\" bu kod masaüstündeki DOSYALAR klasörünü göster şeklinde ayarlayabilir misiniz?
 
Sayın Korhan Bey kodların arasındaki

Yol = "C:\Users\Korhan\Desktop\Dosyalar\" bu kısmı
Yol = ThisWorkbook.Path & "\Dosyalar\" bu şekilde değiştirdim. Tam istediğim gibi çalışıyor.

Ellerinize sağlık çok teşekkür ediyorum, Allah razı olsun hayırlı geceler hayırlı çalışmalar.
 
Sayın Korhan Bey tekrar rahatsız ediyorum, yazmış olduğunuz kod excel sayfalarımı istediğim şekle getirdi.

Bu kodları word sayfalarına nasıl ayarlarım. xl gibi gördüğüm yerleri doc'a çevirdim hata verdi.
 
Geri
Üst