Spalten löschen mit VBA

Bild

Betrifft: Spalten löschen mit VBA
von: Hans-Werner
Geschrieben am: 25.05.2015 12:50:30

Hallo an alle VBA-Spezialisten,
leider habe ich zu folgendem Problem noch keine Lösung gefunden/bekommen, daher meine erneute, dringende Anfrage:
Wie lösche ich in einem Makro Spalten aus einer Tabelle, so dass Shapes in den nachfolgenden Spalten mit ihrer Formatierung in den Bereich der gelöschten Spalten verschoben werden?
Bisher funktioniert das nur, wenn im VBA-Editor der Programmcode ausgeführt wird (und vor der Zeile mit dem Löschbefehl ein Programmhalt eingebaut ist, so dass dieser Löschbefehl manuell angestossen wird).
Hier der Löschbefehl:
Range(Columns(lspalte - 1 - Range("D1").Value), Columns(rspalte_z + 1)).Delete
Gruß
Hans-Werner

Bild

Betrifft: AW: Spalten löschen mit VBA
von: Daniel
Geschrieben am: 25.05.2015 13:44:55
Hi
check mal die Eigenschaften der Shapes (Kontextmenü - Form formatieren - Eigenschaften).
die sollte nicht "von Zellposition und Grösse unabhängig" sein.
Gruß Daniel

Bild

Betrifft: AW: Spalten löschen mit VBA
von: Hans-Werner
Geschrieben am: 26.05.2015 17:24:39
Hallo Daniel und alle anderen,
das Problem hat sich wie folgt lösen lassen:
mit Hilfe eines anderen Threads zum Thema "Pause während der Ausführung des Codes einbauen"
muss der o.g. Löschbefehl für die Zwischenspalten in eine Unterroutine gepackt werden und der Aufruf über eine "Wartefunktion" aufgerufen werden:
Application.OnTime Now + TimeSerial(0, 0, 1), "weiter_machen"

Sub weiter_machen()
   Range(Columns(lspalte - 1 - Range("D1").Value), Columns(rspalte_z + 1)).Delete
End Sub
Hier wird eine Wartezeit von 1 Sekunde eingebaut, in der das Löschen und Neupositionieren der Shapes im Unterprogramm "weiter_machen" vorgenommen wird. Danach alles wunderschön, auch ohne Eigenschaftenänderung der Shapes.
Danke
HaWe

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Spalten löschen mit VBA"