Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   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 Gwna -> Oprogramowanie biurowe
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
lord_weiss



Doczy: 09 Pa 2018
Posty: 1

PostWysany: 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?, ktra:

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, ktry 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 !.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Bajt128
Go





PostWysany: Sro Pa 10, 2018 2:01 pm      Temat postu: Odpowiedz z cytatem Pisownia

Witam.

Po paru prbach 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.
Powrt do gry
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Oprogramowanie biurowe Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




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

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