Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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
Inhaltsverzeichnis

VPA Zellhöhe verbundener Zeilen anpassen

VPA Zellhöhe verbundener Zeilen anpassen
Philipp
Hallo,
vorab: Ich bin erst vor kurzem mit der Schule fertig geworden und verfüge noch nicht über weitreichende Excel/VBA-Kenntnisse. Bin jedoch jung und jederzeit bereit dazuzulernen.
Mein Problem ist folgendes, ich mache gerade in einer Firma ein Praktikum. Gewisse Formblätter wurden mit (horizontal) verbundenen Zeilen erstellt, jedoch funktioniert ja (wie ich bereits recherchiert habe) der automatische Zeilenumbruch in verbundenen Zellen nicht. Weshalb verbundene Zellen gemieden werden sollten.
Da es aber sehr, sehr viele Formblätter sind, die ich neu strukturieren müsste, suche ich nach einer VPA Lösung. Das Skript von Herrn Herber funktioniert auch einwandfrei, jedoch vergrößert es ja nur die Zellen.
Um es auf den Punkt zu bringen: Ich kann mit Hilfe des Makros die Zeilen vergrößern, jedoch hätte ich gerne ein Makro das im Falle von 'zu wenig Platz' die Zelle vergrößert UND im Falle von 'zu viel Platz' die Zelle vergrößert.
Ich hoffe ich habe mich klar genug ausgedrückt ;) Falls nicht, wäre ich um Rückmeldung diesbezüglich erfreut!
Ich hoffe ihr könnt mir helfen.. Komme da absolut nicht weiter allein.
Mit Freundlichen Grüßen
Philipp
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 16:23:16
ing.grohn
Hallo Philipp,
folgende Funktion benutze ich um in einem Formular die Zeilenhöhe der verbundenen Zellen zu vergrößeren.
Function Zeilenhoehe(wks As Worksheet, Zeile As Long, Spalte_A As Long, Spalte_E As Long) As  _
Double
'Ermittelt die Zeilenhöhe für zu verbindende Zellen bei überlangem Text und _
formatiert die Zellen
'Spalte_A = 1. SPalte der ggf. zu verbindenende Zellen
'SPalte_E = letzte Spalte der ggf. zu verbindenden Zellen
Dim MinHoehe As Double, bolMerge As Boolean, lngHAlihnment As Long, dblHoehe As Double
Application.ScreenUpdating = False
With wks
'Zellbereich formatieren ohne Zeilenumbruch und Linksbündig formatieren, MinHoehe  _
ermitteln
With .Range(.Cells(Zeile, Spalte_A), .Cells(Zeile, Spalte_E))
.HorizontalAlignment = xlHAlignLeft
.WrapText = False
If .MergeCells = True Then .UnMerge
With .EntireRow
.AutoFit
MinHoehe = .RowHeight
End With
'Format auf über Spalten centrieren setzen und Optimale Zeilenhoehe
.WrapText = True
.HorizontalAlignment = xlCenterAcrossSelection
.EntireRow.AutoFit
'Zellen Formatieren
If MinHoehe 

Das ganze wird über Worksheets_change aufgerufen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoehe As Double
On Error GoTo ErrorHandler
Application.EnableEvents = False
'  20 And .Row 

Vielleicht hilft das weiter (hab ich mal irgendwann im Forum erhalten )
Mit freundlichen Grüßen
Albrecht
Anzeige
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 16:30:18
Philipp
Vielen Danke.. Jedoch habe ich - um ehrlich zu sein - keine Ahnung wie ich das jetzt als Makro einfüge.
Ich weiß bisher nur mit S ub xy() / End S ub was anzufangen..
Könnte mir da noch wer helfen?
Lg
Philipp
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 17:32:29
ing.grohn
Hallo Phillip,
also, die Funktion "Hoehe" gehört in ein "Allgemeines Modul"
(was du erzeugst, wenn Du die VBA Umgebung aufrufst und dann Einfügen Modul machst)
Worksheet_Change kannst Du in deiner Tabelle eintragen (Tabelle1 k.A.)
Du solltest also den Code dort hineinkopieren können
Mit freundlichen Grüßen
Albrecht
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 17:43:30
Philipp
Hab jetzt worksheets_change in meine Tabelle1 kopiert und die Function Zeilenhoehe in ein eigenes Modul.
Hab in der Zeile 1 die Spalten A bis E miteinander verbunden und nen Text eingegeben der Länger als die verbundene Zelle ist.
Passiert jedoch nichts, weder ein Fehler noch ein Resultat.
Tut mir Leid.. Bin wohl ein schwieriger Fall ;)
Lg
Anzeige
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 18:44:47
ing.grohn
Hallo phillip
bei mir funktioniert das nur für die Spalten C bis F und erst ab Zeile 21
(IF- Abfrage und Spalte_A und Spalte_E im WorkSheet_Change-Ereignis)
Vielleicht solltest Du die IF -Geschichte mal ganz rausnehmen!
MfG
ALbrecht
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 18:26:33
Philipp
Hab's jetzt hingekriegt, aber mit einem anderen Skript das hier als Lösung angeboten wird..
http://www.office-loesung.de/ftopic339081_0_0_asc.php
Funktioniert einwandfrei! Genau das was ich brauche.. Aber ohne dich hätt ich nicht gewusst wo ich's einfügen muss!
Vielen, vielen Dank!
Lg Philipp
Anzeige
AW: VPA Zellhöhe verbundener Zeilen anpassen
16.11.2011 17:10:38
Philipp
Nachtrag:
Ich habe den Code jetzt für meine Tabelle eingetragen (Im VBA Manager einen Doppelklick auf meine Tabelle).
Zu erst deinen zweiten Code und dann die Zeile "hier dein code" mit dem oberen functionscript ersetzt.
habe dann hier
With .Range(.Cells(Zeile_1, Spalte_A), .Cells(Zeile_3, Spalte_E))
noch die 1 und die 3 ergänzt. Ist das richtig? Der Befehl "Worksheet_change" ist das Auslöseereignis für das Makro oder? Also wenn ich die Zellen bearbeite aktiviert es sich automatisch? Jedenfalls erhalte ich beim ändern der Zellen eine Fehlermeldung:
Fehler beim Kompilieren
End Su b erwartet
Hier nun mein vollständiger code, der " --> " ist die Stelle die mir der Debugger anzeigt
Private

Sub Worksheet_Change(ByVal Target As Range)
Dim Hoehe As Double
On Error GoTo ErrorHandler
Application.EnableEvents = False
-->

Function Zeilenhoehe(wks As Worksheet, Zeile As Long, Spalte_A As Long, Spalte_E As Long) As _
Double
'Ermittelt die Zeilenhöhe für zu verbindende Zellen bei überlangem Text und _
formatiert die Zellen
'Spalte_A = 1. SPalte der ggf. zu verbindenende Zellen
'SPalte_E = letzte Spalte der ggf. zu verbindenden Zellen
Dim MinHoehe As Double, bolMerge As Boolean, lngHAlihnment As Long, dblHoehe As Double
Application.ScreenUpdating = False
With wks
'Zellbereich formatieren ohne Zeilenumbruch und Linksbündig formatieren, MinHoehe _
ermitteln
With .Range(.Cells(Zeile_1, Spalte_A), .Cells(Zeile_3, Spalte_E))
.HorizontalAlignment = xlHAlignLeft
.WrapText = False
If .MergeCells = True Then .UnMerge
With .EntireRow
.AutoFit
MinHoehe = .RowHeight
End With
'Format auf über Spalten centrieren setzen und Optimale Zeilenhoehe
.WrapText = True
.HorizontalAlignment = xlCenterAcrossSelection
.EntireRow.AutoFit
'Zellen Formatieren
If MinHoehe 

With Target
If .Row > 20 And .Row And .Column = 2 And .Cells.Count = 1 Then
Hoehe = Zeilenhoehe(wks:=Me, Zeile:=Target.Row, Spalte_A:=3, Spalte_E:=6)
End If
End With
Application.EnableEvents = True
Exit Function
ErrorHandler:
MsgBox "Fehler"
Application.EnableEvents = True
End Function

Anzeige

29 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige