Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[EXCEL] Wymuszenie, aby plik MS Excel był otwarty w programie Excel 2010



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Oprogramowanie biurowe
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lord_weiss



Dołączył: 09 Paź 2018
Posty: 1

PostWysłany: Wto Paź 09, 2018 9:59 am  OP    Temat postu: [EXCEL] Wymuszenie, aby plik MS Excel był otwarty w programie Excel 2010 Odpowiedz z cytatem Pisownia

Witam serdecznie,

Głowię się od dłuższego czasu nad tym, aby przygotować procedurę, która:

Podczas otwierania danego pliku:

1. Zweryfikuje jaką wersję pakietu office (excela) ma zainstalowany użytkownik:
1A. - w przypadku zainstalowania 2016 i 2010 - otworzy plik excela wersją 2010,
1B - w przypadku braku zainstalowanego pakietu 2016 - pojawi się monit o konieczności zainstalowania.

Jak powyższe można zrealizować?

To co mam na ten moment - to fragment kodu, który pokazuje jaki pakiet office jest obecnie domyślny:


Kod:
Set my_xl_app = CreateObject("Excel.Application")
MsgBox "The version of excel that is being used is - " & my_xl_app.Version



Bardzo serdecznie dziękuję za wszelką pomoc !.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Bajt128
Gość





PostWysłany: Sro Paź 10, 2018 2:01 pm      Temat postu: Odpowiedz z cytatem Pisownia

Witam.

Po paru próbach doszedłem do wniosku, że jest to raczej nie możliwe. Eksperymentowałem z poniższym kodem:

Kod:
Private Sub Workbook_Activate()
    'UWAGA! Nie umieszczać kodu w zdarzeniu Workbook_Open
    Dim EXCEL As Object
    Dim Sciezka As String
    
    If Val(Application.Version) = 14 Then
        Exit Sub
    ElseIf Val(Application.Version) = 16 Then
        If MsgBox("Uwaga! Masz uruchomionego Excela 2016, a wymagany jest Excel 2010. " _
        & "Możesz teraz uruchomić skoroszyt dla wersji 2010." & vbCrLf & vbCrLf _
        & "Czy na pewno chcesz uruchomić Excela 2010?", _
        vbExclamation + vbYesNo + vbDefaultButton1) = vbNo Then Exit Sub
        
        Sciezka = ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
    
        Set EXCEL = CreateObject("Excel.Application.14")
        EXCEL.Workbooks.Open Sciezka
        EXCEL.Visible = True
    End If
End Sub



Niestety kod nie chce współpracować, ponieważ dalej uruchamia się niewłaściwa wersja Excela. Trzeba uważać, bo umieszczenie kodu w niewłaściwym zdarzeniu powoduje świrowanie aplikacji lub wyświetlenie komunikatu „Program Microsoft Excel czeka, aż inna aplikacja zakończy akcję OLE”. Nawet, gdyby uruchomiło się jakimś cudem to i tak plik jest tylko do odczytu.
Jedynym rozwiązaniem jest zaznaczenie na stałe opcji Sprawdź zgodność przy zapisywaniu tego skoroszytu w narzędziach Wyszukaj problemy. Tutaj https://support.office.com/pl-pl/article/sprawdzanie-zgodno%C5%9Bci-plik%C3%B3w-ze-starszymi-wersjami-d9856881-5875-4c58-915f-06859b2943a7 masz opis.
Powrót do góry
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Oprogramowanie biurowe Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.14096 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |