VBA - Letzte Zelle einer Spalte in ausgeblendetem Tabellenblatt

16/07/2008 - 11:08 von Claudia | Report spam
Hallo Excel-Freaks,

ich habe hier eine "Herausforderung", die ich nicht gebacken bekomme.
Wàre schön, wenn mir jemand helfen könnte.

Folgender Hintergrund:
Ich habe eine Tabelle (Test), in der für verschiedene Bereiche
Beschriftungen, Druckbereich und auszublendende Spalten in die Tabelle
als Werte eingetragen sind. Die Tabelle sieht ungefàhr so aus:

Spalte A Spalte B
Spalte C
Beschriftung Dialog Bericht1 Bericht2
Druckbereich $A$1:$FM$79 $A$1:$FM$79
Auszublendende Spalten H:I G:I
K:K K:Q
N:Q S:W
AE:AF AB:AH
AL:AL
AN:AQ
AS:AS
AY:AY
BO:BP

Über ein Dialogfenster wàhlt der Anwender Bericht1 oder Bericht2 bzw.
weitere aus, dann kommt die Spalte, die verwendet werden soll als
Variable (drSpalte) mit. Die Tabelle Test ist standardmàßig
ausgeblendet.

Mein Makro soll dann in der gewàhlten Spalte der Tabelle Test die
letzte Zeile ermitteln, per Schleife den Inhalt auswàhlen und die
entsprechenden Spalten für den Druck ausblenden. Mein Makro sieht so
aus:

Dim i
Dim MeinZ
Dim drSpalteEnde
Dim spAusblend as string

'Tabellenblatt Test einblenden
ThisWorkbook.Sheets("Test").Visible = True
' Letzte Zeile in der ausgewàhlten Spalte ermitteln
Sheets("Test").Activate
Range(drSpalte).End(xlDown).Select
drSpalteEnde = ActiveCell.Row

' Spalten ausblenden, wie in Tabellenblatt Auswahl angegeben
For i = 1 To drSpalteEnde
Set MeinZ = Worksheets("Auswahl").Cells(Range(drSpalte).Row +
i, Range(drSpalte).Column)
MeinZ = MeinZ.Address(False, False)
spAusblend = Range(MeinZ).Text

ThisWorkbook.Sheets("DABA").Columns(spAusblend).EntireColumn.Hidden True
Next i

Ich habe zwei Probleme damit:
- Das ich die verborgene Tabelle Test einblenden muss, ist klar, aber
ich möchte eigentlich nicht mit der Select-Methode arbeiten, sondern
die letzte Zeile ermitteln, ohne das der Cursor direkt in die Tabelle
Test muss.
- Die Variable spAusblend, in der dann die auszublendenden Spalten
geschrieben werden, klappt nicht, beim
Columns(spAuslbend).entireColumn.Hidden bekomme ich eine
Fehlermeldung.

Hintergrund für das versteckte Tabellenblatt ist, das jemand ohne VBA-
Kenntnisse die Druckbereich variabel gestalten soll, der versierte
Anwender kann hier dann noch weitere Bereiche definieren, indem er
weitere Spalten entsprechend füllt.

Vielen Dank für Eure Hilfe
Grüße
Claudia
 

Lesen sie die antworten

#1 Claus Busch
16/07/2008 - 11:25 | Warnen spam
Hallo Claudia,

Am Wed, 16 Jul 2008 02:08:28 -0700 (PDT) schrieb Claudia:

Ich habe zwei Probleme damit:
- Das ich die verborgene Tabelle Test einblenden muss, ist klar, aber
ich möchte eigentlich nicht mit der Select-Methode arbeiten, sondern
die letzte Zeile ermitteln, ohne das der Cursor direkt in die Tabelle
Test muss.
- Die Variable spAusblend, in der dann die auszublendenden Spalten
geschrieben werden, klappt nicht, beim
Columns(spAuslbend).entireColumn.Hidden bekomme ich eine
Fehlermeldung.



um die letzte belegte Zeile in dem Blatt Test zu ermitteln, musst du es
*nicht* einblenden. Du musst nur genau referenzieren. Die Zeilennummer
der letzten belegten Zeile könntest du so errechnen lassen:
Dim LRow As Long

With Sheets("Test")
LRow = .Cells(Rows.Count, drSpalte).End(xlUp).Row
End With


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate

Ähnliche fragen