Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1124to1128
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
Optimale Zeilenhöhe für einzelne Zelle
Joachim
Hallo,
wenn man in Excel die Funktion "Optimale Höhe" einstellt, wird die entsprechende Zeile auf die Zelle eingestellt mit den meisten Informationen.
Kann man per Makro die Zeile einer einzelnen Zelle in "optimaler Höhe" so anpassen, auch, wenn zB die benachbarte Zelle noch mehr Informationen hätte.
Also zB. in Zelle A1 stehen 5 Zeilen drin, in Zelle B1 stehen 30 Zelilen drin. Dann möchte ich per Makro die Höhe der Zelle A1 auf 5Zeilen einstellen, auch wenn in B1 noch mehr steht.
Geht das ?
Danke
Joachim
AW: Optimale Zeilenhöhe für einzelne Zelle
05.01.2010 20:26:04
Daniel
Hi
als Workaround per Markro einfach so:
- den Inhalt der Zelle in eine leere Zeile unterhalb der Daten kopieren (gleiche Spalte, wg, der Breite)
- hier die Zeilenhöhe auf den optimalen Wert einstellen lassen
- die Zeilenhöhe auslesen und auf die Originalzeile übertragen
Gruß, Daniel
Danke, Daniel
05.01.2010 22:30:23
Joachim
AW: Optimale Zeilenhöhe für einzelne Zelle
05.01.2010 20:42:10
Josef
Hallo Joachim,
für Zelle E19 im aktiven Blatt z.B. so.
Sub autofitCell()
  Dim objSh As Worksheet
  Dim rng As Range
  Dim sngHeight As Single
  
  On Error GoTo ErrExit
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  
  Set rng = ActiveSheet.Range("E19")
  Set objSh = ThisWorkbook.Worksheets.Add(after:=ActiveSheet)
  rng.Copy objSh.Cells(1, 1)
  objSh.Cells(1, 1).EntireRow.AutoFit
  sngHeight = objSh.Rows(1).RowHeight
  objSh.Delete
  rng.EntireRow.RowHeight = sngHeight
  rng.Parent.Activate
  
  ErrExit:
  Application.ScreenUpdating = True
  Application.DisplayAlerts = True
  Set objSh = Nothing
  Set rng = Nothing
End Sub

Gruß Sepp

Anzeige
Super Sepp, danke :-)
05.01.2010 22:29:58
Joachim
AW: Optimale Zeilenhöhe für einzelne Zelle
07.01.2010 08:38:05
Joachim
Hallo Sepp,
habe gerade bemerkt, das dein Beispiel aber nur funktioniert, wenn innerhalb der Zelle bedingte Zeilenumbrüche (alt+enter) sind.
gibt es mal einen Zeilenumbruch , der aufgrund der Überlänge stattfindet, funktioniert der Code nicht mehr.
Hier mal ein Beispiel
https://www.herber.de/bbs/user/67029.xls
Vielleicht mache auch ich was falsch.
danke
Joachim
AW: Optimale Zeilenhöhe für einzelne Zelle
07.01.2010 08:57:07
Josef
Hallo Joachim,
dann so.
Private Sub CommandButton1_Click()
  Dim objSh As Worksheet
  Dim rng As Range
  Dim sngHeight As Single, sngZoom As Single
  
  On Error GoTo ErrExit
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  sngZoom = ActiveWindow.Zoom
  Set rng = ActiveSheet.Range("D1")
  Set objSh = ThisWorkbook.Worksheets.Add(after:=ActiveSheet)
  rng.Copy objSh.Cells(1, 1)
  ActiveWindow.Zoom = sngZoom
  objSh.Columns(1).ColumnWidth = rng.ColumnWidth
  objSh.Rows(1).AutoFit
  sngHeight = objSh.Rows(1).RowHeight
  objSh.Delete
  rng.EntireRow.RowHeight = sngHeight
  rng.Parent.Activate
  
  ErrExit:
  Application.ScreenUpdating = True
  Application.DisplayAlerts = True
  Set objSh = Nothing
  Set rng = Nothing
End Sub


Anzeige
AW: Optimale Zeilenhöhe für einzelne Zelle
07.01.2010 13:36:45
Joachim
Hallo Sepp,
Vielen Dank. NUr noch ein kleine Bitte:
ich habe hier ein Beispiel mit Deinem aktuellen Code. Ich habe nun folgenden Problem, wobei ich nicht weis, ob dies nur lokal bei mir auftritt.
Mach mal bitte die excel auf und teste mal bitte.
In der Mappe sind 2 Beispiele:
das erst zum anpassen der Zeilenhöhe der Spalte A
das zweite zum anpassen der Zeilenhöhe der Spalte B
Teste mal zuerst den Button in der B Spalte, da scheint alles iO zu sein.
Wenn Du nun die erste Spalte (A) testest, ist es zumindes bei mir so, dass Excel automatisch vor den Text noch eine leere Zelle einfügt. Ich habe mal ein bischen getestet und meine , das Problem ist folgendes:
Wenn man mit dem Text , bedingt durch die länge; dummerweise bis an den Rand der Spaltenbreite kommt, fügt Excel diese Zeile ein. Liegt man dagegen leicht drunter oder drüber, also das es vom letzten Zeichen bis zum rechten Rand der Spalte vielleicht so 2 mm platz hat oder man so ca,. 2mm drüber liegt, dann tritt der Effekt nicht auf.
Also anders gesagt, gibt es bei einer Zell mit mehrerern Zeilen inhalt eine Zeile, die genauso lang ist, wie die Spaltenbreite, wird diese Zeile zusätzlich von Excel eingefügt.
(Ich habe in der B Spalte ein Zeichen hinten entfernt, damit ich nicht mehr den rechen Rand berühre)
Tritt dieser Effekt bei Dir auch auf, ist das ein generelles Problem von excel ?
Kannst Du das mal bitte testen.
Wäre nett.
https://www.herber.de/bbs/user/67038.xls
Danke
Joachim
Anzeige
AW: Optimale Zeilenhöhe für einzelne Zelle
07.01.2010 21:13:57
Josef
Hallo Joachim,
das ist so und lässt sich, meines Wissens, auch nicht ändern.
Excel ist und bleibt nunmal ein Tabellenkalkulationsprogramm und keine Textverarbeitung.
Gruß Sepp

OK,dann kann man nichts machen, trotzdem Danke owT
08.01.2010 20:58:48
Joachim

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige