SLSS SearchClass – Excelsuche leichtgemacht

Überlegungen und Vorgeschichte

Wie bei vielen anderen Menschen auch, gehört die Verwendung von Microsoft Excel bei mir zum Arbeitsalltag genauso dazu wie die morgentliche Tasse Kaffee oder das Online-Meeting via Microsoft Teams. Dabei bin ich in der Vergangenheit bei vielen meiner Listen an den Punkt gekommen, an welchem ich die aktuelle oder auch andere Exceldateien nach bestimmten Werten durchsuchen musste, oder dem Nutzer die Möglichkeit geben wollte dies zu tun. Jetzt bietet VBA* mit der Range.find Methode* schon eine recht gute Funktion zum Suchen nach bestimmten Werten an, doch musste ich hiermit entweder „das Grundgerüst“ für den Suchaufruf immer wieder neu schreiben und an die aktuelle Datei anpassen, oder den Code aus einer anderen Liste „recyclen“, wofür aber ebenfalls immer Anpassungen nötig waren.

Um mir diese Arbeit ein wenig zu erleichtern, kam mir die Idee eine Funktionsbibliothek oder Klasse zu programmieren, mit deren Hilfe ich die gewünschten Funktionen einfach in ein anderes Projekt, oder eine neue Liste importieren kann. Das Ergebnis ist die hier folgende SLSS SearchClass, in welcher ich initial erst einmal die für mich wichtigsten Funktionen umgesetzt habe.

Die folgenden Absätze geben einen tieferen Einblick in die Nutzungsmöglichkeiten und den Funktionsumfang der Klasse und sollten daher nicht als Schritt für Schritt Anleitung angesehen werden. Für die meisten Leute sollte sich die Anwendung der Klassenfunktionen eigentlich relativ leicht aus der im Downloadordner vorhanden Beispielsammlung (SLSS_SearchClass_X.X.X.X.xlsm) herauslesen lassen!   

KOMMENTAR DES AUTORS

Mehr lesen

SLSS Excel-Mailer – automatischer E-Mail-Versand mit Microsoft Excel

(für die Verwendung wird ein konfigurierter E-Mail-Account in MS Outlook benötigt)

Vorgeschichte

Bereits vor einigen Jahren bekam ich von einem Bekannten die Anfrage ob es möglich wäre eine Excel-Liste so zu erweitern, dass er aus dieser auch E-Mails an seine Kunden versenden könne. Nach kurzer Recherche war klar, dass das Versenden von E-Mails mittels VBA* kein großes Problem darstellt. Die größere Herausforderung bestand darin, dass in den zu versendenden E-Mails nicht nur vorgefertigter „Standard-Text“, sondern auch Inhalte aus verschiedenen Excel-Tabellenblättern automatisch eingefügt werden sollte. Da er diese Funktion in mehrere voneinander unabhängige Excel-Dateien integriert haben wollte, bot es sich an hierfür ein Modul zu erstellen, was mit „wenigen“ Handgriffen in eine bestehende Excel-Tabelle eingebaut werden kann. Dies war der Anfang des SLSS Excel-Mailer’s.

 

Funktionsumfang

Im Laufe der Zeit hat sich der Funktionsumfang des SLSS Excel-Mailers um so einige Funktionen erweitert. Das liegt mitunter daran, dass die neuen Funktionen den Bedienungskomfort erweitern und verbessern, als auch an dem Fakt, dass ich das Modul auch in andere Projekte integriert habe, für welche diese Funktionen sinnvoll waren und somit auch zum festen Bestandteil des Modules geworden sind. Der Versand der E-Mails erfolgt hierbei immer über den Microsoft Outlook*-Account des aktuell angemeldeten Benutzers / Rechners.

Mehr lesen

Basti Kalender – Der Ersatz für den Microsoft Date and Time Picker

Warum ein eigener Kalender

Ich musste beim Erstellen vieler meiner VBA* Anwendungen dem Nutzer die Möglichkeit geben das aktuelle Datum oder auch ein bestimmtes Bearbeitungs- oder Zieldatum eingeben zu können. Um die Eingabe etwas komfortabler zu gestalten, nutzte ich dafür bis 2018 in allen Formularen den „Microsoft Date and Timer Picker“, welchen man durch die Auswahl von „Extras“ –> „Zusätzliche Steuerelemente“ den Steuerelementen der VBA* Toolbox hinzufügen konnte. Diese tolle Erweiterung öffnet beim Klicken auf die Dropdown Box einen „Mini Kalender“, mit welchem man durch Monate und Jahre navigieren kann. Beim Klicken auf einen bestimmten Tag wird dann das ausgewählte Datum in die Dropdown Box übernommen, wo es vom VBA*-Code ausgewertet werden kann.

Mehr lesen

Bilder mit VBA (Excel) verkleinern

Vorgeschichte

Dieses kleine Tool entstand als „Arbeitserleichterungsmittel“ für meine Arbeitskollegen. Auf unseren Prüfstands-Rechnern in der Arbeit ist es aus Sicherheitsgründen leider nicht gestattet Fremdsoftware, welche nicht explizit von der IT-Sicherheit freigegeben wurde, zu installieren. Nun müssen wir aber von diesen Rechnern aus des Öfteren Bilder von diversen Prüfstandsaufbauten auf eine datenbankbasierte Softwareplattform übertragen. Leider hat diese Plattform den Nachteil, dass es eine Beschränkung für die maximale Größe der hochzuladenden Dateien gibt. Diese Grenze ist hierbei so niedrig gewählt, dass selbst Fotos welche mit der niedrigsten einstellbaren Auflösung von unserer Digitalkamera aufgenommen wurden sind, noch zu groß waren.

Diese beiden Fakten zusammen führten dazu, dass wir anfänglich die Fotos noch einzeln mit MS-Paint verkleinerten, was bei mehreren Fotos natürlich mühsam und auch ein wenig nervig war. Zum Glück verfügten aber auf alle Rechner über eine Microsoft Office Installation und so bastelte ich in VBA* für Excel ein Tool, mit welchem die Bilder auf der Festplatte ausgewählt, prozentual verkleinert, und anschließend als neue Datei mit auswählbarer Dateierweiterung gespeichert werden konnten. Leider ist dies nicht gerade das wofür Excel eigentlich genutzt wird, doch dank VBA* ist auch diese „Zweckentfremdung“ ganz praktikabel geworden.

Mehr lesen

Visual Basic for Applications

Was ist VBA und wozu braucht man es

VBA*, kurz für „Visual Basic for Applications“, ist eine Scriptsprache welche zur Steuerung und Erweiterung von Programmabläufen in Microsoft Office Produkten (Excel, Word, PowerPoint, Access, etc.) entwickelt wurde. Sie ist seit Excel 95 fester Bestandteil der Office-Produktreihe und leitet sich, wie der Name es schon sagt, von Microsofts Visual Basic ab.

Mit VBA* ist es möglich Excel- oder Worddateien so zu erweitern, dass sie annähernd den gleichen Funktionsumfang wie klassisch programmierte Software bieten. Es verfügt über einen Formulareditor, mit welchem Formulare mit Buttons, Listboxen und vielen weiteren Ein- und Ausgabetools per Drag & Drop erstellt werden können. Des Weiteren kann mit VBA* auf die Funktionalität der Office-Produkte direkt zugegriffen werden. So ist es zum Beispiel möglich, aus Word oder Excel heraus, via Outlook Emails zu versenden ohne dieses dafür öffnen zu müssen. Der Funktionsumfang ist durch Verweise erweiterbar und bietet eine fast schon unüberschaubare Anzahl an Funktionen. 

Mehr lesen