Clever-Excel-Forum

Normale Version: Zeilenhöhe VBA - Performance
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo miteinander :)

Habe mich kurzerhand in eurem schicken Forum registriert, da mir ein Problem über den Weg gelaufen ist, welches ich nicht wie üblich durch Recherche im Netz lösen konnte.

Folgendes:
In meinem Excelfile verarbeite ich auf dem ersten Tabellenblatt Stammdaten für einen Rapport.
Dort habe ich ein Feld, in welchem ein kleiner Text eingegeben werden kann.
Dieser Text kann mehrzeilig sein, entsprechend auch Zeilenumbrüche enthalten. So weit, so unspektakulär.

Nun werden die Zellen auf meinem zweiten Tabellenblatt weiterverarbeitet.
Allerdings passt er mir jetzt die Zeilenhöhe der Zelle mit dem Inhalt des kleinen Textes mich mehr optimal an.
Damit ich das also nicht jedesmal manuell machen muss, habe ich ein kleines VBA geschrieben, welches die entsprechende Zeile optimiert.
Dieses lasse ich nun immer ausführen, wenn das Dokument neu berechnet wird.
Grundsätzlich funktioniert das jetzt auch, allerdings frisst das halt extrem Performance; Bei jeder Eingabe lädt das Excel kurz.

Nun wollte ich fragen, wie ich das Ganze performanter machen könnte?
Hier mein Script:

Code:
Private Sub Worksheet_Calculate()
Rows("22:22").EntireRow.AutoFit
End Sub
Vielen Dank und liebe Grüsse
befubo
Hallo,

muss das unbedingt im Calculate-Ereignis sein? Ginge es nicht auch im Activate-Ereignis vom zweiten Tabellenblatt?
Hi Stefan und danke für die extrem schnelle Antwort :)

Erm, tatsächlich scheint das eine Vernünftige Variante zu sein. Kenn mich mit dem VBA nur begrenzt aus, entsprechend wär ich da jetzt nicht auf die Idee gekommen. Zu meinen Verständnis:
Worksheet_Activate() wird ausgeführt, wenn ich auf diese Tabelle wechsel?

Vielen Dank und liebe Grüsse
befubo
Hallo,

ja, so ist es.
Sorry, ich habe Blödsinn geschrieben.
Gruß Ralf
Alles klar, danke euch beiden :)

Habe jetzt noch eine Nachfrage;
Mein Script funktioniert nicht mehr, sobald ich die Zielzelle "Verbinde und Zentriere".
Muss ich die Zelle anders ansprechen?

Danke!
Hallo,

da du hier eh die ganze Zeile ansprichst versuche es mal so

Code:
Rows("22:22").AutoFit
Hey,

nö, klappt leider nicht. Er setzt mir dann die Zeilenhöhe auf die Höhe für eine einzelne Zeile...
Hallo,

(30.01.2018, 17:40)befubo schrieb: [ -> ]nö, klappt leider nicht. Er setzt mir dann die Zeilenhöhe auf die Höhe für eine einzelne Zeile...

das ist das normale Verhalten, unabhängig davon, ob Zellen verbunden sind.

Gruß Uwe
Hallo,

wenn Du es nicht über verbinden und zentrieren machst sondern über Auswahl zentrieren (Zellen markieren - Zellen formatieren . Registerkarte Ausrichtung - Bei Textausrichtung Horizontal Auswahl zentrieren auswählen) wäre das keine Möglichkeit?
Seiten: 1 2