AW: CommandButton mit 2 Makros
28.03.2021 12:18:59
Daniel
hi
die Variable bolSort muss beim nächsten Aufruf ja den Wert haben, der ihr bei der letzten Ausführung des Makros zugewiesen wurde.
Das funktioniert so nicht, weil so wie du hier die Variable angelegt hast (Dim bolSort innerhalb des Makros) diese Variable bei jedem Start des Makros zunächst einmal leer ist bzw mit False belegt ist (Leer = False bei boolean-Variablen) und die gemachte Zuweisung bei Makroende vergessen wird.
um das von dir gewünschte zu erreichen, darf der Inhalt der Variablen nicht vergessen werden, sondern er muss gespeichert werden.
Dazu gibt es zwei verschiedene Wege
a) Variable statisch anlegen, hierzu "Static" statt "Dim" verwenden:
Private Sub CommandButton11_Click()
Static bolSort As Boolean
If bolSort Then
Call SortiereOriginaltitelAZ
bolSort = False
Else
Call SortierenOriginaltitelZA
bolSort = True
End If
End Sub
b) Variable als Modul- oder Projektweit gültige Variable anlegen (wurde schon gezeigt)
hierzu muss sie außerhalb des Makros deklariert werden (innerhalb des Makros darf sie dann nicht mehr deklariert werden)
Option Explicit
Dim bolSort As Boolean
Private Sub CommandButton11_Click()
If bolSort Then
Call SortiereOriginaltitelAZ
bolSort = False
Else
Call SortierenOriginaltitelZA
bolSort = True
End If
End Sub
bei Variante b) kann diese Variable auch von anderen Makros verwendet werden, falls dies benötigt wird.
Gruß Daniel