Infosite von Joe Brandes
Eine Website von Trainer Joe Brandes. Infos zu IT-Seminaren von A bis Z.
Das klassische PCS Zertifikat
Von der Hardware und Netzwerktechnik bis zu den den Betriebssystemen Windows, Windows Server und Linux
Ich biete diese Module an!
Zertifikat CMSOD
Module Basiszertifikat
Module Specialist
Ready for Tech Deep Dives...
Die Programme von Microsoft aber natürlich auch alternative Lösungen rund um das Büro!
Die Standards für Büroumgebungen werden durch die Programme der Microsoft Office Suite angeboten.Aber natürlich beschäftigen wir uns auch erfolgreich mit den Microsoft Alternativen.
Sammlung rST IT Dokumentationen Trainer Joe Brandes »
Im Rahmen der EDV-Mitarbeiterfortbildungen der TU Braunschweig findet am 08.06.2023 als Online-Seminar das Seminar "Microsoft Excel 2016 – Makros und VBA" statt.
Hier unsere Ausschreibung: Sie lernen in diesem praxisorientierten Seminar die Handhabung und den Umgang mit dem Programm Excel aus dem Hause Microsoft:
Oft werden bei der Arbeit mit Excel immer wieder die gleichen Arbeitsschritte und Abläufe durchgeführt. In diesem Online-Seminar lernen Sie diese Arbeiten mit Hilfe von Makros und VBA-Skripten zu automatisieren, um Ihre tägliche Arbeit mit Excel effizienter zu machen:
Hier die Rahmendaten zum Seminar:
Ort: Online per BigBlueButtonZeiten: Do., 08.06.2023; 09.00 - 16.00 UhrInfosite: Extra-Website zum Thema Excel (Trainer Joe Brandes)Downloads: OneDrive (Trainer Joe Brandes)
Ich werde das Thema - in gewohnter Weise - mit ausführlichen Infos begleiten.Ihr Trainer Joe Brandes
Termin:
Intro:
...für die weiteren Arbeiten in Excel-Seminaren... zu beachten: Temporärer Download-Ordner für TN im Seminar
(Onedrive-Laufwerk Trainer J. Brandes)
Anm.: temporäre Verfügbarkeit je nach Seminar - aber dann auch gerne noch nach den Seminaren inkl. Trainerdatei(en)!) auf Onedrive-Laufwerk Trainer J. Brandes
Anleitung: bitte einfach Dokumente sauber markieren und mit Schaltfläche "Herunterladen" auf eigenen Rechner downloaden!Falls Ihr Browser keine Rückfrage zum Speicherort stellt, dann sollten sich die heruntergeladenen Dateien in Ihrem Ordner Downloads finden lassen.
Screenshots mit Windows Boardmitteln ( Win + Druck )Anm.: die Screenshots der Seminartage finden Sie nach dem Seminar (gezippt) in der Dateiablage zum Seminar.
Bildschirmlupe mit Windows Boardmitteln ( Win + + ;weglegen der Lupe mit Win + ESC ) Anm.: Bildschirmlupen bzw. Vergrößerungen lassen sich in Online-Seminaren oft nicht optimal einsetzen!
Online-Seminaren kann man natürlich am Besten folgen, wenn man einen Monitor für die Darstellungen des Trainers (Anm.: bezeichne ich oft als "Beamer") und auf einem zweiten Monitor die eigenen Arbeiten und Übungen durchführen kann.
Für die Teilnahme an Online-Seminaren mit nur einem Monitor (Bildschirm) empfehle ich die effiziente Umschaltung von Fenstern durch Tastenkombinationen.
Tipp: die Tastenkombination Alt + Tab (also die Alt- und dann die Tabulatortaste hinzudrücken) schaltet
Noch effizienter lassen sich bei Windows die "Desktops" nutzen, mit denen man dann nach Wunsch die geöffneten Fenster auf verschiedene "Bildschirme - genannt: Desktops" verteilen kann. Auch diese Desktops lassen sich sehr effizient und schnell per Tastatur wechseln.
(Kurzauflistung)
Bitte das Online-Seminar rechts oben (Drei-Punkte-Menü) über die Schaltfläche "Ausloggen" verlassen!
Anm.: sonst schmeißen Sie ALLE aus der Konferenz!
Diesen Begriff hört man in meinen Seminaren häufiger ;-). Gemeint ist hier: Das grundsätzliche Verständnis der fraglichen IT-Techniken. Am Besten gleich so, dass man auch nach einer Zeit ohne Beschäftigung mit diesen Techniken sehr schnell wieder in Fahrt kommt.
Unter einem roten Faden versteht man ein Grundmotiv, einen leitenden Gedanken, einen Weg oder auch eine Richtlinie. „Etwas zieht sich wie ein roter Faden durch etwas“ bedeutet beispielsweise, dass man darin eine durchgehende Struktur oder ein Ziel erkennen kann. Quelle: Wikipedia - Roter Faden
Unter einem roten Faden versteht man ein Grundmotiv, einen leitenden Gedanken, einen Weg oder auch eine Richtlinie. „Etwas zieht sich wie ein roter Faden durch etwas“ bedeutet beispielsweise, dass man darin eine durchgehende Struktur oder ein Ziel erkennen kann.
Quelle: Wikipedia - Roter Faden
Und los geht es ...
... eigener Dateityp: *.xlsm (bzw. *.xltm für Vorlagen)
Beim Öffnen muss außerdem noch die Sicherheitswarnung beachtet werden, die dann überhaupt erst die "Aktivierung" der aktiven Inhalte - sprich unsere Makros - ermöglicht. Ohne diese Aktivierung sind die Makros (aktive Inhalte) nicht nutzbar!
Sammeln von Inhalten, Funktionen oder auch Makros in einer Mappe und bereitstellen als TemplateÜber neue Mappe - Meine Vorlagen lassen sich dann die Mappen inkl. der aktiven Elemente nutzen
Arbeitsmappenvorlagen einfach mittels "Speichern unter..." und Dateityp *.xltx in passenden Vorlagenordner des Office-Users speichern.Vorlagen für Mappen mit Makros natürlich mit *.xltm speichern!
*.xltx
*.xltm
Aktueller Standardordner: C:\Users\benutzername\Documents\Benutzerdefinierte Office-Vorlagen Anm.: im Windows Explorer einfach deutschen Ordner "Dokumente" aufsuchen...Die Vorlagen über Menüband Datei - Neu - Rubrik: Persönlich aufrufen/nutzen.
C:\Users\benutzername\Documents\Benutzerdefinierte Office-Vorlagen
Speicherort für Vorlagen in Vorgänger-Windows/Office:..\AppData\Roaming\Microsoft\Templates
..\AppData\Roaming\Microsoft\Templates
Tipp: Unterordner im Templates-Ordner des Office lassen Registerkarten für Meine Vorlagen entstehen!
PERSONAL.XLSB: Excel kennt auch "Persönliche Makro-Arbeitsmappen": ..\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB (siehe also Benutzerprofil)
..\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Einfache Erstellung der PERSONAL.XLSB: Makro erstellen mit "Makro speichern in: Persönliche Makroarbeitsmappe"
Danach lässt sich diese Technik über den VBA-Editor - Projektexplorer verwalten (Code hinzufügen/hinkopieren).
... Erste Gehversuche mit VBA-Techniken über Aufzeichnungen von Makros
An dieser Stelle sei auf die Seminare mit entsprechendem Schwerpunkt "Excel - Makros" verwiesen (also ohne weitere Vertiefungen in VBA).
Tastenkombinationen:
Erinnerung: Menüband Entwicklertools einblenden!
Konfiguration über Excel-Optionen - Vertrauensstellungscenter - Einstellungen für VertrauensstellungscenterHier: Einstellungen für Makros (möglichst unverändert lassen); Vertrauenswürdige Speicherortealternativ erreichbar über Schaltfläche "Makrosicherheit" im Menüband Entwicklertools
Bei Laufwerkspfaden im Netzwerk (UNC Pfade - Universal Naming Convention) muss extra ein Kontrollkästchen für diese Nutzung aktiviert werden
Tipp: bei den "Vertrauenswürdigen Speicherorten" finden Sie auch Ihre Verzeichnisse für Benutzer und Templates (siehe PERSONAL.xlsb in Ordner .\XLSTART ) ! Und wieder: Speicherorte auf Netzwerkressourcen müssen noch extra erlaubt werden.
.\XLSTART
... siehe Alt + F11
Manuelles Einfügen von Sub Routinen (Makros) oder Function (neue eigene Funktionen; Beispiel: NettoMwst)
Wichtig: falls noch keine Struktur "Module" im Projekt-Explorer vorhanden ist, dann bitte mittels Einfügen - Module diese notwendige Struktur erstellen
Mit individuellen Modulen lassen sich die VBA-Codes besser und effizienter organisieren!
Manuelles (zeilenweise) Abarbeiten mit Funktionstaste F8
Aufruf der Hilfen zu VBA Befehlen und Aufruf F1
Manuelles (zeilenweise) Abarbeiten mit Strg + Leertaste
Mehrzeiliger Code mit " _" als Zeilenumbruch:
' Über mehrere Zeilen mit Leertaste _ (in MsgBox Konstante vbLf)Sub MsgBoxMehrzeiligAnzeigen() MsgBox "Heute ist der " & Date & vbLf & _ "Es ist jetzt genau: " & Time & vbLf & _ "Sie sind der Anwender: " & Environ("username"), _ vbOKOnly, "Meldung"End Sub
Tipp: bei Code mit Vorgestellten Optionen bitte jeweils ein einzelnes Modul nutzen (siehe: Option Explicit )!
Option Explicit
Debugging: bei Fehlern lässt sich im Editor der fragliche Quellcode begutachten und korrigieren. Für eine weitere Excel/VBA-Nutzung muss man den Fehler beheben oder die Ausführung des Makros stoppen (Stopptaste im Editor).
Symbolleiste "Bearbeiten" einfügen lassen im VBA-Editor: Einzüge, Haltepunkte, Sub/Makro (F5), Kommentierungen
Einstellungen für Tab-Schrittweite (z.B. 2 statt 4 Leerzeichen), Schrift/Schriftgröße oder automatische "Option Explicit" für neue Module
Codeeingaben gerne in Small (kleinen Zeichen) und ohne Leerzeichen:
worksheets("Tabelle1").range("a1").value=100 ' wird zuWorksheets("Tabelle1").Range("a1").Value = 100
Aber: erstellten Code immer kontrollieren/checken!
Eigenschaften (F4)
Übung: Sichtbarkeiten von Tabellenblättern manipulieren
Siehe auch: ScrollArea
Eine Idee für unsere Einführung in die Automatisierungen mit Makros und VBA-Code ist die praktische Umsetzung "quasi fertiger" VBA-Lösungen aus diversen Quellen:
Hier mal ein Beispiel: Internet-Recherche mit "excel VBA tabellenblätter sortieren" ergibt aktuell mit Google gut 26.000 Suchergebnisse!
Darunter findet sich (z.B.) auch eines der erwähnten Portale rund um Excel: https://www.excel-inside.de/vba-loesungen/datei/951-tabellenbl%C3%A4tter-alphabetisch-sortieren
Und schon hat man ein "Copy & Paste" Beispiel für die Sortierung von Tabellenblättern
Sub Sheets_alphabetisch_sortieren()'** Dieses Makro sortiert die Blätter in alphabetischer Reihenfolge'** Reihenfolge: Sonderzeichen, Ziffern, Buchstaben'** Dimensionierung der VariablenDim intAnz As IntegerDim a, b As IntegerDim strSortKrit As String'** Sortierreihenfolge festlegen'** "<" = Aufsteigend von 0-9 und A-Z'** ">" = Absteigend von Z-A und 9-0strSortKrit = ">" 'Nach Bedarf anpassen!'** Ermittlung Anzahl TabellenblätterintAnz = ActiveWorkbook.Worksheets.Count'** Blätter nacheinander durchlaufen und sortierenFor a = 1 To intAnz For b = a To intAnz If strSortKrit = "<" Then If Worksheets(b).Name < Worksheets(a).Name Then Worksheets(b).Move Before:=Worksheets(a) End If ElseIf strSortKrit = ">" Then If Worksheets(b).Name > Worksheets(a).Name Then Worksheets(b).Move Before:=Worksheets(a) End If End If Next bNext aEnd Sub
Den Code einfach in ein Modul Ihrer Wahl kopieren und austesten!
Und diese beispielhafte Suche kratzt nur an der Oberfläche der möglichen Umsetzungen - wie ich immer sage: "Das Rad wurde schon erfunden". Was in diesem Zusammenhang heißen soll, dass es bereits Lösungen für Ihre Probleme gibt. Es liegt an uns diese sauber mit Excel-Technik umsetzen zu können.
Mit ein wenig function VBA-Code lassen sich eigene Funktionen deklarieren, die man dann in Excel wie die eingebauten Funktionen nutzen kann.
Public Function NettoMwst(Betrag, Optional SteuerSatz As Single = 0.19)'Quelle: Helmut PirklbauerDim Netto As DoubleNetto = Betrag / (1 + SteuerSatz)NettoMwst = Excel.Application.Round(Netto, 4)End Function
Hinweis: diese functions müssen sich bis auf Weiteres in den Modulen von Arbeitsmappen befinden (Anm.: also nicht in der personal.xlsb - der persönlichen Arbeitsmappe).
TN-Bescheinigungen, Feedback-Bögen, Letzte Fragen
Vertiefungen zum Thema VBA Programmierung - eigentlich als eigenständiges Seminar!
Routinen direkt beim Laden einer Arbeitsmappe automatisch ausführen lassen:
Private Sub Workbook_Open() 'Dieses Ereignis wird beim Öffnen der Mappe ausgeführtTabelle1.Range("A1").Value = 100 'Die ScrollArea für Tabelle1 setzenTabelle1.ScrollArea = "A1:D10"End Sub
Wichtig: dieser Code gehört jetzt mal nicht in die Module, sondern sozusagen wortwörtlich zu "Diese Arbeitsmappe".
... die Tabellennamen mit unterschiedlicher Ansprache ...
Die Tabellenblattnamen lassen sich ändern in der Blattansicht und über das Eigenschaftenfenster; z.B.:
Empfehlung (bzw. häufig Best Practise): Codename ; wegen besserer Code/Syntaxcompletion, sicherer, weniger Pflegeaufwand!
Varianten zum Ansprechen eines Tabellenblatts:
' Codename:Tabelle3.Range("A1").Value = 100' Vollqualifiziert mit WorksheetsWorksheets("tbl_Daten").Range("A4").Value = 10' Vollqualifiziert mit Worksheets und IndexWorksheets(3).Range("A2").Value = 10' teilweise qualifiziert - Sheets arbeitet auch mit DiagrammblätternSheets("tbl_Daten").Range("A5").Value = 10' völlig ungenau/gefährlichRange("A6").Value = 10
Conclusio/Empfehlung: Tabellenblätter genau planen und strukturieren!
beispielhafte Direktaufrufe:?Environ("username") ?Environ("computername")
?Environ("username")
?Environ("computername")
Übung - Funktionsnamen im Englischen Original ermitteln:Wie heißt die Funktion MITTELWERT() in Zelle A1??range("A1").Formula=AVERAGE(D1:D8)
?range("A1").Formula
Tipp: Formel in Zelle eintragen: Tabelle3.Range("A1").Formula = "=AVERAGE(D1:D8)" Hinweis: FormulaLocal hat dann die länderspezifische Benennung!
Berechnungen (automatisch / manuell)
Anm.: SAP-Excel-Exports sind oft manuell eingestellt, sodass Excel diese Blätter nicht automatisch aktualisiert!
Aufrufe auch gerne auch im Direktfenster:Application.Calculation=xlCalculationManual oder dann wieder:Application.Calculation=xlCalculationAutomatic
Application.Calculation=xlCalculationManual
Application.Calculation=xlCalculationAutomatic
Debug Ausgaben
z.B. zur Laufzeitmessung:Debug.Print "Start: " & Now ....Debug.Print "Ende: " & Now oder einfach manuell einen Wert / Variable ausgeben!
Debug.Print "Start: " & Now
Debug.Print "Ende: " & Now
Excel-VBA-Objekte haben
Übung/Test mit Objekt "Application"
Sub UnterschiedMethodeUndEigenschaft() With tbl_Matrix.Range("A1:D10") ' Eigenschaft .Borders(xlInsideHorizontal).ColorIndex = 4 ' Methode .BorderAround Weight:=xlThick, ColorIndex:=3 End WithEnd Sub
Beachte: Zuweisungen mit = und := Bitte auch an Code-Completion mit Strg + Leertaste denken und die automatischen Auswahllistenfelder nutzen.
=
:=
Deklarieren mit Dim ; Tipp: Sonderzeichen vermeiden
Dim
lowerCamelCase empfohlen: intBeispielVar (Prefix empfohlen; hier: int für Integer-Variable)Am Anfang der Sub-Routinen die Variablen deklarieren (lokale Variablen).
Beispielhafte Prefixes für die Datentypen:bool Boolean , byte Byte , cur Currency , dtm Date , dec Decimal , dbl Double , int Integer , lng Long , obj Object , sng Single , str String , var Variant , rng Range , wkb Workbook
Speziell: Typ Enum
Übersicht zu Variablentypen: (Beachten: VB weicht teils von VBA ab; z.B. decimal not supported, ...)
Beispielhafte Links:
Anm.: nur eine kleine Linkauswahl ohne Anspruch auf Vollständigkeit ;-)
Statische/Static Variablen bleiben nach Laufzeitende erhalten!
Sub VariablenInhaltBleibtBestehen()Static lngAufrufe As Long lngAufrufe = lngAufrufe + 1 MsgBox "Makro wurde " & lngAufrufe & " Mal ausgeführt!"End Sub
Öffentliche/Public Variablen Public dtmStartzeit As Date sind auch über Modulgrenzen hinweg nutzbar!
Public dtmStartzeit As Date
Private/Private Variablen Private strPasswort As String sind nur in ihrem Modul verfügbar!
Private strPasswort As String
... sind schneller als Variablen!
Const strArbeitsmappe as String = "Mappe1.xls"Const dteStartDatum As Date = #1/1/2015#Const strFehlermeldung as String = "Fehler beim Druck!"Const sngMWST as Single = 1.19
Auch hier: möglichst Typ definieren.
Übungen zu unterschiedlichen Varianten
.... Open ConstTxtDatei For Input As #1Do Until EOF(1)Line Input #1, strTextDebug.Print strTextLoopClose #1.... Open ConstTxtDatei For Input As #1VarDat = Input$(LOF(1), 1)Debug.Print VarDatClose #1
Zweite Variante ist schneller, da man keine VBA-Schleife (Loop) nutzt.
Verwzeigungen
Inklusive Übungen und Beispielen
Übungen / Beispiel-Codes für TN
Schleifen
Hier mal zwei Beispiele für UserForms
Herdt-Taschenrechner
Einbau einer neuen Schaltfläche (CommandButton cmdMultiplikation) und Code für eine Multiplikationsfunktion des Taschenrechners
Für weitere vertiefende Beschäftigungen mit dem Thema "UserForms" hier eine beispielhafte Anleitung im Internet:
VBA Tutorials - Eingabemasken mit Excel (Link Übung Eingabemasken mit Excel)
Nutzung von UserForms: hier wichtig, dass die aktiven Elemente / VBA-Codes den Elementen des Formulars zugeordnet werden.
Das eigentliche Formular wird durch eine einfache Schaltfläche im Arbeitsblatt per Klick aufgerufen!Beispiele für Sub / Prozeduren: cmdMulti_Click() oder txtZahl1_Exit() also immer der Name eines Form-Steuerelements und ein angehängtes Ereignis!
cmdMulti_Click()
txtZahl1_Exit()
"VBA mit Excel", Bernd Held, (aktueller Link zur 4. Auflage)
Rheinwerk Verlag, 1016 Seiten, 4., aktualisierte und erweiterte Auflage 2019, gebundenRheinwerk Computing, ISBN 978-3-8362-7398-5 Anm.: Beispiele lassen sich downloaden, im Bundle erhältlich: +5,- € Aufschlag für DRM-freie PDF/EPUB/MOBI!
Und mit genügend VBA-Know-How lassen sich nahezu endlos Beispiele für den Einsatz von Makros und VBA im Netz finden.
Ihr Trainer Joe Brandes
Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...
Private Visitenkarte / Technik: HTML & CSS joe-brandes.de
Ich erarbeite und konzipiere seit über 30 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!
BECSS Visitenkarte / Technik: HTML & CSS becss.de
Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.
Billard Sport BS / nicht mehr von mir betreut billard-sport-braunschweig.de