Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten Top
#4
Hallo,

ja, so ist es.
Gruß Stefan
Win 10 / Office 2016
Antworten 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)
Antworten 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!
Antworten 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
Antworten Top
#8
Hey,

nö, klappt leider nicht. Er setzt mir dann die Zeilenhöhe auf die Höhe für eine einzelne Zeile...
Antworten Top
#9
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
Antworten 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
Antworten Top


Gehe zu:


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