Mit VBA einen Text in die Windows Zwischenablage kopieren

Verarbeitete Datensätze protokollieren

Es ist ganz einfach mit VBA eine Zelle zu kopieren und an einer anderen Stelle einzufügen. Am Beispiel der Zelle C3 würde das zum Beispiel mit einem einzeiligen VBA Befehl funktionieren.

Range("C3").Copy

Damit kopieren Sie allerdings nicht den Text der Zelle, sondern die gesamte Zelle inklusive der Formatierung. Das hat manche möglicherweise unerwünschten Auswirkungen beim Einfügen an anderer Stelle. Innerhalb von Excel werden so kopierte Zellen beim Aktivieren einer beliebigen Zelle über einen Doppelklick wieder aus dem Speicher gelöscht. Ein häufiges Ärgernis, dass viele Anwender bereits kennen werden, wenn von Hand eine oder mehrere Zellen kopiert worden sind. Auch dann kann nicht zuvor eine Zelle aktiviert werden, ohne dass der Zwischenspeicher wieder geleert wird. Ein weiteres Problem besteht, wenn Sie den Inhalt außerhalb von Excel einfügen möchten. Da erhält man je nach Programm dann nicht nur den Inhalt der Zelle, sondern auch die Zelle und Formatierung eingefügt.

Möchten Sie also den reinen Text kopieren, ist es sinnvoller den Inhalt der Zelle in die Windows Zwischenablage zu kopieren. Die Windows Zwischenablage wird nicht so schnell geleert, und enthält den reinen Text der Zelle. Aktivieren Sie eine Zelle, bleibt der Inhalt der Zwischenablage erhalten.

Daten in die Windows Zwischenablage kopieren

Um einen Text in die Windows Zwischenablage zu kopieren ist etwas mehr VBA Code erforderlich. Zudem ist im VBA Editor über den Menüpunkt Extras -> Verweise zu prüfen, ob die Verweisbibliothek „Microsoft Forms 2.0 Object Library“ aktiviert ist.

Die Bibliothek ist erforderlich um das Objekt HtmlFile nutzen zu können. Ist dies sichergestellt können Sie die folgende VBA Routine in ein Modul kopieren und ausführen.

Sub Zwischenablage()
'erfordert die Verweis-Bibliothek: Microsoft Forms 2.0 Object Library

Dim strText As String
Dim objHF As Object

strText = Range("C3").Value

Set objHF = CreateObject("HtmlFile")

objHF.ParentWindow.ClipboardData.SetData "text", strText

End Sub

So funktioniert das Makro  

Die VBA-Routine “Zwischenablage” kopiert den Text aus Zelle C3 in die Zwischenablage des Windows-Betriebssystems.

Die Routine beginnt damit, dass sie zwei Variablen deklariert:

    • strText: Diese Variable wird verwendet, um den Text zu speichern, der kopiert werden soll.

    • objHF: Diese Variable wird verwendet, um ein Objekt vom Typ “HtmlFile” zu erstellen.

Zunächst wird der Inhalt der Zelle in die Variable strText gespeichert:

strText = Range("C3").Value

Danach wird ein Objekt vom Typ “HtmlFile” erstellt:

Set objHF = CreateObject("HtmlFile")

Dieses Objekt wird verwendet, um die Zwischenablage des Windows-Betriebssystems zu öffnen.

In der letzten Zeile wird der Text aus der Variablen strText in die Zwischenablage kopiert:

objHF.ParentWindow.ClipboardData.SetData "text", strText

Die Methode SetData wird verwendet, um Daten in die Zwischenablage zu kopieren. In diesem Fall wird der Text in der Variablen strText mit der Datenformat-ID “text” in die Zwischenablage kopiert.

Download

Zellinhalt mit VBA in die Windows Zwischenablage kopieren

zwischenablage.xlsm
Die Exceldatei enthält ein einfaches Beispiel, wie der Inhalt einer Zelle in die Windows Zwischenablage kopiert werden kann.

 

Was können die neuen Excel-Funktionen TEXTVOR, TEXTNACH und TEXTTEILEN?

CSV-Format

In früheren Excelversionen musste man sich beim Trennen unterschiedlich langer Bestandteile (z.B. Namen, Ortsnamen …) ziemlich umständlich mit den Funktionen LINKS, RECHTS, FINDEN, LÄNGE behelfen. Mit den neuen Funktionen geht das jetzt erheblich einfacher.

Excel Funktion TEXTTEILEN

Die Funktion TEXTTEILEN kann immer dann genutzt werden, wenn der Inhalt einer Zelle auf mehrere Zellen aufgeteilt werden soll. Voraussetzung hierfür ist, dass zwischen den einzelnen Werten ein oder mehrere Trennzeichen vorhanden sind. Das Trennzeichen kann dabei explizit auch aus mehreren Zeichen zusammengesetzt sein!

