Automatische Aktualisierung der Excel-Zellengröße als Reaktion auf dynamische Inhalte

Automatische Aktualisierung der Excel-Zellengröße als Reaktion auf dynamische Inhalte

Kontext:Ich habe ein Blatt mit einem Dropdown-Menü mit verschiedenen Kategorien. Das Blatt enthält außerdem eine Tabelle, deren Informationen aktualisiert werden, je nachdem, welche Kategorie aus dem Dropdown-Menü ausgewählt wird. Einige der Kategorien enthalten viel Text und erfordern große Zellen, andere enthalten nur wenig Text und erfordern kleine Zellen.

Was ich suche:Ich suche nach einer Möglichkeit, die Zellengröße automatisch zu aktualisieren, je nachdem, wie viel Text für eine bestimmte Kategorie in der Zelle enthalten ist.Ich verstehe, wie das geht manuell,indem ich die ganze Seite markiere und auf „Automatisch anpassen“ klicke oder auf die Spalten- oder Zeilentrenner doppelklicke. Ich hätte jedoch gerne eine Möglichkeit, dies zu tun, sobald ich ein Dropdown-Element auswähle. Der Grund dafür ist, dass dieses Blatt von verschiedenen Personen verwendet wird, und wenn diese nicht wissen, dass sie die Zellengrößen manuell aktualisieren müssen, könnten sie wichtige Informationen übersehen, weil das Blatt auf kleine Zellengrößen eingestellt ist und es nicht offensichtlich ist, dass Text abgeschnitten wurde. Umgekehrt, wenn ich die Tabelle standardmäßig auf sehr große Zellengrößen einstelle, ist die Tabelle bei Auswahl einer Kategorie, die nur kleine Textmengen ergibt, viel größer und unhandlicher als nötig.

Kennt jemand eine Möglichkeit, die Zellengröße automatisch zu aktualisieren, sobald sich die darin enthaltene Textmenge ändert?

Danke schön!

Antwort1

Erstellen Sie ein Makro, um die Spaltenbreite zu aktualisieren, wenn eine Zelle in dieser Spalte geändert wird.

Zellen ändern sich aufgrund von Benutzereingaben oder aufgrund einer Neuberechnung der Formel. Für jede Art von Änderung würden Sie einen anderen Makrotyp verwenden. Das Folgende ist ein typisches Beispiel für manuelle Eingaben in der SpalteC:

Fügen Sie das folgende Ereignismakro in den Codebereich des Arbeitsblatts ein:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
    Cells(1, "C").EntireColumn.AutoFit
End Sub

Da es sich um Arbeitsblattcode handelt, ist er sehr einfach zu installieren und automatisch zu verwenden:

  1. Klicken Sie mit der rechten Maustaste auf den Registerkartennamen unten im Excel-Fenster
  2. Wählen Sie „Code anzeigen“ – dadurch wird ein VBE-Fenster geöffnet
  3. Füge das Material ein und schließe das VBE-Fenster

Wenn Sie Bedenken haben, probieren Sie es zunächst auf einem Probearbeitsblatt aus.

Wenn Sie die Arbeitsmappe speichern, wird das Makro mit gespeichert. Wenn Sie eine neuere Version von Excel als 2003 verwenden, müssen Sie die Datei als .xlsm und nicht als .xlsx speichern.

So entfernen Sie das Makro:

  1. Rufen Sie die VBE-Fenster wie oben auf
  2. Löschen Sie den Code
  3. Schließen Sie das VBE-Fenster

Weitere Informationen zu Makros im Allgemeinen finden Sie unter:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

Und

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Weitere Informationen zu Ereignismakros (Arbeitsblattcode) finden Sie unter:

http://www.mvps.org/dmcritchie/excel/event.htm

Damit dies funktioniert, müssen Makros aktiviert sein!

verwandte Informationen