Artikelen, tips en trucs

Hier vindt u nuttige (technische) artikelen en andere handige informatie om specifieke zaken in met name Excel te realiseren.

Whitepaper: Opzetten van contextafhankelijke opdrachtbalken in Excel-addins

Het toevoegen van werkbalken met opdrachtknoppen in MS Office is zo gedaan. Professionele Excel-toepassingen vereisen evenwel vaak dat opdrachtbalken zich automatisch aanpassen aan specifieke situaties. Het gestructureerd opzetten van dergelijke contextafhankelijke menubalken en werkbalken in VBA is echter een complex vraagstuk. Onderstaand artikel zet daarom uiteen hoe flexibele, robuuste en gebruiksvriendelijke opdrachtbalken kunnen worden geïmplementeerd.
Download het artikel
Download de invoegtoepassing

Tip: Excel-keuzelijst met broncellen op ander werkblad

Via gegevensvalidatie, optie Lijst kun je een celbereik definiëren met waarden waaruit een gebruiker mag kiezen. Het probleem hierbij is evenwel dat Excel niet toestaat dat een bereik buiten het huidige werkblad wordt geselecteerd. In de praktijk wil je echter niet altijd dat de brongegevens op hetzelfde werkblad staan.
Los dit op door een gedefinieerde naam te gebruiken. Door naar deze naam te verwijzen i.p.v. naar een celbereik wordt het mogelijk waarden in het keuzelijstje te tonen die in een ander werkblad staan.
Voorbeeld: =LijstLeveranciers in plaats van =$B$2:$B$6
Download het voorbeeld

Truc: Controle op aantal ingegeven decimalen in Excel

Het kan wenselijk zijn om voor een celwaarde een maximaal aantal decimalen toe te staan. Het is mogelijk dit af te vangen zonder VBA te gebruiken:

  • Ga naar gegevensvalidatie, optie Aangepast
  • Type in de tekstbox Formule: =AFRONDEN([Waarde];[Aantal decimalen])=[Waarde]

Hierbij is
[Waarde]: Het celadres waar de waarde wordt ingegeven
[Aantal decimalen]: Het celadres waar het maximaal aantal decimalen wordt gedefinieerd.
Download het voorbeeld

Whitepaper: Implementatie van dynamische kolombepaling

Vanuit Excel-VBA dienen specifieke kolommen te worden benaderd. De gebruiker moet echter wel kolommen kunnen toevoegen/verwijderen. Hoe zorg je dat je applicatie blijft werken?
Download het artikel
Download het voorbeeld

Truc: Versnel gegevensdump in Excel door gebruik van een array

Externe gegevens worden vaak in Excel geïmporteerd voor verdere verwerking. Een veel gebruikte techniek om via VBA een tabel te tonen in een werkblad is als volgt:

Dim lRow As Long
Dim iField As iField

'Loop door de tabel
Do While Not rs.EOF
    lRow = lRow + 1

    For iField = 1 To rs.Fields.Count
        Sheet1.Cells(lRow, iField) = rs.Fields(iField - 1).Value

    Next
    rs.MoveNext
Loop

Per veld wordt een cel gevuld met de veldwaarde van in dit geval een recordset.
Het nadeel hiervan is dat deze methode veel tijd kost wanneer er sprake is van veel gegevens. Beter is het daarom de te importeren tabel eerst te vertalen naar een array met identieke dimensies. Daarna kan een cellenrange met dezelfde afmetingen worden gevuld:

Dim arrData(2, 2) As Variant

arrData(0, 0) = "start"
arrData(2, 2) = "eind"
Sheet1.Range(Sheet1.Cells(1, 1), Sheet1.Cells(3, 3)) =
arrData

De data-push naar Excel wordt dan met een factor 100 versneld.
In het voorbeeld hieronder wordt op deze wijze een rekenblad gevuld met Access-gegevens.
Download het voorbeeld

Aan de gedownloade bestanden kunnen geen rechten worden ontleend. Tevens is de auteur niet aansprakelijk voor eventuele schade, van welke aard dan ook.
Delegate logo
Microsoft  Registered partner logo
Microsoft Registered partner logo