Weiterlesen

 

Anzahl verarbeiteter Datensätze mit VBA protokollieren

Verarbeitete Datensätze protokollieren

Heute stelle ich Ihnen eine Möglichkeit vor, die Anzahl der verarbeiteten Datensätze fortlaufend zu zählen. Das ist insbesondere dann sehr hilfreich, wenn Sie kostenpflichtige Webservices wie zum Beispiel die Google Maps API nutzen. Sie erhalten so einen sehr einfachen Überblick über die Anzahl der abgefragten Datensätze und können entsprechend die anfallenden Kosten kalkulieren. Auch ist es möglich einen monatliches Abfragebudget zu definieren, das nicht überschritten werden soll. Darüber hinausgehende Anfragen an die API-Schnittstelle können anschließend unterbunden werden.

Die nachfolgend vorgestellten VBA Routinen beinhalten allerdings nur die notwendigen Hilfsmittel um entsprechende Datenabfragen zu zählen und zu protokollieren. Das Beispiel beinhaltet kein Makro um tatsächlich eine Anfrage an die Google Maps API zu senden. Das sollte an dieser Stelle nur ein Hinweis für ein praktisches Anwendungsbeispiel sein.

VBA Routinen zum Messen der verarbeiteten Datensätze

Im Wesentlichen werden für das zählen und protokollieren der verarbeiteten Datensätze zwei VBA Routinen zusätzlich zur eigentlichen VBA Routine für die Verarbeitung der Datensätze benötigt. Bevor die Datensätze verarbeitet werden, wird zunächst der Stand der bereits verarbeiteten Datensätze aus einer externen Datei eingelesen. Hierfür wird im Beispiel eine einfache unformatierte Textdatei im TXT-Format genutzt. Reihenfolge der Verarbeitung:

Weiterlesen

 

Alter berechnen in Excel

Eine auf den ersten Blick ganz simple Aufgabenstellung hat sicher schon den ein oder anderen frustriert. Es geht um die genaue Berechnung des Alters in Excel. Sollten Sie gerade auch genau zu diesem Thema im Internet recherchiert haben, wird es Sie vielleicht trösten, dass selbst der Beitrag im offiziellen Microsoft Support fehlerhafte Lösungsvorschläge anbietet. Zum Staunen und Schmunzeln habe ich den Beitrag verlinkt, allerdings sollten Sie die angebotenen Lösungsansätze getrost ignorieren. 

Exakte Berechnungen mit der DATEDIF-Funktion

Die beste Funktion um das exakte Alter zu berechnen taucht im oben genannten Beitrag gar nicht auf. Dabei können Sie mit der Funktion DATEDIF() sehr einfach die Differenz zwischen zwei Datumswerten berechnen. Die Funktion ist auch sonst sehr versteckt und taucht weder im Funktionsassistenten noch im Register Formeln auf. Und genau aus diesem Grund möchte ich Ihnen die Funktion und ihre Einsatzmöglichkeiten in diesem Beitrag vorstellen. Die Funktion ist wie folgt aufgebaut:

Weiterlesen

 

Mit VBA in Excel ein Tabellenblatt löschen oder hinzufügen

Anordnung der Tabellenblätter

Mit wenigen Zeilen VBA Code können Sie beliebige Tabellenblätter löschen oder neu hinzufügen. In diesem Beitrag stelle ich Ihnen die einzelnen Funktionen vor. Weil das Löschen von Daten generell immer sehr problematisch ist, zunächst allerdings noch ein paar Hinweise um versehentlichen Datenverlust zu vermeiden.

Wenn Sie selbst “von Hand” ein Tabellenblatt löschen wollen, erhalten Sie zunächst eine Sicherheitsabfrage mit dem Hinweistext:

“Microsoft Excel löscht dieses Blatt endgültig. Möchten Sie den Vorgang fortsetzen?”

Sicherheitsabfrage: Tabellenblatt löschen
Sicherheitsabfrage: Tabellenblatt löschen

Auch wenn Hinweistexte häufig ungelesen weggeklickt werden, diesen Hinweis sollten Sie nicht sorglos ignorieren. Löschen Sie das Tabellenblatt grundsätzlich nur, wenn Sie sich sicher sind. Prüfen Sie vorher unter anderem auch, ob es von anderen Tabellenblättern noch Bezüge zu dem Tabellenblatt gibt, das Sie löschen wollen. So vermeiden Sie, dass Formeln anschließend den Fehler #BEZUG! statt dem gewünschten Ergebnis anzeigen. Sobald Sie die Datei nach dem Löschen des Tabellenblatts speichern ist der Datenverlust ansonsten irreparabel.

Weiterlesen

 

Textdatei in Excel 365 importieren

Microsoft ersetzte still und heimlich in Office 365 den komfortablen Text Import Wizard der früheren Excel-Versionen durch die “Get & Transform”-Werkzeuge. Die Werkzeuge gab es parallel auch schon in den älteren Excel-Versionen und konnten über die Funktion “Neue Abfrage” aufgerufen werden. Der bisherige Text Import Assistent wurde bedauerlicherweise in Excel 365 und zuvor bereits in Excel 2016 (ab Version 1704) deaktiviert.

Text-Import Assistent

Mit den aktuellen “Get & Transform”-Werkzeugen werden die Daten durch das Herstellen einer Verbindung zur Textdatei über Power Query importiert. Die Funktion ist sehr leistungsfähig, aber für den statischen Import bestimmter Daten schlicht und einfach überdimensioniert und deutlich komplexer. Wer nur gelegentlich eine Textdatei (z.B. txt oder csv) ins Excel-Format konvertieren möchte, wird hierfür bestimmt eine möglichst schnellere und einfachere Lösung suchen.

Weiterlesen

 

Kostenlose Excel Schulung – Excel Tipps & Tricks

Zum 10-jährigen Jubiläum von makro-excel.de gibt es heute ein besonderes Geschenk: Die Excel Schulungsfolien “Excel Tipps & Tricks” zum kostenlosen Download.

Die Folien erklären auf 39 Seiten viele interessante Fragen zum Thema effektiv arbeiten mit Excel. Geeignet für Einsteiger und Fortgeschrittene, werden viele klassische Fragestellungen im Umgang mit Excel beantwortet. Dabei werden auch Hinweise gegeben um das “Zerschießen” von Excel Arbeitsmappen zu verhindern und die Datenqualität der Daten in Excel zu sichern.

Weiterlesen

 

Sonderzeichen Suchen und Ersetzen in Excel

HTML Sonderzeichen

Mit Excel werden häufig Daten aus anderen Systemen importiert, analysiert, weiterverarbeitet und anschließend für die Nutzung in anderen Programmen oder Datenbanken auch häufig wieder exportiert. Sonderzeichen können dabei häufig zu Problemen führen. In diesem Beitrag erhalten Sie Lösungsansätze für eine reibungslose Verarbeitung der Daten in Excel.

Weiterlesen

 

Mehrere Autofilter in einem Excel Tabellenblatt nutzen

Jeder der mit Excel arbeitet wird früher oder später mit dieser Funktion seine Erfahrungen machen. Die Rede ist hier von einer der beliebtesten Funktionen in Excel, dem Autofilter. Mit wenigen Klicks können Sie nach dem Aktivieren der Funktion über die Symbolleiste “Start” oder “Daten” beliebige Spalten Sortieren oder Filtern.

Sortieren und Filtern

Leider hat der Autofilter einen entscheidenen Nachteil. In jedem Tabellenblatt kann maximal ein Autofilter aktiviert werden. Beim Versuch für einen zweiten Zellbereich einen Autofilter zu aktivieren, verschwindet stattdessen der erste bereits gesetzte Autofilter. Mit einem Klick auf “Filtern” wird also entweder ein Autofilter eingerichtet, oder wieder entfernt, sofern bereits ein Autofilter im Tabellenblatt aktiviert ist.

Weiterlesen

 

Excel Makros mit dem Makro-Rekorder aufzeichnen

Der integrierte Makro Rekorder in Excel ist, unabhängig von vorhandenen Programmierkenntnissen, ein sehr nützliches Tool. VBA Anfänger können über die Aufzeichnung wiederkehrender Arbeitsabläufe auch ohne Programmierkenntnisse ganz oder teilweise automatisieren. Aber auch fortgeschrittene Anwender können den Makro Rekorder sinnvoll nutzen. Insbesondere wenn einzelne VBA Funktionen nicht bekannt sind, können einzelne Schritte aufgezeichnet und anschließend im VBA Editor nachvollzogen werden.

Teil 1: Erste Schritte – Aufruf vom VBA-Editor
Teil 2: Excel Makros mit dem Makro-Rekorder aufzeichnen

Zu beachten ist allerdings, dass der aufgezeichnete VBA Code in vielen Fällen deutlich umständlicher ist, als selbst geschriebene VBA Befehle. Die Folgen von aufgeblähten Programmzeilen können sich bei größeren Projekten in verlängerten Laufzeiten direkt bemerkbar machen. Ein weiterer Nachteil ist, dass der aufgezeichnete Programmcode aufgrund seiner Länge leichter unübersichtlich wird.

Weiterlesen