Posts tonen met het label VBA. Alle posts tonen
Posts tonen met het label VBA. Alle posts tonen

woensdag 10 september 2014

VBA object Worksheets

In een vorig punt hebben we de VBA-code gezien om tekst te plaatsen in een cel van het geselecteerd werkblad via het object Cells of Range. In dit punt bespreken we het object Worksheets. We gaan verder met het vorige document "invullen.xlsm".
Met het object Worksheets kunnen we bepalen in welk werkblad de tekst gaat komen. In het punt van gisteren hebben reeds het werkblad "Invullen" aangebracht".

We selecteren het werkblad "Blad1".
  • Klik op onderaan op het werkblad "Blad1".

We brengen in de module "mdlInvullen2" een nieuwe subroutine "Invullen3" aan.
  • Gebruik de sneltoets ALT F11 om de terug naar de visual basic editor te gaan.
  • Plaats de cursor onder de subroutine "Invullen2".
  • Typ "Sub Invullen3".
  • Druk op de toets Enter.

Automatisch wordt de subroutine afgesloten met "End Sub".

  • Plaats de cursor tussen "Sub Invullen3" en "End Sub".
Om iets naar een bepaald werkblad te schrijven kan je het object "Worksheets" gebruiken.
  • Typ worksheets(
In een tip wordt een index gevraagd. Dit kan de naam van het werkblad zijn of een getal dat aangeeft het hoeveelste werkblad dit is.
Je kan ofwel worksheets("Invullen") gebruiken. Maar ook worksheets(2) is mogelijk.
We kiezen voor de naam van het werkblad. We wensen dat de tekst nu verschijnt in de cel A5.

  • Typ "Invullen").Cells(5,1).value = "Hier iets invullen"

We testen de code.
  • Plaats de cursor in de regel van sub Invullen3
  • Klik op de pictogram met groene pijl.

We gaan terug naar Excel. Het werkblad "Blad1" is nog steeds geselecteerd.

  • Klik onderaan op het tabblad "Invullen" om dit werkblad te selecteren.

We merken dat onze tekst in cel A5 is verschenen.

maandag 8 september 2014

VBA - Object Cells

Naargelang de instellingen verschijnt er bij het openen van een document met vba-code bovenaan een waarschuwing. Om de code te kunnen gebruiken is het vereist om op de vermelding "inhoud inschakelen" te klikken.

In een vorig punt hebben we het object Range besproken, om iets weg te schrijven, in de cel van het werkblad. In dit punt bespreken we het object Cells. We gebruiken het vorig document "Invullen.xlsm".
  • Open het bestaand document "Invullen.xlsm" of start met een nieuw document.
  • Klik indien nodig op de knop "Inhoud inschakelen" bij het bestaand document.
  • Gebruik de sneltoets ALT F11 om de visual basic editor te openen.
We zien de vorige code staan dat zich bevindt in de module "mdlInvullen" omdat we van het bestand "Invullen.xlsm" zijn vertrokken. Bij een nieuw document is er nog geen enkele module noch code zichtbaar. De volgende stappen kunnen ook in een nieuw document worden toegepast. We brengen daartoe een nieuwe module aan.
  • Klik op "Invoegen" in de menubalk.
  • Klik op "Module".

In het venster met de eigenschappen verschijnt de standaardnaam "Module1" van deze module. We gaan dit wijzigen.

We wijzigen de standaardnaam "Module1".
  • Klik in het venster "Eigenschappen" naast de vermelding "(Name)".
  • Vervang door typen de standaardnaam "Module1" door "mdlInvullen2".

De volgende stap is enkel uit te voeren voor diegene die de vorige code zien voor het object Range. Wanneer je van een nieuw document start kan je de code onmiddellijk aanbrengen.
  • Dubbelklik in het venster "Project" op het item "mdlInvullen2"
We brengen rechts de code aan.
  • Typ "Sub Invullen2".
  • Druk op de enter-toets.

Automatisch verschijnt "End Sub".

  • Plaats de cursor boven de tekst "End Sub".
  • Typ Cells(
De syntax van dit object verschijnt. Er zijn twee parameters nodig. Een rijindex gevolgd door een kolomindex. Deze parameters zijn cijfers. Dus cel A1 komt overeen met rijindex 1 en kolomindex 1. Dus met Cells(1,1).

We wensen iets weg te schrijven in cel A3.

  • Typ 3,1).
Bij het object Range verschijnen de eigenschappen van het object. Bij Cells niet. We weten uit ervaring dat ook hier de eigenschap "Value" nodig is, om iets in de cel weg te schrijven.
  • Typ value = "tweede methode"
Merk op dat de tekst wordt geplaatst tussen "dubbele aanhalingstekens".

We kunnen deze code testen.
  • Klik bovenaan in de werkbalk op het pictogram met groene pijl.
De tekst "tweede methode" verschijnt in de cel "A3".

De tekst verschijnt in het geselecteerd werkblad. In een volgend punt gaan we bepalen in welk werkblad de tekst tevoorschijn komt.

dinsdag 10 juni 2014

VBA - Range - Iets wegschrijven in een cel

We gaan via visual basic een tekst plaatsen in de cel "A1". Hiervoor maken we gebruik van de visual basic editor.
  • Start Excel

We starten de visual basic editor met een sneltoets.
  • Druk op de toetsen ALT en functietoets F11
De visual basic editor verschijnt in een apart venster.

Normaal zijn er in de editor de palletten "Project" en "Eigenschappen" reeds aanwezig. In ons geval zijn deze uitgeschakeld. Via het menu "Beeld" kan je eventueel deze palletten terug laten verschijnen.

  • Klik op "Beeld" in de menubalk.
  • Klik op "Projectverkenner".
Het palet "Project" verschijnt linksboven in de editor. Dit palet toont al geopende bestanden. In ons geval het nieuw document "Map1" en het bestand "Personal".


We gaan excel en de editor naast elkaar plaatsen.
  • Klik met de rechtermuisknop onderaan de taakbalk van windows.
  • Klik op "Vensters naast elkaar weergeven".

Nu staan excel en de editor naast elkaar. De code voor visual basic wordt geplaatst in een module. Een module is standaard nog niet aanwezig. We maken eerst deze module.

  • Klik op "Invoegen" in de menubalk.
  • Klik op "Module".
In het palet "Project" verschijnt een folder "Module". En in deze folder is een document "Module1" verschenen.
Om de naam van dit document te wijzigen is het palet "Eigenschappen" nodig. In ons geval wordt dit palet nog niet getoond. We maken dit palet zichtbaar.

  • Klik op "Beeld" in de menubalk.
  • Klik op "Venster Eigenschappen".

Via dit palet kunnen we de naam van het document met code wijzigen. Programmeurs laten objecten beginnen met drie letters.

  • Klik in het vakje bij Name in het palet "Eigenschappen".
  • Typ "mdlInvullen".



In deze module kunnen we de code aanbrengen. De code begint met sub. Vervolgens komt de naam. Deze naam mag geen spaties bevatten en is uniek. Na intypen bevestig je dit met de enter-toets. Hierdoor wordt de code aangevuld.


  • Klik in het rechtse deel van de editor.
  • Typ sub gevolgd door een spatie.
  • Typ Invullen.
  • Druk op de enter-toets.

Visual basic applications werkt met objecten van excel. Als je het hoofdobject kent, komt na het typen van een punt "." meestal een keuzelijst tevoorschijn. Je kan dan uit deze lijst een eigenschap of actie kiezen. Een eigenschap wordt voorafgegaan door een pictogram waar een hand een blad vastneemt. Zo'n eigenschap wordt steeds gevolgd door een "="-teken. Een pictogram met groene kleur is een actie. Hiervoor is geen "="-teken vereist.

Om gegevens naar het werkblad van excel te brengen wordt bijvoorbeeld het object Range gebruikt. We gaan in cel A1 van het werkblad de tekst "Iets wegschrijven" laten verschijnen.
  • Typ Range("A1").

Er verschijnt nu een keuzelijst met alle eigenschappen voor het object Range. Om iets weg te schrijven in een cel wordt de eigenschap "Value" gebruikt. Indien je een v typt dan zie je alle eigenschappen en/of acties die met een v beginnen. Je kan dan de eigenschap die je nodig hebt in de code aanduiden en door erop dubbel te klikken verschijnt dit in de code. Je kan eveneens de tabulator-toets gebruiken nadat de eigenschap of actie is geselecteerd.

  • Dubbelklik op de eigenschap "Value".

De eigenschap "Value" heeft het pictogram "blad met hand". Dus hier is een "="-teken vereist. We wensen een tekst in de cel "A1" te laten verschijnen. Tekst wordt omsloten door de tekens dubbele quotes ".
  • Typ = "iets wegschrijven".

Je kan nu deze code testen. Hiervoor kan je bovenaan het pictogram met de groene pijl gebruiken. Plaats eerst de cursor in de eerste regel van de code.
  • Klik in de naam van het programma.
  • Klik op het pictogram met de groene pijl.

In cel A1 van het werkblad wordt de tekst "Iets wegschrijven" aangebracht. Merk op dat de cel "A1" hierdoor niet wordt geselecteerd. De oorspronkelijke cel is nog steeds actief.

We gaan dit document nu bewaren. Er is code in dit document aangebracht. Hierdoor wordt de extensie van het werkmap "xlsm".
  • Klik op het tabblad "Bestand" in het lint.
  • Klik op "Opslaan als".
  • Klik op "Computer".
  • Klik op "Bladeren".
Het dialoogvenster "opslaan als" verschijnt. Momenteel staat er nog Excel werkmap (*.xlsx) bij de keuzelijst "Opslaan als".
  • Klik op het pijltje bij de keuzelijst "Opslaan als".
  • Klik op Excel-werkmap met macro's (*.xlsm)
  • Typ "Invullen" in het tekstvak "Bestandsnaam".
  • Klik op de opdrachtknop "Opslaan".

Het is vervolgens de bedoeling dat op het werkblad een aanklikbaar element wordt aangebracht voor de gebruiker. We gebruiken bijvoorbeeld een tekening uit de autovormen.

  • Klik op het tabblad "Invoegen" van het lint.
  • Klik op het "Autovormen".
  • Klik op "Regelmatige vijfhoek.
  • Breng door slepen deze vorm aan op het werkblad.
  • Breng door slepen deze vorm aan op het werkblad.
Vervolgens koppelen we deze vorm met de code.
  • Klik met de rechtermuisknop op deze vorm.
  • Klik op de opdracht "Macro toewijzen...".

Het dialoogvenster "Macro toewijzen aan object" verschijnt. Hierin worden alle namen van de codes weergegeven.

  • Selecteer "Invullen".
  • Klik op "Ok".
We brengen vervolgens een tekst aan in de vorm.
  • Selecteer de vorm.
  • Typ "Invullen.

Vooraleer we dit testen, verwijderen we de reeds aangebracht tekst in cel A1.

  • Selecteer cel A1.
  • Duw op de Delete-toets.
  • Selecteer cel A4.
  • Klik op de vijfhoek.

De code wordt uitgevoerd en de tekst "Iets wegschrijven" verschijnt in de cel A1. Ook blijft de cel A4 geselecteerd.

  • Bewaar dit.