- Katılım
- 9 Ocak 2011
- Mesajlar
- 88
- Excel Vers. ve Dili
- 2007 türkçe
aşağıdaki kodlarla sayfayı farklı kaydet yaparak masaüstüne kaydediyorum.
sorun şurda; eğer çalışma kitabı makro içerebilen çalışma kitabı
olarak kaydilmişşe masaüstüne atılan sayfayı açarken normal olarak açılıyor.
fakat excel 97-2003 olarak kaydedilmiş bir çalışma kitabından masaüstüne sayfayı farklı kaydet yaptığım zaman şu uyarı çıkıyor.
açmaya çalıştığınız 'dosya uzantısı ......dosya adı......xls' dosyası, dosya uzantısı tarafından belirlenen farklı bir biçimde .dosyayı açmadan önce bozulmadığını ve güvenilir bir kaynaktan geldiğini doğrulayın . diyor .
aç diyorum dosyayı açıyor fakat biraz sonra . ofis sorunla karşılaştı deyip dosyayı kapatıyor . yardımcı olursanız çok sevinirim .
şimdiden teşekkürler.
Private Sub CommandButton87_Click()
Klasor = Worksheets("MMAIL").Range("AH4").Value (dosya adını sayfadan hücreden alıyor)
Dosya_Adi = Worksheets("MMAIL").Range("Z2").Value
Sayfa_Adı = "MMAIL"
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Set Sourcewb = ActiveWorkbook
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Dim wb As Workbook
Set wb = ActiveWorkbook
With wb
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
If Sourcewb.Name = .Name Then
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
'MsgBox "HATA VAR"
FileExtStr = Right(Sourcewb.Name, 5)
FileFormatNum = 52
'Exit Sub
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End If
End With
Dim ds, a
Set ds = CreateObject("Scripting.FileSystemObject")
a = ds.FileExists(Klasor & Dosya_Adi & FileExtStr)
If a = True Then
MsgBox "Bu isimde bir dosya var"
'Exit Sub
Else
Dim sayfa As Worksheet
For Each sayfa In Worksheets
If sayfa.Name = Sayfa_Adı Then
sayfa.Copy
ActiveWorkbook.SaveAs Klasor & Dosya_Adi & FileExtStr, FileFormat:=FileFormatNum
ActiveWorkbook.Close SaveChanges:=False
MsgBox Klasor & Dosya_Adi & FileExtStr & " Dosya kayıt edildi"
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End If
Next
End If
End Sub
sorun şurda; eğer çalışma kitabı makro içerebilen çalışma kitabı
olarak kaydilmişşe masaüstüne atılan sayfayı açarken normal olarak açılıyor.
fakat excel 97-2003 olarak kaydedilmiş bir çalışma kitabından masaüstüne sayfayı farklı kaydet yaptığım zaman şu uyarı çıkıyor.
açmaya çalıştığınız 'dosya uzantısı ......dosya adı......xls' dosyası, dosya uzantısı tarafından belirlenen farklı bir biçimde .dosyayı açmadan önce bozulmadığını ve güvenilir bir kaynaktan geldiğini doğrulayın . diyor .
aç diyorum dosyayı açıyor fakat biraz sonra . ofis sorunla karşılaştı deyip dosyayı kapatıyor . yardımcı olursanız çok sevinirim .
şimdiden teşekkürler.
Private Sub CommandButton87_Click()
Klasor = Worksheets("MMAIL").Range("AH4").Value (dosya adını sayfadan hücreden alıyor)
Dosya_Adi = Worksheets("MMAIL").Range("Z2").Value
Sayfa_Adı = "MMAIL"
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Set Sourcewb = ActiveWorkbook
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Dim wb As Workbook
Set wb = ActiveWorkbook
With wb
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
If Sourcewb.Name = .Name Then
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
'MsgBox "HATA VAR"
FileExtStr = Right(Sourcewb.Name, 5)
FileFormatNum = 52
'Exit Sub
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End If
End With
Dim ds, a
Set ds = CreateObject("Scripting.FileSystemObject")
a = ds.FileExists(Klasor & Dosya_Adi & FileExtStr)
If a = True Then
MsgBox "Bu isimde bir dosya var"
'Exit Sub
Else
Dim sayfa As Worksheet
For Each sayfa In Worksheets
If sayfa.Name = Sayfa_Adı Then
sayfa.Copy
ActiveWorkbook.SaveAs Klasor & Dosya_Adi & FileExtStr, FileFormat:=FileFormatNum
ActiveWorkbook.Close SaveChanges:=False
MsgBox Klasor & Dosya_Adi & FileExtStr & " Dosya kayıt edildi"
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End If
Next
End If
End Sub