Seit längerer Zeit habe ich mal wieder mit LibreOffice Calc gearbeitet. In meiner Tabelle hatte ich in mehreren Zellen eine Bedingte Formatierung erstellt, die ich in eine andere Zelle in der Tabelle kopieren wollte. Mit einem schlichten Strg+C und Strg+V, also einem Copy+Paste, bin ich nicht zum Ziel gekommen.
Git – diff für Excel- und LibreOffice Calc-Dateien
Git sieht eigentlich keine Versionierung von Binär-Dateien, wie Microsoft Word oder Microsoft Excel, im Standard vor. Das Tool war eigentlich mal dazu gedacht mit Flat Files zu versionieren, die in der Programmierung zu anfallen.
Arbeitszeiterfassungsvorlage für Microsoft Excel – Aktualisierte Version
Nachdem mich immer wieder mal Anfragen mit der Bitte die Vorlage zu aktualisieren erreichen, habe ich das Arbeitszeiterfassung-Template angepasst. Ihr könnt die neue Version des Template nach wie vor kostenlos hier im Blog herunterladen.
Benutzerdaten, Datum & Uhrzeit in eine definierte Zelle schreiben
Das Makro schreibt die Benutzerinformationen samt Datum und aktueller Uhrzeit in eine angegebene Zelle.
Sub Benutzer()
'
' Schreibt die Benutzerdaten und Datum & Uhrzeit in die definierte Zelle
'
Worksheets("Tabelle1").Activate
Range("B1").Value = "User " & Environ("username") & " - " & Date & " " & Time
End Sub
Zeilenumbrüche bei MsgBox, InputBox, TextBox, …
Zeilenumbrüche bei MsgBox, InputBox, TextBox, etc. lassen sich mit vbCrLf einfügen.
Im nachfolgenden Code wird das beispielhaft an einer TextBox aufgezeigt.
UserForm1.TextBox11.Value = "Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text" & vbCrLf & _
"Das ist ein sehr langer Text"
Alle Tabellen einer Arbeitsmappe in ListBox auflisten
Manchmal ist es ganz hilfreich, wenn man alle Tabellen einer Arbeitsmappe in einer Listbox in einem UserForm anzeigen lässt.
Das erste Makro befüllt die ListBox mit den Namen aller Tabellen einer Arbeitsmappe.
Da es bei der Bearbeitung dazu kommen kann, dass Tabellenblätter hinzugefügt oder gelöscht werden, wird die Liste bei jedem Aufruf neu eingelesen.
Sub UserForm1Anzeigen()
'
'Ruft UserForm1 auf
'
call navigation_loeschen
Call ListBox2_Initialize
UserForm1.Show
End Sub
Private Sub ListBox2_Initialize()
'
' Befüllt die ListBox2 mit allen in der Arbeitsmappe vorhandenen Tabellen
'
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
UserForm1.ListBox2.AddItem sht.Name
Next sht
End Sub
Private Sub navigation_loeschen()
'
' Löscht die Einträge im Navigationsfeld
'
UserForm1.ListBox2.Clear
End Sub
Werte Kopieren von Quell- in Ziel-Tabelle
Credits in UserForm
In meinem letzten Beitrag „Dokumenteneigenschaften“ habe ich gezeigt, wie man die Dokumenteneigenschaften per VBA manipulieren kann.
Dokumenteneigenschaften manipulieren
Mit Hilfe dieses Makros können die Dokumenteneigenschaften einer Excel-Datei manipuliert werden.
Die Konstanten habe ich global definiert, so können die auch für andere Zwecke in anderen Modulen angesprochen werden.
Im eigentlichen Makro „Dokumenteneigenschaften“ wird auf diese Konstanten zurückgegriffen und die Werte dort abgeholt.
Global Const Title As String = "Dokumententitel"
Global Const Company As String = "Firma"
Global Const Department As String = "Abteilung"
Global Const Author As String = "Stefan Strobel"
Global Const Version As String = "1.0"
Global Const Year As String = "2017"
Global Const Month As String = "June"
Global Const EMail As String = "meine@e-mail.de"
Sub Dokumenteneigenschaften()
'
' Schreibt die Dokumenteneigenschaften
'
ActiveWorkbook.BuiltinDocumentProperties("Title") = Title
ActiveWorkbook.BuiltinDocumentProperties("Author") = Author
ActiveWorkbook.BuiltinDocumentProperties("Company") = Company
ActiveWorkbook.BuiltinDocumentProperties("Subject") = "Meine bestes Dokument"
ActiveWorkbook.BuiltinDocumentProperties("KeyWords") = ""
ActiveWorkbook.BuiltinDocumentProperties("Comments") = ""
End Sub
Damit die Dokumenteneigenschaften sofort beim Öffnen der Excel-Datei eingetragen werden kann man das Makro über die Funktion AutoOpen aufrufen lassen.
Sub Auto_Open()
Call Dokumenteneigenschaften
End Sub