Frage von xXSnip3rXx, 86

Excel macro Spalten Zuordnung?

Hi, Ich habe mehrere macros die Spalten ausblenden. Wenn ich nun vorne aber eine Spalte hinzufüge verschiebt sich ja alles um 1 Spalte. Jedoch verschieben sich die macro nicht mit ... ist das möglich das die macro "merken" das ihr Inhalt verschoben wurde. Wenn ja wie?

MFG Tim

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Oubyi, Community-Experte für Excel, 63

Haben die Spalten, die von den Makros ausgeblendet werden, vielleicht feste Überschriften? Dann lasse die Makros nach den Überschriften suchen und blende die Spalten anhand dieser Infos aus, statt feste Spalten zu nutzen.
Wäre das eine Möglichkeit für Dich?

Kommentar von xXSnip3rXx ,

Momentan haben die Spalten keine Überschrift... aber das lässt sich ja ändern ... wie würde denn das macro dann aussehen ? habe meins nur per "macro aufzeichnen" und tipps ausm Netz zusammen gewürfelt ... bin in vba also noch nicht ""on der Materie""

Kommentar von Oubyi ,

Ich kann Dir mal ein Snippet zeigen:

Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Range("A1:Z1")
For Each Zelle In Bereich
If Zelle.Value = "Überschrift1" Then
Zelle.EntireColumn.Hidden = True
End If
Next Zelle

Damit wird jede Spalte ausgeblendet, in der in Zeile 1 "Überschrift1" steht.
Versuche mal das einzubauen. Sonst zeige mal Dein aufgenommenes Makro und schreibe, WO die Überschriften stehen.
Ich muss jetzt allerdings zur Arbeit, schaue aber morgen wieder rein.
Es kann aber auch gut sein, dass Dir inzwischen ein anderer Experte hier weiter hilft.

Kommentar von Iamiam ,

kürzer (in einer Zeile, aber Namen vorzubereiten):

vergib NAMEN für die einzelnen auszublendenden Spalten.

In VBA machen "wandernde" Adressen sonst tatsächlich einige Schwierigkeiten.

Range("Name").entirecolumn.hidden = true

Kommentar von Iamiam ,

Ergänzung: Der benannte Bereich braucht nur 1 Zelle zu umfassen, kann aber auch über mehrere Spalten gehen: dann werden alle betroffenen Spalten ausgeblendet (Kombi-Bereiche hab ich jetzt nicht ausprobiert, kannst Du selbst machen)

Im übrigen ist jede Such-/Adressfunktion, die xl direkt macht, gegenüber einem VBA-ForEach-Befehl um Größenodnungen schneller. Grund: VBA-Befehle müssen erst über den VBA-Interpreter laufen, also über mehrere Listen identifiziert werden und das bei jedem Befehl wieder.

auch find/findnext wäre noch deutlich schneller (aber da kann ich mir die Syntax nie merken...)

Spielt allerdings nur bei umfangreichen Tabellen eine Rolle.

Kommentar von xXSnip3rXx ,

Danke für euch beiden schonmal für die antworten :) kann dies jedoch erst leider am Di  ausprobieren ... da ich nun 2 Tage Berufsschule habe und zuhause kein excel habe.. 

aber danke schonmal :) werde rückmeldung geben

Ps: Nur damit ihr wisst was die Macros im Grunde bewirken: Sie Blenden Einzeln per Button alle Monate von 2015 - 2017 oder ein kompletes jahr von denen (2015 / 2016 / 2017 aus oder ein.

Kommentar von Oubyi ,

Danke fürs

Expertenantwort
von Iamiam, Community-Experte für Excel, 34

Formal, vllt verhilfts zu einer Rückmeldung per Hilfreichste...

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten