• DİKKAT

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

Excel versiyonunu makro kodu ile tanımak mümkün mü?

Katılım
10 Kasım 2006
Mesajlar
1,288
Excel Vers. ve Dili
Excel-2016
Saygıdeğer Arkadaşlar..! (İyi çalışmalar dileğiyle Selamlar..) Şöyle bir konum var..

Eğer PC de Excel 2003 yüklü ise OptionButton1 i seçerek örneğin Makro1 kodunu çalıştırıyorum.
Yok Eğer PC de 2007 Excel 2007 yüklü ise UptionButton2 yi seçerek Makro2 kodunu çalıştırıyorum.

Şayet bu OptionButton seçeneklerini kullanmadan; Excel.2003 veya Excel.2007 olduğunu otomatik olarak tanıyan bir makro kodu yazılabilir mi.?

Yani Eğer bilgisayarda Excel 2003 yüklü ise Makro1 kodunu çalıştırsın, yok eğer Excel 2007 yüklü ise Makro2 kodunu çalıştırsın. Bu vesile ile seçenek kullanmayarak istem dışı otomatik hale getirmiş oluruz..
 
Kod:
If Application.Version = 12 Then
'kodlar
ElseIf Application.Version = 11 Then
'kodlar...
 
14 = 2010
12 = 2007
11 = 2003
10 = 2002
9 = 2000
8 = 1997
7 = 1995
 
Sn.mancubus herhalde amacıma ulaşacağım. şöyle uyarlayabilir miyiz.
Versiyon 11 ve 11 den küçük ise
kodlar..
Versiyon 12 ve 12 den büyük ise
kodlar..
 
Sn.mancubus herhalde amacıma ulaşacağım. şöyle uyarlayabilir miyiz.
Versiyon 11 ve 11 den küçük ise
kodlar..
Versiyon 12 ve 12 den büyük ise
kodlar..

Merhaba
Kod:
If Application.Version >= 12 Then
'kodlar
ElseIf Application.Version <= 11 Then
'kodlar...

Bu şekilde deneyin
 
13 nerede!!!!???? :)
microsoft 13 uğursuzluk getirecek diye 13 'ü atlamışlar.
Aslında 2010 , 13 olacakmış.:)

evet. gerekçesi bu.

batıl inanç ama var.

Hz. İsa'ya ihanet eden Judas'ın 13. koltukta oturduğu, 13. havari olduğu iddiası ile bu hale gelmiş...

ancak hiç bir kaynakta, Son Yemek'te koltuk numarası olduğuna ilişkin bir kayıt yok.
 
Arkadaşlar bir de şöyle bir durum var.. Bilgisayarda hem 2003.Excel, hem de bir üst versiyon (Excel.2010) kurulu.. Böyle olunca da çalışmıyor. Excel'in 2003 ile açılması halinde (örn.makrı1) kodlarını veya sonraki versiyonla açılması halinde de (örn.makro2) kodlarını çalıştırabilir miyiz..
 
Arkadaşlar bir de şöyle bir durum var.. Bilgisayarda hem 2003.Excel, hem de bir üst versiyon (Excel.2010) kurulu.. Böyle olunca da çalışmıyor. Excel'in 2003 ile açılması halinde (örn.makrı1) kodlarını veya sonraki versiyonla açılması halinde de (örn.makro2) kodlarını çalıştırabilir miyiz..

Merhaba
Hangi Excel'in açılacağını bilmiyoruz benim evdeki pc'de hem 2003 hemde 2007 mevcut başta hepsini 2007 ile açıyordu. son zamanlarda 2003 dosyalarını 2003 yüksek olanları 2007 ile açıyor bunun yerine Sayın : Evren Gizlen hocamın versiyon bulma kodu işinize yarayabilir ona göre kodu revize edersiniz_?
Kod:
Sub vers()
MsgBox Application.Version
End Sub
Kendisine çok teşekkür ederim.
 
Kod:
If Application.Version = 12 Then
'kodlar
ElseIf Application.Version = 11 Then
'kodlar...

Arkadaşlar bir de şöyle bir durum var.. Bilgisayarda hem 2003.Excel, hem de bir üst versiyon (Excel.2010) kurulu.. Böyle olunca da çalışmıyor. Excel'in 2003 ile açılması halinde (örn.makrı1) kodlarını veya sonraki versiyonla açılması halinde de (örn.makro2) kodlarını çalıştırabilir miyiz..

ilk mesajımda ufak bir değişiklikle ihtiyacınıza cevap verebilir durumda idi.
balığı doğrudan adrese teslim edecek olursak...
Kod:
Sub test()

Dim cvp

cvp = cvp & "MS Office versiyonunuz 2003 öncesi." & vbCr
cvp = cvp & "2003 kodlarını içeren makroyu çalıştırmak için" & vbCr
cvp = cvp & "YES, çıkmak için NO seçiniz!"

If Application.Version >= 12 Then
    Call Makro2
ElseIf Application.Version = 11 Then
    Call Makro1
Else
    If MsgBox(cvp, vbYesNo, "O N A Y") = vbYes Then
        Call Makro1
    Else
        MsgBox "İşlemi İptal Ettiniz"
    End If
End If

End Sub


veya
Kod:
Sub test()

If Application.Version >= 12 Then
    Call Makro2
Else
    Call Makro1
End If

End Sub
 
Son düzenleme:
Sn.mancubus.. Buradaı şöyle yapmak istersek olur mu.?
verdiğiniz uygulamayı ThisWorkbook sayfasının

Private Sub Workbook_Open()
kodlar
End Sub

olayı içerisine yazarsak, dosya ilk açılışta bu kontrolü yaptırabilir miyiz.. Burada şunu yaparsak iş tamam olacak..

Açılan Excel.2003 ve önceki versiyon ise OptionButton1 True olsun
Açılan Excel.2003 ve yukarısı ise OptionButton2 True olsun
Bunu yaptığımda hata aldım..
 
anladığım kadarı ile sayfa üzerindeki optionbutton'dan bahsediyoruz.

ThisWorkbook'a

Kod:
Private Sub Workbook_Open()

If Application.Version >= 12 Then
    Sheets("Sheet1").OptionButton2 = True
Else
    Sheets("Sheet1").OptionButton1 = True
End If

End Sub

Sheets("Sheet1") ifadesini düğmelerin bulunduğu sayfanın ismi ile değiştiriniz.
Sheets("Sayfa1")
Sheets("Veri")
vs vs
 
tabii sayfada böyle bir kontrol yoksa hata mesajı alacaksınız.

bunu önlemek için şöyle bir şey yapılabilir.

Kod:
Private Sub Workbook_Open()

On Error Resume Next

If Application.Version >= 12 Then
    Sheets("Sheet1").OptionButton2 = True
Else
    Sheets("Sheet1").OptionButton1 = True
End If

On Error GoTo 0

End Sub
 
Sayın mancubus..! Elinize sağlık ve çok teşekkür ediyorum.. Bu işi oldu olarak kabul ediyorum. Çünkü tüm denemelerimi yaptım. Şöyleki;

Excel.2003 ile açtığımda amacına ulaşıyor, Ancak Excel.2007 de açtığımda amacına ulaşmıyor.
Bu da belli ki bilgisayarımda her iki versiyon (Excel.2003 ve Excel.2007) yüklü..
Demekki varsayılan olarak atanmış bulunan Excel.2003'e ait kodu çalıştırıyor; fakat Excel.2007 önsayılan konumunda olmadığı için yine Excel.2003'ü görüyor.
Bunu, bu şekilde izah edebiliyorum..
Yukarıda sizin vermiş olduğunuz kodu,
....
If Application.Version >= 12 Then
UserForm1.OptionButton1.Value = True
Else
UserForm1.OptionButton2.Value = True
End If
....
şekilde kullandım. Çünkü OptionButton'lar UserForm üzerinde.. Her şey için tekrar teşekkürler..
 
Son düzenleme:
rica ederim.
işiniz görüldü ise ok.

şimdi ben tek versiyona (2010) geçtiğim için test edemiyorum.

ama 2 versiyon da yüklü iken (2003, 2007) , en son hangi versiyondan dosya açtı isem, dosya ismine çift tıkladığımda yeni dosyayı o versiyondan açıyordu.
yani varsayılan diye bir durum yoktu.
 
Evet doğrudur.. Ben de varsayılan derken bunu kastetmiştim.
 
Geri
Üst