ist es möglich die ScrollArea eines Tabellenblatts mit Hilfe von Variablen festzulegen?
Ich habe mir das in etwa so vorgestellt:
Zunächst bestimme ich die maximale Anzahl an verwendeten Zeilen in einem Bereich und speicher den Zeilenindex in einer Long-Variablen:
Dim maxZeilen As Long
For Each Zelle In Bereich
If Zelle.Value = „“ Then
maxZeilen = Zelle.Row
Exit For
End If
Next Zelle
Dann möchte ich die ScrollArea anpassen:
Tabelle1.ScrollArea = „$B$3:blush:B$“ & maxZeilen
Leider bekomme ich da eine Fehlermeldung: „…Methode für das Objekt […] ist fehlgeschlagen.“
Könnt ihr mir bitte sagen wie ich das anders lösen kann?
Ich habe die Anweisung mit der ScrollArea ausprobiert und sie funktioniert.
For Each Zelle In Bereich
Was ist denn „Bereich“? Hast Du das hier nur so geschrieben, oder verwendest Du diese Variable tatsächlich so in Deinem Code?
Wenn „Bereich“ nicht irgendwo definiert ist, dann wird das Ergebnis Deiner For-Each-Next-Schleife möglicherweise 0 sein.
Ich habe die Anweisung mit der ScrollArea ausprobiert und sie
funktioniert.
Das ist seltsam. Wie gesagt, bei mir kommt eine Fehlermeldung. Hast Du das genauso gemacht wie ich beschrieben habe?
For Each Zelle In Bereich
Was ist denn „Bereich“? Hast Du das hier nur so geschrieben,
oder verwendest Du diese Variable tatsächlich so in Deinem
Code?
Sowohl „Zelle“ als auch „Bereich“ habe ich vorher natürlich als Variable deklariert.
Dim Zelle, Bereich As Range
Set Bereich = Tabelle1.Range(„B:B“)
Wenn „Bereich“ nicht irgendwo definiert ist, dann wird das
Ergebnis Deiner For-Each-Next-Schleife möglicherweise 0 sein.
Die For-Schleife funktioniert einwandfrei. In meiner Variablen „maxZeilen“ wird der Index der letzten verwendeten Zeile gespeichert. Das habe ich geprüft…
Kannst Du bitte Deinen Code posten. Werde dann nochmal mit meinem vergleichen.
Das ist seltsam. Wie gesagt, bei mir kommt eine Fehlermeldung.
Dim Zelle, Bereich As Range
Set Bereich = Tabelle1.Range(„B:B“)
Dim maxZeilen As Long
For Each Zelle In Bereich
If Zelle.Value = „“ Then
maxZeilen = Zelle.Row
Exit For
End If
Hi Thomas,
besteht Tabellenblattschutz o.ä.?
probiers mal so(ab XL2000 wegen IIf):
Sub tt()
Dim maxZeilen As Long
with worksheets("Tabelle1")
maxZeilen=iif(.cells(rows.count,2)"",rows.count,.cells(rows.count,2).end(xlup).row)
.scrollarea="B1:B" & maxZeilen
end with
End Sub
habe die Fehlermeldung nur aufgrund eines sehr dummen Fehlers meinerseits bekommen. Der Code, so wie ich ihn am Anfang beschrieben habe, funktioniert tatsächlich einwandfrei.
Die Variable ‚maxZeilen‘ wird bei mir während des Ereignisses Workbook_Open gespeichert. Da ich die Codezeile ‚Tabelle1.ScrollArea = „B1:B“ & maxZeilen‘ aber ausprobiert habe während das Programm schon lief, kann das natürlich nicht funktionieren. Nach erneutem Programmstart war alles kein Problem mehr…