Manchmal habe ich das Gefühl, der Haushalt macht das extra.

Hallo René

Ich hätte eine kurze Frage, sofern ich Dich kurz stören darf.

Leider schaffe ich es nicht ein Steuerungselement in im Cockpit einzubauen, so dass man Makro „harte Werte“ auch so starten kann?

Danke schon mal für Deine Hilfe

Hallo Andi,

kurze Frage – kurze Antwort:

BITTE NICHT!

Ich finde in Tabelle5 (Cockpit) ein Makro „HarteWerte“, ich finde ein Modul „HarteWerte“ und darin ein weiteres Makro „HarteWerte“. Die Namen müssen eindeutig sein – sonst gibt es Kuddelmuddel!

Und: Ich habe die Zeile korrigiert:

Set rng = Tabelle4.Range(Tabelle4.Range(„A1“), Tabelle4.Range(„A1“).SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible)

Bitte immer vollständig adressieren. Sonst läuft es an die Wand. Wenn du „A1“ schreibst, dann ist nicht klar welches A1 von welchem Blatt.

I ¤ non ASCII-characters

Letzte Woche in der Excel-VBA-Schulung. Um die Objekte näher zu bringen, beginne ich mit mit dem Makrorekorder. Wir zeichnen eine Reihe Befehle auf. Beispielsweise:

Füge in die Kopfzeile ein Bild ein:

ActiveSheet.PageSetup.RightHeaderPicture.Filename = _
„F:\Eigene Bilder\Bali\PIC00020.jpg“
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = „“
.PrintTitleColumns = „“
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = „“
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = „“
.CenterHeader = „“
.RightHeader = „&G“
.LeftFooter = „“
.CenterFooter = „“
.RightFooter = „“
[…]

Das Ergebnis:

Wir löschen das Bild und führen das Makro erneut aus. Das Ergebnis: nichts! Ein Blick in den Dialog „Seite einrichten“ zeigt jedoch, dass etwas in der Kopfzeile ist. Ein Bild?

Der Grund ist schnell gefunden: Die Zeile:

Application.PrintCommunication = False

„Gibt an, ob die Kommunikation mit dem Drucker aktiviert ist.“ Deshalb wird zwar das Bild eingefügt aber nicht angezeigt. Also: Zeile löschen – und schon funktioniert es. Manchmal (oft!?!) liefert der Makrorekorder eben doch nicht den besten Code …

Übrigens: auf der Microsoft-Seite findet sich folgende Erklärung:

„Legen Sie die PrintCommunication-Eigenschaft auf False fest, um die Ausführung von Code zu beschleunigen, der PageSetup-Eigenschaften festlegt. Legen Sie die PrintCommunication-Eigenschaft auf True fest, nachdem Sie Eigenschaften zum Ausführen eines Commits aller zwischengespeicherten PageSetup-Befehle festgelegt haben.“

Aha!

 

Wann geht es endlich weiter?

Heute in der VBA-Schulung ist uns folgende amüsante Sache aufgefallen:

In einer Datei – egal ob in der Personal.xlsb oder einer anderen beliebigen Makrodatei wird ein Makros geschrieben:

Sub Hinkelstein()
Application.Workbooks.Open „E:\Eigene Dateien\Comics\Asterix.xlsx“
MsgBox „Wo ist Obelix?“
End Sub

Legt man in den Optionen das Makro auf einen Shortcut – beispielsweise [Strg] + [q] gibt es keine Probleme.

Verwendet man jedoch [Strg] + [Shift] + [A], wird nur die erste Zeile ausgeführt – nach Öffnen der Datei bricht das Makro ab (auch bei längeren Makros). Muss ich das verstehen?

Nach Asterix ist Schluss

Nach Asterix ist Schluss