ich habe hier ein Excel-Sheet mit diversen Tabellen. Alle Tabellen
sollen in der Summe gleich breit sein.
In Word (bei den Tabulatoren) könnte ich jetzt einfach alle Spalten
markieren und die rechte Spalte auf die Breite ziehen, wie sie sein
soll, und die anderen Spalten würden sich einfach proportional anpassen.
Wenn ich das in Excel mache, haben hinterher alle Spalten die gleiche
Breite (nämlich die von der Spalte ganz rechts).
Hat jemand einen Tipp für mich? :-)
Danke und Gruß,
Martin
--
Martin Schneider - wie der Komiker, nur nicht so lustig
www.film-retter.de
Am Fri, 04 Feb 2011 13:29:45 +0100 schrieb Martin Schneider:
> ich habe hier ein Excel-Sheet mit diversen Tabellen. Alle Tabellen
> sollen in der Summe gleich breit sein.
>
> In Word (bei den Tabulatoren) könnte ich jetzt einfach alle Spalten
> markieren und die rechte Spalte auf die Breite ziehen, wie sie sein
> soll, und die anderen Spalten würden sich einfach proportional anpassen.
wenn alle Spalten die optimale Breite haben sollen, dann markiere alle
Spalten und mache auf eine rechte Begrenzung einen Doppelklick.
Mit freundlichen Grüssen
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
Sollen sie nicht :-) Beispiel:
Spalte 1 = 10, Spalte 2 = 20, Spalte 3 = 30 breit, macht zusammen 60.
Jetzt w�rde ich gerne mit einem Klick die Spalten auf 120 verbreitern,
dabei sollen die *relativen* Spaltenbreiten erhalten bleiben, Ergebnis
soll also sein:
Spalte 1 = 20, Spalte 2 = 40, Spalte 3 = 60.
Wie gesagt, in Word geht das bei den Tabulatoren z.B., in dem ich
einfach die Ctrl (oder Alt?) Taste beim Aufziehen gedr�ckt halte, und
alle Spalten verbreitern sich proportional...
Hab's jetzt �ber ein Makro gel�st, das die prozentualen Spaltenbreiten
ermittelt und dann auf die gew�nschte Gesamtbreite skaliert.
Sub test()
ReDim percentage(1 To Selection.Columns.Count)
Dim i As Long
Dim total As Long
Dim desiredDimension As Long
Dim factor As Double
i = 0
total = 0
For Each c In Selection.Columns
i = i + 1
percentage(i) = c.Width
total = total + c.Width
Next
For i = 1 To UBound(percentage)
percentage(i) = percentage(i) / total
Next i
desiredDimension = 700
Do While Abs((Selection.Width / desiredDimension) - 1) > 0.005
factor = desiredDimension / Selection.Width
i = 0
For Each c In Selection.Columns
i = i + 1
c.ColumnWidth = c.ColumnWidth * factor
Next
Loop
End Sub
Ich habe grad eben mal 4 Spalten in Fixedsys-Schrift gefüllt
(möglicherweise gehts auch mit Courier), und zwar in 2 Zeilen mit
unterschiedlich langen Zeichenketten in den Spalten, die jedoch am
Ende wieder genau so viel Gesamtlänge aller Einträge ergeben, wie
hier:
aaaaa bb cccc d
aaa bbbbbb c dd
(a steht in Spalte A, usw.) Dann abwechselnd
1 der beiden Zeilen x 4 Spalten
markieren und Format/Spalte/OptimaleBreite durchführen. Klappt!
Ein entsprechendes Makro könnte möglicherweise kürzer als Deins
werden.
--
Moin+Gruss Alexander - www.xxcl.de - mso2000sp3 -50---5----60---66
Hallo, und danke für Deine Mühe!
Leider würde mir diese Vorgehensweise nicht helfen denn es sollen alle
Tabellen (!) gleich breit sein. Bei Deiner Vorgehensweise würde Excel
die Tabellenbreite bestimmen, nicht ich.
Trotzdem danke und viele Grüße,
Martin