Ich versuche gerade meinen Code von den unötigen Select zu befreien. Jetzt komme ich aber an eine Stelle, die ich nicht hinbekomme.
Ich möchte einen Bereich von Spalten ausblenden. Der Bereich ist von einer Variablen i abhängig.
Ich hatte immer erst ein TabelleX.Select und dann in der nächsten Zeile Range....
Jetzt hab ich es soweit verbessert:
Sub Spalten()
i = Tabelle10.Range("A3").Value
If i
Für Tabelle 10 funktioniert es (Ist bei Aufruf des Makros über CommandButton aktiv)
Bei Tabelle 15 kommt jetzt aber der Laufzeitfehler '1004' - Anwendungs- oder objektdefinierter Fehler
Ich hatte bemerkt, dass er Range nur nach Select richtig benutzt.
Wenn ich statt desen nur Rows (Bereich) und Columns (einzelne Spalte) nehme geht es sonst wie oben. Nur leider will er bei Columns unbedingt die Buchstaben, wenn ich einen Bereich ausblenden will.
Geht:
Tabelle16.Rows(i + 5 & ":" & 44).EntireRow.Hidden = True
Tabelle10.Columns("A:AO").EntireColumn.Hidden = False
Tabelle11.Columns(6).EntireColumn.Hidden = True
Geht nicht:
Tabelle15.Columns(i + 2 & ":" & 41).EntireColumn.Hidden = True
Tabelle15.Range(Cells(1, i + 2), Cells(1, 41)).EntireColumn.Hidden = True
Geht dagegen schon:
Tabelle15.Select
Range(Columns(i + 2), Columns(41)).EntireColumn.Hidden = True
oder
Tabelle15.Select
Range(Cells(1, i + 2), Cells(1, 41)).EntireColumn.Hidden = True
Vielleicht hat von euch einer Idee, warum ich es nicht zum Laufen kriege. Oder bin ich jetzt wirklich an einem Punkt angelangt, wo man Select "braucht"?!
Gruss Marc