Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA: Spaltenbreite in Punkt angeben

840 views
Skip to first unread message

Gerhard Faehling

unread,
Apr 13, 2001, 2:46:36 PM4/13/01
to
Hallo zusammen,

ich stehe irgendwie auf dem Schlauch.

Eine Spaltenbreite mit ColumnWidth festlegen - kein Problem. Aber wie lautet
der komplette Befehl, wenn ich das mit Width machen möchte, damit ich die
Spaltenbreite in Punkt angeben kann?

Danke für jeden Hinweis

Gerhard


Frank-Reinhard Ullrich

unread,
Apr 17, 2001, 1:49:50 AM4/17/01
to

Gerhard Faehling schrieb:

> Eine Spaltenbreite mit ColumnWidth festlegen - kein Problem. Aber wie lautet
> der komplette Befehl, wenn ich das mit Width machen möchte, damit ich die
> Spaltenbreite in Punkt angeben kann?
>

Hallo Gerhard,

bei dem gleichen Problem hatte ich mir bei einer 'bekannten Spalte'
[d.h. : 'B' soll angepasst werden, 'A' liegt schon fest]
dort (bei'A') das Verhältnis WIDTH/COLUMNWIDTH berechnet und dann auf
die zu berechnende Spalte ('B') angewandt .
Holzhammer ;-)) , aber es geht.

Gruss
Frank-R.

Rolf R. Safferthal

unread,
Apr 17, 2001, 11:41:41 AM4/17/01
to
Hallo Herr Faehling,

die Befehle .width und .height gehen mit Range nicht, soweit mir bekannt ist.
Jedenfalls scheint das für Excel 97 zu gelten. (Auch wenn die Hilfe und Microsoft-
Handbücher was anderes behaupten.) Vielleicht ists ein Feature? :-)

Gruß

Rolf R. Safferthal

-----Originalnachricht-----
Hallo zusammen,

Danke für jeden Hinweis

Gerhard


.

Rolf R. Safferthal

unread,
Apr 17, 2001, 12:29:06 PM4/17/01
to
Hallo,

ich hab nochmal weiter geforscht und folgendes gefunden:
Gehen Sie mal mit F2 in den Objektkatalog und suchen Sie width im Kontext von
Range. Dann werden Sie finden, daß die Eigenschaften width und height im Range-
Kontext schreibgeschützt sind.

Beste Grüße

Rolf R. Safferthal
-----Originalnachricht-----
Hallo zusammen,

Danke für jeden Hinweis

Gerhard


.

Gerhard Faehling

unread,
Apr 17, 2001, 4:24:41 PM4/17/01
to
Hallo Rolf,

> ich hab nochmal weiter geforscht und folgendes gefunden:
> Gehen Sie mal mit F2 in den Objektkatalog und suchen Sie width
> im Kontext von Range. Dann werden Sie finden, daß die
> Eigenschaften width und height im Range-Kontext schreibgeschützt
> sind.

danke für Deine Mühe - immerhin weiß ich jetzt, daß dieser Weg nicht der
richtige ist.

Eigentlich geht es doch um eine ganz einfache Sache: Ich möchte einfach die
Spaltenbreite in Punkt oder Zentimetern angeben - es kann doch fast nicht
sein, daß das nicht möglich ist.

Sonst fällt mir als Alternative nur noch ein, daß man eine Spalte nimmt,
dann eine Breite von 10 einträgt, das per .Width ausliest und daraus den
Faktor errechnet und dann mit dem entsprechenden Faktor das wieder per
ColumnWidth eingibt. Aber wie lese ich das dann aus?


Viele Grüße

Gerhard


Konrad Hauke

unread,
Apr 17, 2001, 4:52:21 PM4/17/01
to
Hallo Gerhard Faehling,

die Width Eigenschaft einer Zelle kann nur gelesen werden. Folgende
Funktion setzt die Spaltenbreite in Pixel durch Annäherung als Ergebnis
wird die Ursprüngliche Spaltenbreite zurückgeliefert.

'----------------------------------------------------------------------
Public Function PixelColumnWidth(Cell As Range, Width As Long) As Long
Dim oldWidth As Long
Dim fWidth As Double

oldWidth = Cell.Width
fWith = Cell.Width

If fWidth < Width Then
Do
Cell.ColumnWidth = fWidth
fWidth = fWidth + 0.1
Loop While Cell.Width < Width
Else
Do
Cell.ColumnWidth = fWidth
fWidth = fWidth - 0.1
Loop While Cell.Width > Width
End If
PixelColumnWidth = oldWidth
End Function

'----------------------------------------------------------------------
_________________
/ \
/ -- EXCEL & VBA -- \
/ - http://www.xakte.de - \
/_____________________\

und tschüss...

Konrad Hauke


"Gerhard Faehling" <g...@comsulting.de> schrieb im Newsbeitrag
news:9b7hip$7v4v7$1...@ID-16994.news.dfncis.de...

0 new messages