Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
600to604
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spreadsheet und Scrollbars

Spreadsheet und Scrollbars
18.04.2005 14:04:19
{Boris}
Hi Leute,
ich lese Daten in ein Spreadsheet ein mit (sinngemäß):

Private Sub UserForm_Initialize()
Dim rngCur As Range
Dim rngTarget As Object
Set rngCur = Worksheets("Auswertung").Range("A1").CurrentRegion
With Me.Spreadsheet1
Set rngTarget = .Cells.Range(rngCur.Address)
.ViewableRange = rngCur.Address
.DisplayColHeaders = False
.DisplayRowHeaders = False
.DisplayTitleBar = False
.DisplayToolbar = False
.Columns.AutoFitColumns
End With
End Sub

Jetzt kann es sein, dass der Tabellenbereich (rngCur) nur 6 Spalten und 9 Zeilen umfasst - und daher ein scrollen im Spreadsheet nicht notwendig ist, da sowieso alles sichtbar ist.
Für diesen Fall möchte ich die Scrollbars erst gar nicht anzeigen respektive ausblenden mit

.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False

Andernfalls sollen die Bars natürlich vorhanden sein.
Geht das? Wenn ja: Wie?
Danke und Grüße
Boris

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spreadsheet und Scrollbars
18.04.2005 14:19:03
Uduuh
Hallo Boris,
ob man die Scrollbars ein- und ausblenden kann, weiß ich nicht, da ich mich mit Spreadsheets noch nicht befasst habe.
Du kannst doch die Anzahl der Spalten und Zeilen von rngCur abfragen (rngCur.Rows.Count/ .Columns.Count) und die Eigenschaften entsprechend setzen, falls das geht.
Gruß aus'm Pott
Udo
AW: Spreadsheet und Scrollbars
18.04.2005 14:24:53
Dr.
Mal ne blöde Frage, aber die Begriffe werden sicher häufig verwechselt oder synonym verwandt. Worin besteht denn der Unterschied zwischen einem Spreadsheet und einem Worksheet?
Spreadsheet / Worksheet
18.04.2005 14:28:03
Boris
Hi Dr.,
...ich meine hier das Spreadsheet aus den zusätzlichen Steuerelementen. Das hat übrigens 702 Spalten ;-) (falls mal im Worksheet Knappheit dieserhalb herrschen sollte)...
Grüße Boris
Anzeige
AW: Spreadsheet / Worksheet
18.04.2005 14:28:48
Dr.
besten Dank!
AW: Spreadsheet und Scrollbars
18.04.2005 14:28:42
u_
Hallo,
ein Spreadsheet ist ein Steuerelement in einer UserForm und sieht ähnlich aus wie ein Worksheet.
Gruß
Ganz so einfach ist es leider nicht...
18.04.2005 14:26:15
{Boris}
Hi Udo,
...danke erstmal für Deine Antwort.
Vorweg:
Ja, man kann die Bars ausblenden - wie bereits beschrieben - mit:

.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False

Weiter im Text:
Aufgrund dessen, dass ich die Spalten auch noch an die optimale Breite anpasse (.Columns.AutoFitColumns), weiss ich nicht, wieviele Spalten in meinem Spreadsheet sichtbar sein werden, da die Spaltenbreiten von Aufruf zu Aufruf stark variieren können.
Oder kann die Summe der Spaltenbreiten in Pixeln möglicherweise ein sicheres Indiz sein? Oder geht es doch noch irgendwie anders?
Grüße Boris
Anzeige
AW: Spreadsheet und Scrollbars
18.04.2005 14:31:52
K.Rola
Hi Boris,
vergleich doch einfach UsedRange und VisibleRange.
Gruß K.Rola
Hilf mir doch bitte noch runter vom Schlauch...
18.04.2005 14:43:10
Boris
Hi K.Rola,
...und berücksichtige bitte dabei meine höchst bescheidenen VBA-Kenntnisse...
Wie ermittel ich denn im Spreadsheet den UsedRange und den VisibleRange?
Gefunden hab ich (dank Intellysense) den ViewableRange - aber der hilft mir hier doch nicht weiter.
Falls von Interesse: Mein Userform ist nicht bildschirmfüllend, sondern soll maximal 2/3 bedecken.
Bitte lass mich nicht dumm sterben :p ...
Danke und Grüße
{Boris}
AW: Hilf mir doch bitte noch runter vom Schlauch...
18.04.2005 14:50:19
K.Rola
Hi Boris,
"...und berücksichtige bitte dabei meine höchst bescheidenen VBA-Kenntnisse..."
Das nennt man wohl tiefstapeln, oder?
MsgBox Spreadsheet1.ActiveSheet.VisibleRange.Rows.Count
MsgBox Spreadsheet1.ActiveSheet.UsedRange.Rows.Count
usw. für Columns
Gruß K.Rola
Anzeige
AW: Hilf mir doch bitte noch runter vom Schlauch...
18.04.2005 15:08:40
Uduuh
Hallo,
das klappt so nicht. Methode oder Datenbankobjekt nicht gefunden.
Mein Vorschlag:
nach dem Autofit:
with spreadsheet1
if .range(rngCur.Address).width &gt.width-30 then
.displayhorizontalscrollbar=true
else
.displayhorizontalscrollbar=false
end with
-30 wg.Zeilenkopf und verticalscrollbar. Vielleicht noch optimieren.
Gruß aus'm Pott
Udo
AW: Hilf mir doch bitte noch runter vom Schlauch...
18.04.2005 15:26:55
K.Rola
Hallo,
nicht nachvollziehbar, warum das nicht klappen sollte.
Gruß K.Rola
Super - funktioniert wunderbar...
18.04.2005 15:32:09
{Boris}
Hi K.Rola,
im Endergebnis:

Private Sub UserForm_Initialize()
Dim rngCur As Range, rngTarget As Object
Dim bolVBar As Boolean, bolHBar As Boolean
Set rngCur = Worksheets("Auswertung").Range("A1").CurrentRegion
Me.Caption = "Auswertung"
With Me.Spreadsheet1
Set rngTarget = .Cells.Range(rngCur.Address)
.ViewableRange = rngCur.Address
rngTarget.Value = rngCur.Value
.DisplayColHeaders = False
.DisplayRowHeaders = False
.DisplayTitleBar = False
.DisplayToolbar = False
rngTarget.Rows(1).Font.Bold = True
.Columns.AutoFitColumns
bolHBar = .ActiveSheet.VisibleRange.Columns.Count >= .ActiveSheet.UsedRange.Columns.Count
bolVBar = .ActiveSheet.VisibleRange.Rows.Count >= .ActiveSheet.UsedRange.Rows.Count
.DisplayHorizontalScrollBar = Not bolHBar
.DisplayVerticalScrollBar = Not bolVBar
Me.Label1.Caption = rngCur.Rows.Count - 1
End With
End Sub

Danke nochmals!
Grüße Boris
Anzeige
Und noch etwas "entkompliziert"...
18.04.2005 15:43:57
Boris
...denn auf "Nicht WAHR" abzufragen kann man ja auch einfach umdrehen:

Private Sub UserForm_Initialize()
Dim rngCur As Range, rngTarget As Object
Dim bolVBar As Boolean, bolHBar As Boolean
Set rngCur = Worksheets("Auswertung").Range("A1").CurrentRegion
Me.Caption = "Auswertung"
With Me.Spreadsheet1
Set rngTarget = .Cells.Range(rngCur.Address)
.ViewableRange = rngCur.Address
rngTarget.Value = rngCur.Value
.DisplayColHeaders = False
.DisplayRowHeaders = False
.DisplayTitleBar = False
.DisplayToolbar = False
rngTarget.Rows(1).Font.Bold = True
.Columns.AutoFitColumns
With .ActiveSheet
bolHBar = .VisibleRange.Columns.Count < .UsedRange.Columns.Count
bolVBar = .VisibleRange.Rows.Count < .UsedRange.Rows.Count
End With
.DisplayHorizontalScrollBar = bolHBar
.DisplayVerticalScrollBar = bolVBar
Me.Label1.Caption = rngCur.Rows.Count - 1
End With
End Sub

Also - funktioniert perfekt!
Grüße Boris
Anzeige
AW: "entkompliziert"..."verkleinert"
18.04.2005 16:46:52
EtoPHG
Hallo Boris,
Oder ganz ohne Variablen:

Private Sub UserForm_Initialize()
Dim rngCur As Range, rngTarget As Object
Set rngCur = Worksheets("Auswertung").Range("A1").CurrentRegion
Me.Caption = "Auswertung"
With Me.Spreadsheet1
Set rngTarget = .Cells.Range(rngCur.Address)
.ViewableRange = rngCur.Address
rngTarget.Value = rngCur.Value
.DisplayColHeaders = False
.DisplayRowHeaders = False
.DisplayTitleBar = False
.DisplayToolbar = False
rngTarget.Rows(1).Font.Bold = True
.Columns.AutoFitColumns
.DisplayHorizontalScrollBar = (.ActiveSheet.VisibleRange.Columns.Count < .ActiveSheet.UsedRange.Columns.Count)
.DisplayVerticalScrollBar = (.ActiveSheet.VisibleRange.Rows.Count < .ActiveSheet.UsedRange.Rows.Count)
Me.Label1.Caption = rngCur.Rows.Count - 1
End With
End Sub

Gruss Hansueli
Anzeige
Das ist schon klar...
18.04.2005 17:19:07
{Boris}
Hi Hansueli,
...aber das ist schon eine Angewohnheit von mir (mit Variablen zu arbeiten), da ich halt oft (hier grad nicht) auf verschiedene Variablen innerhalb einer Prozedur wieder zurückgreife. Erspart Schreibarbeit, ist imho übersichtlicher und bringt Performance, da ein und das Selbe nicht immer wieder berechnet werden muss.
Gruß Boris
Nachfrage Spreadsheet allgemein
18.04.2005 16:14:51
{Boris}
Liebste K.Rola, (und natürlich auch Hi @ all),
...wo kann man denn mal nachlesen, worin die entscheidenden Unterschiede zwischen Spreadsheet und Worksheet bestehen?
Was kann ich also im Spreadsheet machen, was im Worksheet wiederum nicht - und vice versa.
Oder gibt es ein paar Highlights, die du direkt mal auf Lager hast?
G & =WENN(Antworter="K.Rola";"K";"")
Boris
Anzeige
AW: Nachfrage Spreadsheet allgemein
18.04.2005 16:24:11
K.Rola
Hi Boris,
da meine Excelkenntnisse bescheiden sind, kann ich deine Formel nur ansatzweise deuten.
Wenn du ein userform nichtmodal anzeigst, kannst du die toolbox in der toolbar nutzen.
Dort siehst du fast alle Möglichkeiten, die bei einem SS bestehen. Die sind verglichen
mit einem Worksheet eher bescheiden.
Gruß K.Rola
Merci beacoup...
18.04.2005 16:34:23
Boris
Meine Teuerste,
="Gruß "&LINKS("und "&ZEICHEN(75)&ZEICHEN(117)&ZEICHEN(115)&ZEICHEN(115);8*(A1="K.Rola"))
Boris
Schnell noch ein "u" gekauft...oT
18.04.2005 16:36:34
Boris
AW: Enigma...
18.04.2005 20:29:25
FP
Hallo Boris,
... war eine Chiffriermaschine. Meine Frage: Was steht in A1?
in A2 bitte diese Formel eintragen:
{=WENN(SUMME(CODE(0&TEIL(A1;SPALTE(1:1);1)))=12288;ZEICHEN(CODE(TEIL("M~)ju}n{)\lq€n{nwÿ}n{";ZEILE(A1);1))-(MAX(2,5;LÄNGE(A$1))*2-5));"")}
und bis A22 hinunterziehen.
Servus aus dem Salzkammergut
Franz
Anzeige
Du alter Schwerenöter...
18.04.2005 22:45:19
Boris
Hi Franz,
...woher soll ich das denn wissen?
Aus dem Kauderwelsch wird doch keine Sau schlau...
Grüße Boris
AW: Du alter Schwerenöter...
18.04.2005 23:01:35
FP
Hallo Boris,
dass Du meinen Satz dechiffrieren kannst habe ich mir schon gedacht ;-)
und in A1 steht ein Name mit 5 Buchstaben, davor und dahinter so komische Zeichen ... ;-)
der User flirtet übrigens immer mit einer gewissen K.R... :D
Servus aus dem Salzkammergut
Franz
Genau - {Franz} ....
18.04.2005 23:11:13
Boris
...stand da in A1 - und siehe da: Es hat gepasst ;-)
Grüße Boris
AW: Genau - {Franz} ....
18.04.2005 23:18:52
FP
Hallo Boris,
Zufälle gibt's :D :D :D
allerdings hatte ich leider noch nicht das Vergnügen, die Dame kennen zu lernen :-(
Servus aus dem Salzkammergut
Franz
Anzeige
AW: Nachfrage Spreadsheet allgemein
18.04.2005 17:02:16
EtoPHG
Hallo Boris,
For more information about Office Web Components, see Chapter 12, "Using Web Technologies," in the Microsoft Office 2000/Visual Basic Programmer's Guide.
Gruss Hansueli
AW: Spreadsheet und Scrollbars
18.04.2005 14:42:57
K.Rola
Hi Boris,
wenn du das Spreadsheet 10.0 verwendest, sind es sogar 18278 Spalten und 262144 Zeilen.
Gruß K.Rola

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige