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.23215 sekund, zapytan = 11
contact

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