Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Zeilenhöhe VBA - Performance
#1
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
Top
#2
Hallo,

muss das unbedingt im Calculate-Ereignis sein? Ginge es nicht auch im Activate-Ereignis vom zweiten Tabellenblatt?
Gruß Stefan
Win 10 / Office 2016
Top
#3
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
Top
#4
Hallo,

ja, so ist es.
Gruß Stefan
Win 10 / Office 2016
Top
#5
Sorry, ich habe Blödsinn geschrieben.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
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!
Top
#7
Hallo,

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

Code:
Rows("22:22").AutoFit
Gruß Stefan
Win 10 / Office 2016
Top
#8
Hey,

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

(30.01.2018, 18: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
Top
#10
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?
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste