Tutorial Compatibiliteit tussen Excel versies

  1. inleiding
  2. omgaan met comptabiliteitsproblemen
  3. 32-bits versus 64-bits versie
  4. overzicht verschillen tussen Excel-versies

1. INLEIDING

In deze tutorial worden een aantal adviezen gegeven op het gebied van het voorkomen van compatibiliteitsproblemen. Ook wordt een overzicht gegeven van een aantal belangrijke verschillen tussen de diverse Excel-versies. Het gaat hierbij niet om verschillen in gebruiksgemak of bediening, maar met name om verschillen die kunnen leiden tot comptabiliteitsproblemen.

 

2. OMGAAN MET COMPATIBILITEITSPROBLEMEN

Van Excel zijn ondertussen al heel veel verschillende versies uitgebracht. Bij het uitbrengen van een nieuwe versie wordt geprobeerd dat deze zoveel mogelijk ‘backward compatible’ is, hetgeen inhoudt dat het mogelijk is om oudere versies in te lezen en te bewerken in de nieuwere versie. Dit gaat over het algemeen vrij goed, alleen met macro’s/vba kan dit soms problemen opleveren. Als applicaties worden ontwikkeld die ook geschikt moeten zijn voor een oudere versies, dan volgen hier een paar aandachtspunten:

  • Nieuwe functionaliteit zal uiteraard niet werken in oudere versies. Dat geldt ook voor VBA-code die gebaseerd is op deze nieuwe functionaliteit. In de volgende paragraaf wordt een overzicht gegeven van nieuwe functionaliteit per versie.
  • Als in Excel 2007 of hoger het bestand door middel van Opslaan Als wordt opgeslagen in een Excel 97-2003 indeling dan volgt een automatische check op comptabiliteitsproblemen. Macro’s/VBA worden hierbij niet gecontroleerd. Deze comptabiliteitscheck kan ook opgestart worden via Bestand→Info→Controleren op problemen→Comptabiliteit controleren.
  • Met Application.Version kan met VBA de gebruikte Excel-versie worden uitgelezen. Indien gewenst kan hiermee specifieke VBA-code per versie gemaakt worden.
  • Maak in VBA gebruik van late binding. Hiermee worden gebruikte bibliotheken onafhankelijk van het versienummer van deze bibliotheek en kan daarmee voorkomen worden dat deze in oudere versies niet geladen kunnen worden.
  • Probeer VBA-code zoveel mogelijk versie-onafhankelijk te maken. Gebruik bijvoorbeeld Rows.Count in plaats van de laatste rij van een worksheet ‘hard’ te coderen (65536 voor Excel 2003 en 1048576 voor Excel 2007 en hoger).

 

3. 32-BITS VERSUS 64-BITS VERSIE

Vanaf Excel-versie 2010 is er een 32-bits en een 64-bits versie van Excel beschikbaar. Standaard wordt de 32-bits versie geïnstalleerd. De 64-bits versie biedt verder geen extra functionaliteit ten opzichte van de 32-bits versie, maar de 64-bits versie is in staat om grotere geheugenbereiken te adresseren en kan sneller werken. In verreweg de meeste gevallen voldoet de 32-bits versie prima. Het grootste nadeel van het gebruik van de 64-bits versie is dat er comptabiliteitsproblemen kunnen ontstaan met eerdere versies. Dit speelt alleen als er gebruik wordt gemaakt van VBA/macro’s. Bijvoorbeeld niet alle (ActiveX-)controls van de 32-bits versie worden ondersteund in de 64-bits versie (bijvoorbeeld de TreeView, ListView, ImageList, Slider enz.). Daarnaast zullen er aanpassingen in de VBA-code moeten worden gemaakt in het geval er gebruik wordt gemaakt van zogenaamde API-calls.

 

4. OVERZICHT VERSCHILLEN TUSSEN EXCEL-VERSIES

In onderstaand overzicht staan een aantal belangrijke verschillen tussen de diverse Excel-versie vermeld. Als basis voor het vergelijk is Excel versie 2003 genomen. Aangegeven wordt wat er in de 2007, 2010 en 2013 versie veranderd is ten opzichte van de 2003-versie. Het gaat hierbij niet om de 64-bits versies en ook de versies voor de Mac worden buiten beschouwing gelaten. Ook de verschillen tussen de verschillende servicepacks van de versies komen niet aan bod. Het overzicht is (nog lang) niet compleet en zal de komende tijd nog verder worden uitgebreid. Het is overigens niet de intentie om een compleet overzicht te presenteren. Dat is vrijwel ondoenlijk. De lijst zou dan zeer lang en erg gedetailleerd worden. Aanvullingen op dit overzicht zijn echter van harte welkom.

Onderwerp 2007 2010 2013
ALGEMEEN
1.048.576 rijen i.p.v. 65.536 ja ja ja
16.384 kolommen i.p.v. 256 ja ja ja
menubediening d.m.v. lint ja ja ja
bestandsextensie xlsx en xlsm i.p.v xls ja ja ja
ALS.NB
BASIS
AGGREGAAT BLAD
ALS.FOUT MODUS.ENKELV BLADEN
AANTALLEN.ALS MODUS.MEERV DAGEN
belangrijkste nieuwe functies GEMIDDELDE.ALS NETWERKDAGEN.INTL DECIMAAL
GEMIDDELDEN.ALS RANG.GEMIDDELDE EX.OF
SOMMEN.ALS RANG.GELIJK FORMULETEKST
WERKDAG.INTL ISFORMULE
ISO.WEEKNUMMER
WEBSERVICE
gegevens op meer dan 3 niveaus sorteren ja ja ja
tabel in plaats van lijst ja ja ja
tabel-slicers nee nee ja
sparklines nee ja ja
flashfill nee nee ja
OPMAAK
16 miljoen kleuren i.p.v. 256 ja ja ja
thema’s en stijlen ja ja ja
VOORWAARDELIJKE OPMAAK
meer dan 3 voorwaarden ja ja ja
rechtstreeks kunnen verwijzen naar andere tabbladen nee ja ja
DRAAITABELLEN
slicers nee ja ja
timeline-slicer nee nee ja
unieke waarden tellen (distinct count) nee nee ja
item-labels of veld-labels herhalen nee ja ja
VBA¹)
eigenschap CountLarge ja ja ja
eigenschap DisplayFormat nee ja ja
gebeurtenis Workbook_AfterSave nee ja ja
commando Application.FileSearch nee nee nee

¹) Alle in een versie nieuw ingevoerde functionaliteiten hebben uiteraard ook gevolgen voor VBA, maar dat wordt hier buiten beschouwing gelaten.

 

Interesse in andere tutorials? Ga dan naar ons tutorials-overzicht of neem een kijkje op onze pagina met tips&trucs.

Reacties op onze tutorials en tips&trucs zijn van harte welkom. Dat kan door hieronder een reactie toe te voegen of door rechtstreeks contact met ons op te nemen.

2 reacties op Compatibiliteit tussen Excel versies

  • Dit functioneert in Excel 2010, NIET in Excel 2016 :

    .FormatConditions.Add Type:=xlExpression, Formula1:=”=OR(WEEKDAY(” & Cells(i_StartRow + 3, i_StartCol).Address(True, False) & “)=1;WEEKDAY(” & Cells(i_StartRow + 3, i_StartCol).Address(True, False) & “)=7)”

    Hoe vinden we een alternatief dat functioneert in beide (en of toekomstige) versies ?

    • Welke foutmelding krijg je precies?
      Het zou bijvoorbeeld te maken kunnen hebben met een verschil in taalversie tussen Excel 2016 en Excel 2010. Zie in dat geval Voorwaardelijke opmaak met VBA: enkele hindernissen voor een nadere uitleg en een workaround.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd.