Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalte und Zeile per Zelleintrag skalieren

Spalte und Zeile per Zelleintrag skalieren
10.04.2013 10:33:17
Peter
Hallo zusammen,
ich bräuchte mal eure Hilfe. Ich habe mal bei einem Kollegen eine Datei gesehen, bei der er per Zelleintrag die Zeilenhöhe und Spaltenbreite einstellen konnte; angeblich ohne VBA. Leider ist der Kollege gegangen und ich kann ihn nicht mehr fragen, wie das funktioniert.
Kann mir da jemand bitte auf die Sprünge helfen, wie das funktioniert und wie ich das nachbauen kann?
Vielen Dank vorab und beste Grüße,
Peter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 10:54:35
Klaus
angeblich ohne VBA
Hallo Peter,
ohne VBA aber nicht vollautomatisch! Mindestens auf den Button "optimale Zeilenhöhe" muss er clicken.
Dann ist das vorstellbar, indem ich zum Beispiel eine Zelle mit Zeilenumbruch formatiere und mit der Formel "=WIEDERHOLEN("x ";A1) fülle. Jetzt kann ich in A1 einen Wert eingeben, clicke auf "optimale Zeilenhöhe" und die Zeile wird der Menge der x-e angepasst - mit ein bisschen experimentieren bekommt man da sicher eine sinnvollere Skalierung hin.
Aber nur durch einen Zelleneintrag, das kann ich mir nicht vorstellen. Leider gibt es ja keine Zellenoption "immer automatisch anpassen".
MIT Vba währ das freilich sehr einfach.
Grüße,
Klaus M.vdT.

Anzeige
AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 10:57:09
Peter
Hallo Klaus,
danke für die Antwort.
Wie würde das denn mit VBA funktionieren? Gäbe es da die Möglichkeit, die Höhe und Breite nach einer Eingabe genau einzustellen?
Danke + Gruß,
Peter

AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 10:57:57
Peter
ich lasse die Frage noch mal offen!
Danke!

AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 11:39:31
Peter
Hallo Klaus,
besten Dank. Funktioniert super. Zwei Fragen hätte ich aber noch.
1. Wie stelle ich ein, dass ich die Pixelzahl eingeben kann?
2. Wie kann ich den Code ändern, dass ich in Spalte A die jeweils pro Zelle die Zeilenhöhe einstellen kann, bzw. in Zeile 1 jeweils die Spaltenbreite? ich habe es hiermit versucht, aber es funktioniert nicht...

ActiveCell.EntireColumn.ColumnWidth = Range(ActiveCell.Column, Rows(1)).Value
ActiveCell.EntireRow.RowHeight = Range(Column(1), ActiveCell.Rows).Value
Danke nochmal!
Peter

Anzeige
AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 11:45:14
Klaus
Hi,
zu 1): Ich weiss gar nicht ob das direkt geht. Du kannst aber Zeilenhöhe in Pixel umrechen und andersrum, hier mal das erste google-Ergebniss dazu:
http://www.gutefrage.net/frage/excel-tabelle-spaltenbreite-und-zeilenhoehe
zu 2): du willst in JEDE Zeile und JEDE Spalte die Höhe/Breite schreiben? Zeile 1 und Spalte A sind dann logischerweise nicht greifbar. Ich bau mal was.
Grüße,
Klaus M.vdT.

AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 11:54:14
Klaus
Hatta:
über die Umrechnung Einheiten / Pixel bin ich mir nicht sicher, musst du noch mal recherchieren ob *0,75 hinhaut.
Spalte A und Zeile 1 sind komplett mit gültigen Werten gefüllt. Keine Fehlerbehandlung! Steht in F1 zB als Breite "-7" oder "Div!0" oder "Hund", schmiert das Makro einfach nur ab.
Sub SpaltenZeilen()
Dim lRow As Long
Dim iCol As Integer
Dim r As Range
Dim dPix As Double
'ein Pixel = 0.75 Excel-Einheiten (?)
dPix = 0.75
With ActiveSheet
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
iCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For Each r In .Range(.Cells(2, 1), .Cells(lRow, 1))
r.EntireRow.RowHeight = .Cells(r.Row, 1).Value * dPix
Next r
For Each r In .Range(.Cells(1, 2), .Cells(1, iCol))
r.EntireColumn.ColumnWidth = .Cells(1, r.Column).Value * dPix
Next r
End With
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Spalte und Zeile per Zelleintrag skalieren
10.04.2013 11:54:45
Peter
Hi Klaus,
1) danke für den Tipp
2) ja, theoretisch jede Zeile/Spalte. Im Endeffekt werden es aber nicht 1 Mio, sonder nur ein paar. Ich bastel eine Vorlage für Powerpoint-Folien und will immer die gleichen Maße für die Folien haben - unabhängig von der Anzahl der Zeilen oder Spalte pro Folie
Gruß,
Peter

AW: gleichzeitig
10.04.2013 13:03:35
Peter
Hallo Klaus,
vielen Dank, bei mir funktioniert das aber nicht.
Gibt es da nicht einen Weg, das ganze nur für die aktive Zelle einzustellen, bspw. schreibe ich in A14 eine 30 und die Zeile 14 wird auf 30 Einheiten skaliert? Das gleich dann in Zeile 1: ich schreibe eine 20 ein G1 und die Spalte G wird auf 20 Einheiten skaliert?
Theoretisch soll es dann aber für die komplette Spalte 1 bzw. Zeile 1 funktionieren...
Vielen Dank!
Peter

Anzeige
AW: gleichzeitig
10.04.2013 13:06:47
Klaus
Das müsste dann so gehen:
Sub SpaltenZeilen()
Dim dPix As Double
'ein Pixel = 0.75 Excel-Einheiten (?)
dPix = 0.75
With ActiveCell
.EntireRow.RowHeight = Cells(ActiveCell.Row, 1).Value * dPix
.EntireColumn.ColumnWidth = Cells(1, ActiveCell.Column).Value * dPix
End With
End Sub
das ganze rufst du bei Worksheet_Change, per Button, per Shortcut oder wie immer du wilst auf.
Grüße,
Klaus M.vdT.

AW: gleichzeitig
10.04.2013 13:18:03
Peter
perfekt, so habe ich es mir vorgestellt! Danke dir!
Beste Grüße,
Peter

Danke für die Rückmeldung! owT.
10.04.2013 13:27:42
Klaus
.

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige