Für meine Notizen-Spalten wünsche ich mir den automatischen Umbruch des Textes.
Damit ich das bei Anlage der Daten schon definieren kann, nutze ich die folgende Zeile Quelltext:
Range("B:B").WrapText = True
IT-Know How und mehr
In dieser Kategorie lege ich meinen persönlichen „Learning-Fundus“ an, um immer wieder benötigte Funktionen und Vorgehensweisen zu dokumentieren
Für meine Notizen-Spalten wünsche ich mir den automatischen Umbruch des Textes.
Damit ich das bei Anlage der Daten schon definieren kann, nutze ich die folgende Zeile Quelltext:
Range("B:B").WrapText = True
Manchmal schreibt man Informationen in eine Tabelle oder führt interaktiv Änderungen an den Daten aus. Dabei ändert sich oft der Fokus der Tabelle.
Damit der Benutzer jedoch nicht ständig wieder an seine Position scrollen und klicken muss, gibt es einfach die Möglichkeit, den aktiven Focus in Excel zwischen zu speichern und wieder abzurufen:
' Speichern der aktuellen Selektion
Dim selectionValue As Variant
selectionValue = Selection.Address
' Do Anythin - Tu was Du tun musst ;-)
' Zurücksetzen auf alte Selektion
Range(selectionValue).Select
Manchmal schreibt man einen Header für eine Tabelle, wo die Spalten möglichst schmal sein müssen. Dafür ist es von Vorteil, wenn in dem Header Wörter untereinander stehen. Das lässt sich ganz einfach umsetzen:
dim ueberschrift as String
ueberschrift = "PAL " & vbCrLf & " Anzahl"
Einen Zeilenumbruch innerhalb einer Excelformel lässt sich einfach einrichten
ZEICHEN(10)
Man kommt um die Verwendung eines Datums in der Programmierung nicht drumrum – da ich normalerweise Java programmiere, muss ich in VBA oft die einfachsten Syntaxfragen recherchieren. Diese möchte ich unter anderem in diesem Beitrag dokumentieren, um sie beim „nächsten Mal“ einfach nachschlagen zu könen 🙂
Die Deklaration eines Datums ist denkbar einfach – man deklariert es so wie man es in Excel in eine Zelle eingeben würde:
dim myDate as Date
myDate = „17.01.2019“
Von einer Range auf die Spaltennummer konvertieren
dim spaltennr as integer
spaltennr = Columns(„AB“).Column
Um mit VBA zulässige Werte einzuschränken, bedient man sich idealerweise der nachfolgenden Einstellungen:
'Festlegen, dass nur E und T zulässige Eingabewerte sind.
Range(Cells(x, EMAIL_TELEFON_SPALTE).Address(RowAbsolute:=False, ColumnAbsolute:=False)).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="E,T"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
In meinen Tabellen muss ich regelmäßig „Einstellungen“ und valide Werte auslesen.
Anfänglich geschah das mit Einlesen der Werte manuell in ein Array – besser geht es jedoch indem ich mit „Dictionarys“ arbeite.
' Für 2 Dimensionen wird aus angegebenen Startpunkt für die Anzahl der Zeilen ein Range festgelegt
Public Function getDictionaryFromRange(Worksheet As String, rangeValue As String, numberOfLines As Integer) As Scripting.Dictionary
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary
Dim settingsArray As Variant
Dim i As Integer
settingsArray = ThisWorkbook.Sheets(Worksheet).Range(rangeValue).value
For i = 1 To numberOfLines
Dim key As String
Dim value As Variant
key = settingsArray(i, 1)
value = settingsArray(i, 2)
If (isEmpty(key) = False And isEmpty(value) = False) Then
dict.Add key, value
End If
Set getDictionaryFromRange = dict
Next
End Function
Für das Funktionieren der Dictionarys ist bei den Verweisen die Microsoft Scripting Runtime erforderlich:
Im nachfolgenden Link findet ihr eine gute Anleitung zum Thema Dictionary: