Zahlenwerte im Format Text speichern

Im Beitrag “Zahlenwerte richtig erkennen” habe ich Ihnen Lösungswege gezeigt, wenn Sie mit Zahlen nicht rechnen konnten, weil sie nicht als Zahl formatiert waren.

Teil 1: Zahlenwerte richtig erkennen
Teil 2: Zahlenwerte im Format Text speichern

Im heutigen Beitrag wollen wir genau das Gegenteil erreichen. Zahlen sollen als Text gespeichert werden. Sie werden sich vielleicht fragen, was dadurch erreicht werden soll. Ganz einfach, Excel erkennt keine vorangestellten Nullen. Wollen Sie z.B. eine Liste mit Kundennummern, Mitgliedsdaten oder ähnlichem führen, die mit einer oder mehrerer Nullen beginnen und mit denen keine Rechenoperationen durchgeführt geführt werden sollen, so bietet sich an, die Zahlen als Text zu formatieren. Sie können alternativ auch die Formatierung “Sonderformat” verwenden und z.B. die Anzahl der Stellen dort festlegen. Wenn Sie so festlegen, dass immer eine neunstellige Nummer angezeigt werden soll, werden bei kürzeren Zahlen die fehlenden Stellen vorne mit einer Null angezeigt. Allerdings ist das die reine Ansicht in der Tabelle. Im Eingabefeld wird die Zahl ohne die vorangestellten Nullen angezeigt. Dadurch werden Sie Probleme haben, wenn Sie unterschiedlich formatierte Listen z.B. über einen Sverweis miteinander abgleichen wollen.

Weiterlesen

 

Spalten und Zeilen in Excel Tabellen ohne großen Aufwand tauschen

Wenn Sie eine Tabelle in Excel haben bei der Sie die Spaltenüberschriften an der Stelle der Zeilenüberschriften und umgekehrt haben wollen, können Sie das ganz einfach ohne großen Aufwand mit einer Excel-Standardfunktion lösen. Das geht sehr schnell und ist wesentlich einfacher, als ein entsprechendes Makro zu programmieren.

Teil 1: Mit unterschiedlichen Varianten die letzte benutzte Zeile oder Spalte ermitteln/
Teil 2: Leere Zeilen in Exceltabellen löschen
Teil 3: Doppelte Zeilen löschen
Teil 4: Spalten und Zeilen in Excel Tabellen ohne großen Aufwand tauschen

Allerdings müssen Sie die Funktion erst einmal finden. Die Lösung dieses Problems ist über das Fenster „Inhalte einfügen“ und der darin enthaltenen Funktion „Transponieren“ zu finden.



Abbildung 1
Das Fenster „Inhalte einfügen“ können Sie entweder über „Bearbeiten“ in der Menüleiste oder über drücken der rechten Maustaste im Tabellenbereich auswählen.

Weiterlesen

 

Seiten eines Tabellenblatt automatisch in unterschiedlichem Seitenformat drucken

Mit einem kleinen Makro können Sie problemlos den Inhalt eines Tabellenblatts in unterschiedlichen Seitenformaten drucken. Dies ist vor allem dann sinnvoll, wenn Teile des Tabellenblatts unterschiedlich breit (Anzahl Spalten oder Länge der Zellinhalte) sind.

Im ersten Beispiel wird die Seite 1 im Hochformat und die Seite 2 im Querformat gedruckt. Der Zellbereich, der auf einer Seite gedruckt wird können Sie übrigens in der Menüleiste über „Ansicht“ und Unterpunkt „Seitenumbruchvorschau“ ansehen und ggf. anpassen.

Weiterlesen

 

Leere Zeilen in Exceltabellen löschen

Beim Editieren von großen Exceldateien kommt es relativ häufig vor, dass Sie innerhalb einer Tabelle mehrere leere Zeilen erzeugen oder vorfinden. In der Regel werden Sie einzelne leere Zeilen nicht von Hand löschen, aber auch nicht stehen lassen wollen. Sie können Leerzeilen zwar über den Autofilter oder die Listenfunktion ausblenden, aber diese Methode nur eine Notlösung, die Sie möglichst vermeiden sollten, da dadurch die Leerzeichen lediglich ausgeblendet werden. Sobald Sie eine andere Filterauswahl treffen, werden die Leerzeilen wieder angezeigt.

Teil 1: Mit unterschiedlichen Varianten die letzte benutzte Zeile oder Spalte ermitteln/
Teil 2: Leere Zeilen in Exceltabellen löschen
Teil 3: Doppelte Zeilen löschen
Teil 4: Spalten und Zeilen in Excel Tabellen ohne großen Aufwand tauschen

Mit einem kleinen Makro können Sie auch große Exceltabellen komfortabel bereinigen und Leerzeilen endgültig löschen. Zeilen in denen mindestens eine Zelle befüllt ist, werden nicht gelöscht.

Weiterlesen

 

Sichere Variablendeklaration mit Option Explicit

Häufige Fehler bei Makros sind fehlerhafte Variablen. Standardmäßig müssen Sie nicht zwangsweise eine Variable deklarieren, bevor Sie Sie verwenden können.

Sub ohneVariablenDeklaration()
Zahl = 10
MsgBox Zahl
End Sub

Im obigen Beispiel wird der Variable Zahl zu Beginn der Wert 10 zugewiesen ohne dass die Variable vorher definiert wurde. Mit MsgBox wird Ihnen in der nächsten Zeile der Wert der Variable Zahl über eine Messagebox am Bildschirm angezeigt. Tipp: Eine Ausgabe der Variable per Messagebox eignet sich auch sehr gut um einen Fehler in einem Makro zu finden. So können Sie prüfen, ob den Variablen die richtigen Werte zugewiesen worden sind, oder ob das Makro nur deshalb nicht richtig läuft, weil Sie bei der Deklaration oder Zuweisung der Variablen einen Fehler gemacht haben.

Weiterlesen

 

Excel Makros beschleunigen

Excel Makro beschleunigen

Umfangreiche Makros können ganz schön zeitaufwendig werden. Je nach Art und Weise, wie das Makro Befehle ausführen soll, kann der Zeitaufwand für die Ausführung eines Makros stark variieren. Besonders zeitaufwendig sind z.B. Kopiervorgänge zwischen unterschiedlichen Arbeitsmappen, aufwendige Formelberechnungen oder Filterfunktionen großer Datenmengen.

Das Hauptproblem langsam ausgeführter Makros liegt in der Regel aber nicht an den Befehlen an sich. Mit jeder geänderten Zelle aktualisiert Excel die Ansicht. Diese ständige Aktualisierung, gerade wenn durch Formeln weitere Zellen betroffen sind, bremst das Makro regelrecht aus.

Weiterlesen

 

Excel Bundesligatippspiel für die Saison 2011 – 2012

Hier bekommen Sie für die aktuelle Saison 2011/2012 ein kostenloses Bundesligatippspiel mit ausführlichen Statistiken und Tabellen. Um das Tippspiel auch im Freundeskreis oder im Verein für eine Tippgemeinschaft nutzen zu können beinhaltet die ZIP-Datei ebenfalls ein Tool zur automatischen Tippauswertung mehrerer Tippscheine.

Die Tippscheine erstellen Sie mit der Datei bundesliga-excel-tippspiel-2011-2012.xls. Für jeden Tipper legen Sie eine einzelne Datei an. Damit Sie möglichst ohne manuelle Einstellungen loslegen können speichern Sie die Tools am Besten im Verzeichnis C:\Bundesligatippspiel\. Für die Tippscheine ist das Verzeichnis C:\Bundesligatippspiel\Tippscheine\ voreingestellt. Die entsprechenden Ordner sind bereits in der ZIP-Datei enthalten. Daher entpacken Sie die Datei möglichst direkt in C:\ um die Makros ohne Probleme nutzen zu können.
Excel Bundesligatippspiel

Neben dem Tippspiel berechnet das Tool außerdem noch die aktuelle Bundesligatabelle, die Heim- und Auswärts- und die Kreuztabelle. Außerdem erhalten Sie einen Überblick wie häufig welche Ergebnisse in der Saison vorgekommen sind, wieviele Spiele bereits gespielt sind, sowie die Anzahl der Heimsiege, Unentschieden und Auswärtssiege. Nach jedem Spieltag können Sie mit der Datei tippauswertung.xls den aktuellen Zwischenstand der Tippgemeinschaft berechnen.

Weiterlesen

 

Doppelte Zeilen löschen

Viel Zeit und Mühe kann Ihnen dieses Makro sparen, wenn Sie aus einer Tabelle doppelte Zeilen löschen wollen. Praktische Anwendungsbeispiele sind z.B. doppelte Kundendatensätze löschen, Postleitzahlenlisten bereinigen oder Adressdaten auf doppelte Einträge prüfen.

Teil 1: Mit unterschiedlichen Varianten die letzte benutzte Zeile oder Spalte ermitteln/
Teil 2: Leere Zeilen in Exceltabellen löschen
Teil 3: Doppelte Zeilen löschen
Teil 4: Spalten und Zeilen in Excel Tabellen ohne großen Aufwand tauschen

Für das kurze Beispiel wird die Spalte A auf doppelte Einträge geprüft und wenn doppelte Einträge festgestellt werden, die jeweilige Zeile komplett gelöscht. Achtung: Sie können die Änderungen eines ausgeführten Makros nicht wieder rückgängig machen. Am Besten speichern Sie vorher die Datei nochmals ab, um ggf. die gespeicherte Datei verwenden zu können, falls das Ergebnis nicht wie gewünscht ist.

Weiterlesen

 

Zahlenwerte richtig erkennen

Sie kennen vielleicht das Problem. Sie haben eine Tabelle erhalten, in der sich Zahlenwerte befinden mit denen nicht gerechnet werden kann. Die Ursachen sind dafür vielfältig. Entweder sind die Zellen als Text formatiert, vor oder hinter der Zahl stehen noch Leerzeichen oder die Zahl ist mit einem Punkt an der Stelle zu den Nachkommastellen getrennt.

Teil 1: Zahlenwerte richtig erkennen
Teil 2: Zahlenwerte im Format Text speichern

Insbesondere bei großen Tabellen wollen Sie natürlich nicht Zelle für Zelle bereinigen. Dieses Problem können Sie schnell mit, aber auch ohne Makro lösen.

Am einfachsten lässt sich das Problem mit dem Punkt statt Komma lösen. Hierfür markieren Sie den entsprechenden Zellbereich (In der Beispieldatei der Bereich F3:F15) und rufen über das Menü “Bearbeiten”, “Ersetzen” auf. Geben Sie nun unter “Suchen nach:” einen Punkt und bei “Ersetzen durch:” ein Komma ein. Anschließend klicken Sie auf “Alle ersetzen” und im markierten Bereich werden alle Kommas durch jeweils einen Punkt ersetzt.

Weiterlesen

 

Lesehilfe für große Tabellen: Aktuelle Zeile fett hervorheben

Das erste Makro, dass ich Ihnen vorstellen möchte, ist eine Lesehilfe für große Tabellen. Es wird immer automatisch die aktuelle Zeile fett hervorgehoben. Sobald mehr als eine Zeile markiert ist, passiert dagegen nichts. Das Makro hilft Ihnen also dabei, immer leicht die Werte einer Zeile lesen zu können, ohne in der Zeile zu verrutschen.

Den Programmcode fügen Sie im VBA Editor in das jeweilige Tabellenblatt (vgl. Abbildung 1) ein! (nicht als Modul!)

Makro-Programmcode:

Private MeineZeile As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Dim markierteZeilen As Long

markierteZeilen = Selection.Rows.Count

If markierteZeilen = 1 Then
    If Not MeineZeile Is Nothing Then MeineZeile.Font.Bold = False
    Target.EntireRow.Font.Bold = True
    Set MeineZeile = Target.EntireRow
End If

End Sub

Abbildung 1

Alternative optische Hervorhebungen

Statt einem Fettdruck kann die aktuelle Zeile auch anderweitig hervorgehoben werden. Dafür bietet sich eine farbliche Änderung der Schriftart oder des Hintergrunds an.
Ersetzen Sie hierfür den Programmcode der Zeile

Target.EntireRow.Font.Bold = True

für die Schriftfarbe mit

Target.EntireRow.Font.Color = -16776961

für die Hintergrundfarbe mit

Target.EntireRow.Interior.Color = 65535

Eine weitere Option könnte sein, die Schriftgröße der aktuellen Zeile zu ändern.

Target.EntireRow.Font.Size = 18

Bei der Nutzung der drei vorgenannten Varianten ist jeweils gleichzeitig die Änderung beim Verlassen der Zeile rückgängig zu machen. Hierfür ersetzen Sie den Programmcode der Zeile

If Not MeineZeile Is Nothing Then MeineZeile.Font.Bold = False

für die Schriftfarbe mit

If Not MeineZeile Is Nothing Then MeineZeile.Font.ColorIndex = xlAutomatic

für die Hintergrundfarbe

If Not MeineZeile Is Nothing Then MeineZeile.Interior.Pattern = xlNone

bzw. für die Schriftgröße mit

If Not MeineZeile Is Nothing Then MeineZeile.Font.Size = 10

Bei allen Varianten sollten Sie im Blick haben, dass ggf. vorhandene Formatierungen durch den Wechsel der Zeile überschrieben werden und auch beim Verlassen der Zeile nicht mehr zurückgesetzt werden. Prüfen Sie deshalb zunächst, ob in Ihrer Tabelle bereits Formatierungen vorhanden sind, die erhalten bleiben sollen. Arbeiten Sie z.B. bereits mit Fettdruck um bestimmte Zellwerte hervorzuheben, sollten Sie diese Variante nicht verwenden, sondern dann ggf. alternativ eher die Schriftfarbe ändern. Das gilt natürlich nur dann, wenn bisher keine unterschiedlichen Schriftfarben genutzt werden.

Beim Verlassen der Zeile wird diese immer auf die Standardwerte schwarze Schrift, keine Hintergrundfarbe, ohne Fettdruck oder Schriftgröße 10 zurückgesetzt. Je nachdem welche Variante des VBA Codes Sie in Ihrem Makro verwenden.

Weitere Anpassungsmöglichkeiten

Möglich ist jedoch auch eine Kombination mehrerer Varianten. Fügen Sie dann direkt untereinander die gewünschten Zeilen ein. Vergessen Sie auch hier immer das Gegenstück nicht um beim Verlassen der Zeile die Formatierung wieder zurückzusetzen.

Möchten Sie andere Farben für die Kennzeichnung nutzen, können Sie den zugehörigen Farbcode z.B. über die Aufzeichnung eines Makros ermitteln. Lesen Sie hierzu auch den Artikel Excel Makros mit dem Makro-Rekorder aufzeichnen

Excel Makros mit dem Makro-Rekorder aufzeichnen

Inhalt der Zwischenablage sichern

Eine bekannte Einschränkung von Excel ist es, dass die Zwischenablage beim aktivieren einer Zelle gelöscht wird. Das gleiche gilt, wenn durch ein Makro Zellen verändert werden.

Möchten Sie also die Daten der Tabelle nicht nur lesen, sondern zum Beispiel auch Inhalte kopieren und einfügen ist noch eine Anpassung an der VBA Routine notwendig. Am Anfang des Makros muss zunächst der aktuelle Inhalt der Zwischenablage gesichert werden, damit er am Ende wieder in die Zwischenablage neu kopiert werden kann.

Der angepasste VBA Code enthält nun zusätzlich noch vor und nach der Ausführung der Markierung der aktuellen Zeile die Sicherung und Wiederherstellung der Zwischenablage.

WICHTIG: Die Zwischenablage wird im zweiten Tabellenblatt in Zelle A1 zwischengespeichert. Wenn in Ihrer Datei hier bereits Daten vorhanden sein sollen müssen Sie eine alternative Zelle für die Speicherung der Zwischenablage definieren!

Private MeineZeile As Range
 
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Dim markierteZeilen As Long

markierteZeilen = Selection.Rows.Count

If markierteZeilen <> 1 Then
    Exit Sub
Else
    Sicherung_Zwischenablage
    If Not MeineZeile Is Nothing Then MeineZeile.Font.Bold = False
    Target.EntireRow.Font.Bold = True
End If

Set MeineZeile = Target.EntireRow

If Tabelle2.Range("A1").Value <> "" Then
    Zwischenablage_Fuellen Tabelle2.Range("A1").Value
    Tabelle2.Range("A1").Value = ""
End If

End Sub

Die Funktionen Sicherung_Zwischenablage und Zwischenablage_Fuellen sind zusätzlich in ein Modul einzufügen.

Private Const CF_TEXT As Long = 1

Function Sicherung_Zwischenablage()

Dim strZwischenablage As DataObject
Set strZwischenablage = New DataObject

strZwischenablage.GetFromClipboard
If strZwischenablage.GetFormat(CF_TEXT) Then Tabelle2.Range("A1") = strZwischenablage.GetText

End Function

Function Zwischenablage_Fuellen(ByVal Text As Variant) As Boolean
    Zwischenablage_Fuellen = CreateObject("htmlfile").ParentWindow.ClipboardData.SetData("Text", Text)
End Function

Mustermappen

Die erste Beispieldatei enthält das Grundmakro ohne Sicherung der Zwischenablage.
aktuelle_zeile_fett_hervorheben.xlsm

Wenn Sie den Inhalt der Zwischenablage sichern wollen, nutzen Sie alternativ die angepasste Version.

aktuelle_zeile_fett_hervorheben _mit_zwischenablage.xlsm

WICHTIG: Die Zwischenablage wird im zweiten Tabellenblatt in Zelle A1 zwischengespeichert. Wenn in Ihrer Datei hier bereits Daten vorhanden sein sollen müssen Sie eine alternative Zelle für die Speicherung der Zwischenablage definieren!