Spreadsheet und Scrollbars

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm Label ScrollBar MsgBox
Bild

Betrifft: Spreadsheet und Scrollbars
von: {Boris}
Geschrieben am: 18.04.2005 14:04:19
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
Bild

Betrifft: AW: Spreadsheet und Scrollbars
von: Uduuh
Geschrieben am: 18.04.2005 14:19:03
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
Bild

Betrifft: AW: Spreadsheet und Scrollbars
von: Dr.
Geschrieben am: 18.04.2005 14:24:53
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?
Bild

Betrifft: Spreadsheet / Worksheet
von: Boris
Geschrieben am: 18.04.2005 14:28:03
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
Bild

Betrifft: AW: Spreadsheet / Worksheet
von: Dr.
Geschrieben am: 18.04.2005 14:28:48
besten Dank!
Bild

Betrifft: AW: Spreadsheet und Scrollbars
von: u_
Geschrieben am: 18.04.2005 14:28:42
Hallo,
ein Spreadsheet ist ein Steuerelement in einer UserForm und sieht ähnlich aus wie ein Worksheet.
Gruß
Bild

Betrifft: Ganz so einfach ist es leider nicht...
von: {Boris}
Geschrieben am: 18.04.2005 14:26:15
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
Bild

Betrifft: AW: Spreadsheet und Scrollbars
von: K.Rola
Geschrieben am: 18.04.2005 14:31:52
Hi Boris,
vergleich doch einfach UsedRange und VisibleRange.
Gruß K.Rola
Bild

Betrifft: Hilf mir doch bitte noch runter vom Schlauch...
von: Boris
Geschrieben am: 18.04.2005 14:43:10
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}
Bild

Betrifft: AW: Hilf mir doch bitte noch runter vom Schlauch...
von: K.Rola
Geschrieben am: 18.04.2005 14:50:19
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
Bild

Betrifft: AW: Hilf mir doch bitte noch runter vom Schlauch...
von: Uduuh
Geschrieben am: 18.04.2005 15:08:40
Hallo,
das klappt so nicht. Methode oder Datenbankobjekt nicht gefunden.
Mein Vorschlag:
nach dem Autofit:
with spreadsheet1
if .range(rngCur.Address).width >.width-30 then
.displayhorizontalscrollbar=true
else
.displayhorizontalscrollbar=false
end with
-30 wg.Zeilenkopf und verticalscrollbar. Vielleicht noch optimieren.
Gruß aus'm Pott
Udo
Bild

Betrifft: AW: Hilf mir doch bitte noch runter vom Schlauch...
von: K.Rola
Geschrieben am: 18.04.2005 15:26:55
Hallo,
nicht nachvollziehbar, warum das nicht klappen sollte.
Gruß K.Rola
Bild

Betrifft: Super - funktioniert wunderbar...
von: {Boris}
Geschrieben am: 18.04.2005 15:32:09
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
Bild

Betrifft: Und noch etwas "entkompliziert"...
von: Boris
Geschrieben am: 18.04.2005 15:43:57
...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
Bild

Betrifft: AW: "entkompliziert"..."verkleinert"
von: EtoPHG
Geschrieben am: 18.04.2005 16:46:52
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
Bild

Betrifft: Das ist schon klar...
von: {Boris}
Geschrieben am: 18.04.2005 17:19:07
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
Bild

Betrifft: Nachfrage Spreadsheet allgemein
von: {Boris}
Geschrieben am: 18.04.2005 16:14:51
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
Bild

Betrifft: AW: Nachfrage Spreadsheet allgemein
von: K.Rola
Geschrieben am: 18.04.2005 16:24:11
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
Bild

Betrifft: Merci beacoup...
von: Boris
Geschrieben am: 18.04.2005 16:34:23
Meine Teuerste,
="Gruß "&LINKS("und "&ZEICHEN(75)&ZEICHEN(117)&ZEICHEN(115)&ZEICHEN(115);8*(A1="K.Rola"))
Boris
Bild

Betrifft: Schnell noch ein "u" gekauft...oT
von: Boris
Geschrieben am: 18.04.2005 16:36:34

Bild

Betrifft: AW: Enigma...
von: FP
Geschrieben am: 18.04.2005 20:29:25
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
Bild

Betrifft: Du alter Schwerenöter...
von: Boris
Geschrieben am: 18.04.2005 22:45:19
Hi Franz,
...woher soll ich das denn wissen?
Aus dem Kauderwelsch wird doch keine Sau schlau...
Grüße Boris
Bild

Betrifft: AW: Du alter Schwerenöter...
von: FP
Geschrieben am: 18.04.2005 23:01:35
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
Bild

Betrifft: Genau - {Franz} ....
von: Boris
Geschrieben am: 18.04.2005 23:11:13
...stand da in A1 - und siehe da: Es hat gepasst ;-)
Grüße Boris
Bild

Betrifft: AW: Genau - {Franz} ....
von: FP
Geschrieben am: 18.04.2005 23:18:52
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
Bild

Betrifft: AW: Nachfrage Spreadsheet allgemein
von: EtoPHG
Geschrieben am: 18.04.2005 17:02:16
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
Bild

Betrifft: AW: Spreadsheet und Scrollbars
von: K.Rola
Geschrieben am: 18.04.2005 14:42:57
Hi Boris,
wenn du das Spreadsheet 10.0 verwendest, sind es sogar 18278 Spalten und 262144 Zeilen.
Gruß K.Rola
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Spreadsheet und Scrollbars"