Voorbeelden VBA Excel



Vergelijkbare documenten
VOORBEELDEN VBA EXCEL

VOORBEELDEN VBA EXCEL

Programmeren in Excel VBA. Karel Nijs 2010/09

Programmeren in Excel VBA. Karel Nijs 2010/09

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Doe het zelf tooling. Met VBA

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Programmeren in Excel VBA. Karel Nijs 2010/09

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

6.2 VBA Syntax. Inleiding Visual Basic

VBA voor Doe het Zelvers deel 5

Blog-Het gebruik van variabelen in Excel VBA

II. ZELFGEDEFINIEERDE FUNCTIES

Automatisch handelingen uitvoeren

VBA voor Doe het Zelvers deel 19

Van macrorecorder door naar VBA

Macro's in OpenOffice.org

Whitepaper Implementatie contextafhankelijke opdrachtbalken in MS Excel

Inhoud. VBA Excel 2010

9.18 Macro s: oefeningen

Handleiding voor Excel to Image

9.19 Macro s: oefeningen

INLEIDING... 1 A FSPRAKEN... 2 INHOUDSOPGAVE...

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

VAN HET PROGRAMMEREN. Inleiding

1 De werkmap beschermen

MACRO S BEVEILIGING TOETS OPNIEUW MAKEN ANTWOORDEN WISSEN GEGEVEN ANTWOORDEN WISSEN INSCHAKELEN UITSCHAKELEN

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Excel (Office 2003) J. Gantois. J. Gantois: Puntboek (Office2003)

Inhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1

Importeer af- en bijschrijvingen. Handleiding van Helpmij.nl

Hoofdstuk 7: Werken met arrays

Hoofdstuk 9: Menu s toevoegen

Afspraken. Dit moet je letterlijk intypen.

Opnemen en Afspelen. Introductie. Voorbereiding. Starten van de script tool. Tips & Tricks Opnemen en Afspelen

Macro s. 4.2 Een macro maken

Bijlage 1. Access VBA code voor het maken van barrièrebestanden.

INHOUD. Ten geleide Excel Basis 15

Afspraken vet voorbeeldenmap oefeningenmap

Hoofdstuk 19: Macro s

Inhoudsopgave. Inhoudsopgave blz. 3. Inleiding 4

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Onze Microsoft gecertificeerde unieke Excel e-learning cursussen zijn incl.:

Datum, Tijd en Timer-object

Sneltoetsen Excel 2010

Badge it. Inhoudsopgave. 1. Installatie... 3

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

VBA voor Doe het Zelvers Deel 7

VBA voor doe-het-zelvers

Access voor Beginners-Hoofdstuk 20

importeren leden uit sportlink club

No part of this book may be reproduced in any form, by print, photoprint, microfilm or any other means without written permission of the publisher.

1) Een sequentieel bestand schrijven

de heer ir. R. Boeklagen Inhoudsopgave

Voorgeslacht rapport generator

Excel Controller. Handleiding voor King journalisering in Excel.xls. King Memoriaal boekingen in Excel

Access cursus - Hoofdstuk 19

OFFICE 2007 EXCEL. Roger Frans. campinia media vzw

Microsoft Excel Trainingsprogramma s

Veel gestelde vragen nieuwe webloginpagina

Cursus MS Excel 2007 (N), Introductie (1) Mei 2009

Een macro met een knop opstarten.

INHOUDSOPGAVE. Inhoudsopgave

VBA voor Doe het Zelvers deel 9

Een invoegtoepassing maken in Excel

Microsoft Excel Trainingsprogramma s

Het gebruik van Visual Basic for Applications in Microsoft Excel Theo Peek. Januari 2003

Je vindt in de startmap ook het bestand Appendix Excel pdf. Het bestand

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:

Excel Controller. Handleiding voor SnelStart journalisering in Excel.xls. SnelStart Memoriaal boekingen in Excel

Handleiding Excel. bij. hoofdstuk 18 Cijfers in Orde Wageningse Methode

INHOUDSOPGAVE: EXCEL 2010 / 2013 ADVANCED

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Inhoudsopgave. Module 2 Geavanceerde formulieren

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers

8.3 Leren programmeren met OpenOffice.org StarBasic

EXCEL Inleiding tot Macro s Mod VII. CEVORA vzw - opleidingscentrum van het ANPCB (PC218)

SNELLE INVOER MET EXCEL

Een Multi-functioneel formulier

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

VBA voor Doe het Zelvers deel 20

Hoofdstuk 26: Modelleren in Excel

Zelftest Inleiding Programmeren

De knoppen op het lint verkennen Elk tabblad op het lint bevat groepen en elke groep bevat een reeks gerelateerde opdrachten.

Excel Controller. Handleiding voor Davilex Business Account journalisering in Excel.xls

Flexibele oplossing om de eid kaart aan te spreken vanuit.net (en Delphi, Visual Basic, C++ etc)

1. Introductie tot SPSS

De knoppen op het lint verkennen Elk tabblad op het lint bevat groepen en elke groep bevat een reeks gerelateerde opdrachten.

Excel 2013 (N/N) : Texte en néerlandais sur la version néerlandaise du logiciel

Technische Fiche om een commando met een passend icoontje aan te maken in de Ribbon Interface.

EXCEL AANPASSEN De belangrijkste punten van hoofdstuk 12

Handleiding Invoeren van een Catia V5R19 document in SmarTeam

1.1 BESTANDSINDELINGEN DIE WORDEN ONDERSTEUND IN EXCEL ONLINE

25 Excel tips. 25 Handige Excel tips die tijd besparen en fouten voorkomen. Ir. Fred Hirdes. Excel-leren.nl.

Transcriptie:

Voorbeelden VBA Excel Inhoud Voorbeelden VBA Excel... 1 Werkblad beveiligen... 3 Werkblad beveiliging opheffen... 3 Werkmap beveiligen... 3 Werkmap beveiliging opheffen... 3 Alle werkbladen van een werkmap beveiligen... 3 Beveiliging alle werkbladen van een werkmap opheffen... 4 Beveiliging werkblad tijdelijk opheffen... 4 Aantal keer herhalen van een macro... 4 Macro die iets x aantal keer uitvoert... 5 Inputbox die inhoud in cel zet. Deze cel bepaalt de naam van het blad (1).... 5 Inputbox die reeks en blad een naam geeft (2).... 6 Macro die op bepaalde tijden een andere macro start... 6 Macro die wordt uitgevoerd voor het opslaan van een werkmap (1)... 6 Macro die wordt uitgevoerd voor het opslaan van een werkmap (2)... 7 Macro beveiligen met wachtwoord... 7 Doel zoeken sneller uitvoeren... 7 Knippen/plakken via cel... 7 Macro om naam en type en locatie vast te leggen... 9 Macro om specifiek Word document te openen... 9 Zoeken in alle werkbladen van werkmap en kleurtje geven aan cel... 10 Zoeken en vervangen in werkbladen... 10 Dialoogbox Zoeken tonen... 11 Macro die zoekt naar celinhoud via een diagaloogbox:... 11 macro die zoekt naar een vaste waarde:... 11 Rijen verbergen... 12 Pauze in macro... 12 Volgend blad activeren... 12 Vorig blad activeren... 12 Werkmap (Excel) sluiten en opslaan... 13 Venster minimaliseren... 13 Blad verbergen... 13

2 Blad zichtbaar maken... 14 Msgbox met als/dan (1)... 14 Msgbox met als/dan (2)... 14 Msgbox met ja/nee vraag... 15 Aantal rijen invoegen op basis van getal in cel... 15 Naar cel in een specifiek werkblad gaan bij openen... 15 Rij verbergen in beveiligd blad... 16

3 Werkblad beveiligen Sub beveiligen() ActiveSheet.protect Werkblad beveiliging opheffen Sub beveiliging_opheffen() ActiveSheet.Unprotect Werkmap beveiligen Sub beveiligen() ActiveWorkbook.protect Werkmap beveiliging opheffen Sub beveiliging_opheffen() ActiveWorkbook.Unprotect Alle werkbladen van een werkmap beveiligen - uitvoer naar scherm verbergen - lus - met of zonder wachtwoord Sub Werkbladenbeveiligen() Application.ScreenUpdating = False Next i Dim i As Integer For i = 1 To Worksheets.Count Sheets(i).Protect of met wachtwoord: Sheets(i).Protect ("ABC")

Beveiliging alle werkbladen van een werkmap opheffen - uitvoer naar scherm verbergen - lus - met of zonder wachtwoord 4 Sub Werkbladenbeveiligingopheffen() Application.ScreenUpdating = False Next i Dim i As Integer For i = 1 To Worksheets.Count Sheets(i).Unprotect of met wachtwoord: Sheets(i).Unprotect ("ABC") Beveiliging werkblad tijdelijk opheffen Sub Edit() ActiveSheet.Unprotect MsgBox "You can edit (e.g. delete rows) for a while." Application.OnTime Now() + TimeValue("00:00:10"), "Edit2" Sub Edit2() ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _, AllowInsertingRows:=True, AllowDeletingRows:=True Aantal keer herhalen van een macro - lus - Aanroepen van een macro in een andere macro Sub Repeat100() Dim i As Long For i = 1 To 100 Call Naam macro Next i

5 Macro die iets x aantal keer uitvoert - lus - als/dan (dit voorbeeld a.h.v. een waarde in een cel met de naam aantal) Sub herhalen() Dim Check Dim Counter Dim Aantal As Integer Aantal = Range("aantal").Value Check = True Counter = 1 Do Do While Counter <= Aantal Macro die x aantal keer uitgevoerd moet worden Counter = Counter + 1 If Counter > Aantal Then Check = False Exit Do if Counter > 10 Then Check = False Exit Do Loop Loop Until Check = False Inputbox die inhoud in cel zet. Deze cel bepaalt de naam van het blad (1). - Inputbox met meerdere regels en eigen naam - Cel via inputbox een naam geven - Naam van het blad aan de hand van inhoud van een cel. Sub naamgeven() Cells(1, 6).Value = InputBox("Geef een naam aan de cel" & Chr(13) & "Bijvoorbeeld: Zomer" & Chr(13) & "Of: Winter", "Naam van de inputbox") If [F1] <> "" Then ActiveSheet.Name = [F1] (i.p.v. Cells(1,6) kun je ook [F1] opgeven)

Inputbox die reeks en blad een naam geeft (2). - exit sub toepassen - blad verbergen - msgbox Sub naam_geven() Dim strname As String 6 strname = InputBox("Geef een naam aan de tabel" & Chr(13) & "Bijvoorbeeld: Zomer" & Chr(13) & "Of: Winter", "Naam tabel") If strname = vbnullstring Then Exit Sub Range("a1:c30000").Select Selection.Name = strname Range("a1").Select ActiveSheet.Name = strname ActiveSheet.Visible = False MsgBox "De gegevens zijn geïmporteerd." Macro die op bepaalde tijden een andere macro start - Macro die uitgevoerd wordt bij het openen van een werkmap Module Worksheet (thisworkbook): Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:55:00"), "opslaan" Application.OnTime Now + TimeValue("01:55:00"), "opslaan" Application.OnTime Now + TimeValue("02:55:00"), "opslaan" Application.OnTime Now + TimeValue("03:55:00"), "opslaan" Macro die wordt uitgevoerd voor het opslaan van een werkmap (1) Module Worksheet (thisworkbook): Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) MsgBox "deze melding komt net voor het opslaan"

Macro die wordt uitgevoerd voor het opslaan van een werkmap (2) Module Worksheet (thisworkbook): Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If ActiveSheet.Range("Q2") <> "" Then MsgBox "Let op, er is een afspraak vandaag!", vbexclamation, "Herinnering" Application.Goto Reference:="A1" 7 Macro beveiligen met wachtwoord - inputbox met als/dan Sub macro1() If Inputbox("Geef uw wachtwoord op") = "wachtwoord" Then Naam macro End if End sub Doel zoeken sneller uitvoeren - geselecteerde cel gebruiken in macro - inputbox aan variabele toewijzen Sub Doelzoeken() Dim CelAdres As String Dim CelAdres2 As String Dim CelAdres3 As String CelAdres2 = Selection.Address Range(CelAdres2).Select CelAdres = InputBox("Geef het bedrag op") CelAdres3 = InputBox("Welke cel moet veranderen?") Range(CelAdres2).GoalSeek Goal:=CelAdres, ChangingCell:=Range(CelAdres3) Knippen/plakken via cel - naamgeven aan celadres - verplaatsen naar cel met naam Sub knippen() Selection.Name = "knip" Selection.Copy Range("AY1").Select Selection.Name = "even"

8 ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select Application.Goto Reference:="knip" ActiveCell.FormulaR1C1 = "" 'nu volgt de tweede cel Range("knip").Offset(0, 2).Select Selection.Copy Range("AZ1").Select Selection.Name = "even2" ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select Application.Goto Reference:="knip" Range("knip").Offset(0, 2).Select ActiveCell.FormulaR1C1 = "" Sub knippen_verkort() Selection.Name = "knip" Selection.Copy Range("A1000").Select Selection.Name = "even" ActiveSheet.Paste Application.Goto Reference:="knip" ActiveCell.Delete Sub plakken() Selection.Name = "plak" Application.Goto Reference:="even" Selection.Copy Application.Goto Reference:="plak" ActiveSheet.Paste Application.CutCopyMode = False Application.Goto Reference:="even" ActiveCell.FormulaR1C1 = "" Range("A1").Select Application.Goto Reference:="plak" 'nu volgt de tweede cel

9 Application.Goto Reference:="even2" Selection.Copy Application.Goto Reference:="plak" Range("plak").Offset(0, 2).Select ActiveSheet.Paste Application.CutCopyMode = False Application.Goto Reference:="even2" ActiveCell.FormulaR1C1 = "" Range("A1").Select Application.Goto Reference:="plak" Macro om naam en type en locatie vast te leggen Sub Naam() Dim strfilename As Variant Dim strpath As String strfilename = Range("c3").Value strfilename = Application.GetSaveAsFilename(InitialFileName:=strPath & strfilename, FileFilter:="Excel Files (*.xlsm), *.xls, Excel 2007 Files (*.xlsm), *.xlsm", FilterIndex:=2, Title:="Choose the folder and change the filename if you like.") If strfilename = False Then MsgBox "Error: you didn't save the file." Else ActiveWorkbook.SaveAs Filename:=strFileName MsgBox "The file is saved as: " & strfilename End sub Macro om specifiek Word document te openen Sub Worddocument_openen() Dim wdapp As Object Dim wddoc As Object Set wdapp = CreateObject("Word.application") Set wddoc = wdapp.documents.open _ (Filename:="C:\users\datadidact\documents\Ardennen.doc") wdapp.visible = True Range("A1").Select

Zoeken in alle werkbladen van werkmap en kleurtje geven aan cel - lus gebruiken 10 Sub zoeken() Dim bladnr As String Dim zoek As String Dim i As Integer Dim eerstegevonden As String Wend End IF Next aantal = ActiveWorkbook.Worksheets.Count zoek = InputBox("Geef de te zoeken tekst op: ") Sheets("blad1").Activate Range("a1").Select For i = 1 To aantal bladnr = "blad" + Format(i) Sheets(bladnr).Activate Range("a1").Select If Not Cells.FindNext(After:=ActiveCell) Is Nothing Then eerstegevonden = Cells.Find(zoek).Address Cells.Find(What:=zoek, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlpart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate ActiveCell.Interior.ColorIndex = 4 While Cells.FindNext(After:=ActiveCell).Address <> eerstegevonden Cells.FindNext(After:=ActiveCell).Activate ActiveCell.Interior.ColorIndex = 4 Zoeken en vervangen in werkbladen - lus toepassen Sub overal_zoeken() Dim i As Integer Dim zoek As String Dim vervang As String zoek = InputBox("Zoeken naar:") vervang = InputBox("Vervangen door:")

11 For i = 1 To Worksheets.Count Sheets(i).Cells.Replace What:=zoek, Replacement:=vervang, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next i Dialoogbox Zoeken tonen Sub box() Worksheets.Select Application.Dialogs(xlDialogFormulaFind).Show Macro die zoekt naar celinhoud via een diagaloogbox: - gebruik maken van een lus Sub zoeken() Dim i As Integer Dim Planonnummer As String Dim rng As Range Nummer = InputBox("Welk nummer zoekt u?") For i = 1 To Worksheets.Count Set rng = Worksheets(i).Cells.Find(Nummer) If Not rng Is Nothing Then Worksheets(i).Activate rng.entirerow.activate Next i macro die zoekt naar een vaste waarde: - gebruik maken van een lus Sub zoeken() Dim i As Integer Dim nummer As String Dim rng As Range nummer = "hallo" For i = 1 To Worksheets.Count

12 Set rng = Worksheets(i).Cells.Find(nummer) If Not rng Is Nothing Then Worksheets(i).Activate rng.entirerow.activate Next i Rijen verbergen Sub rijenverbergen() Cells.Select Selection.EntireRow.Hidden = False Range("B3").Select BeginRow = 11 EndRow = 49 ChkCol = 6 For RowCnt = BeginRow To EndRow If Cells(RowCnt, ChkCol).Value = 0 Then Cells(RowCnt, ChkCol).EntireRow.Hidden = True Next RowCnt Pauze in macro Sub Wait() ' Waits 5 seconds Application.Wait Time + TimeSerial(0, 0, 5) ' Continues here after pause Volgend blad activeren Sub volgend_blad() ActiveSheet.Next.Select Vorig blad activeren Sub Vorig_blad() ActiveSheet.Previous.Select

13 Werkmap (Excel) sluiten en opslaan Sub sluiten_opslaan() ActiveWorkbook.Save ActiveWorkbook.Close Application.Quit Venster minimaliseren Sub minimaal() Application.WindowState = xlminimized ActiveWorkbook.Save Blad verbergen - actie bij fout geven - verplaatsen naar ander deel macro - structuur werkmap beveiligen Sub bladenverbergen() On Error GoTo fout Application.ScreenUpdating = False Sheets("naam van het werkblad").select ActiveWindow.SelectedSheets.Visible = False ActiveWorkbook.Protect Structure:=True, Windows:=False Macro_Exit: Hiermee beëindig je de macro : Exit Sub fout: MsgBox "Fout bij het verbergen van de resultaten" & Chr(13) & "Maak eerst de resultaten zichbaar." Hiermee ga je naar een ander punt in dezelfde macro : Resume Macro_Exit

14 Blad zichtbaar maken - beveiligd met wachtwoord Sub bladenzichtbaar() If InputBox("Geef uw wachtwoord op:") = "cursus" Then Application.ScreenUpdating = False ActiveWorkbook.Unprotect Sheets("Naam werkblad").visible = True Msgbox met als/dan (1) Sub herinnering() If ActiveSheet.Range("Q2") <> "" Then MsgBox "Let op, er is een afspraak vandaag!", vbexclamation, "Herinnering" Msgbox met als/dan (2) Sub Registratie() Application.ScreenUpdating = False If Range("c7") = "" Then MsgBox "Vul jouw personeelsnummer eerst nog in." Else If Range("af1") = "geen invoer" Then MsgBox "Vul eerst nog een cursusdatum in." Else If Range("ae1") = "vol gepland" Then MsgBox "Deze cursusdatum is vol gepland." & Chr(13) & "Kies een andere datum." Else Jouw macro

15 Msgbox met ja/nee vraag - werkmap opslaan onder een specifieke naam Sub Vraag() Application.DisplayAlerts = False nee = MsgBox("De werkmap wordt opgeslagen onder de naam Seizoenen." & Chr(13) & Chr(13) & "OK?", vbyesno, "Question") If nee = vbno Then MsgBox ("Choose for Save as and close the application manualy." & Chr(13) & Chr(13) & "Don't forget to save as Excel-workmap with macros (XLSM)") Else ActiveWorkbook.SaveAs Filename:= _ "Seizoenen.xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Application.Quit Aantal rijen invoegen op basis van getal in cel Sub rijen() Dim aantal As String aantal = Range("h5").Value startrow = 10 Lastrow = aantal + startrow - 2 Let Copyrange = startrow & ":" & Lastrow Rows(Copyrange).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Let Copyrange2 = "B" & startrow - 1 & ":" & "B" & Lastrow Naar cel in een specifiek werkblad gaan bij openen Sub Auto_open() Application.ScreenUpdating = False Sheets("content").Select Range("A1").Select

16 Rij verbergen in beveiligd blad Sub verbergen() Application.ScreenUpdating = False ActiveSheet.Unprotect Rows("12:12").Select Selection.EntireRow.Hidden = True Range("a13").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _, AllowInsertingRows:=True, AllowDeletingRows:=True