Anzeige
Archiv - Navigation
1860to1864
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

automatisch Spaltenbreite anpassen Filte

automatisch Spaltenbreite anpassen Filte
13.12.2021 09:59:52
Hannes
Hallo zusammen,
folgendes Probelm: Wenn ich eine Datei habe, in der eine Tabelle mit Filtern in den Überschriften ist, ist die minimale Spaltenbreite an die Filter begrenzt.
Nach ausblenden der Filter kann man auch wieder ganz normal alle Zellen markieren und mithilfe von der automatisch anpassen funktion die Breite an den auch kürzeren Zellinhalt anpassen.
Gibt es eine Möglichkeit die minimale Spaltenbreite mit eingeblendeten Filtern auf einen bestimten kleineren Minimalwert umzustellen? Natürlich auch mit dem Wissen, dass ich auch alle Zellen unterhalb der Filter markieren kann.
Vllt nochmal als konkretere Frage: Bei mir ist die Spaltenbreite nach der automatischen Anpassung überall mindestens 9,57 (Wenn eine Spalte längere Einträge hat entsprechend länger), kann man die 9,57 auf zum Beispiel 6 umstellen?

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisch Spaltenbreite anpassen Filte
13.12.2021 11:12:28
Pierre
Hallo Hannes,
meinst du 6 Punkt oder 6 Pixel?
Meinst du sowas:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long                                                           'Schleifenzähler Spalten
For i = 1 To Sheets(1).Cells(1, Columns.Count).End(xlToLeft).Column     'erste bis letzte genutzte Spalte, evtl. anpassen!
If Columns(i).ColumnWidth  "" Then                                     'wenn Zelle NICHT leer, dann
Columns(i).EntireColumn.AutoFit                                 'Spaltenbreite an Inhalt anpassen
Else: Columns(i).ColumnWidth = 6                                'ansonsten Spaltenbreite auf 6 setzen
End If
Next i                                                                  'nächste Spalte
End Sub
Gruß Pierre
Anzeige
AW: automatisch Spaltenbreite anpassen Filte
13.12.2021 11:23:59
Hannes
Hallo,
ja so in etwa!
Kann man das auch so einstellen, dass er das nur läd, wenn man die Funktion ,,anspaltenbreite anpassen" nutzt?
Quasi das dann der Standard/Minimalwert bei 6 liegt?
So habe ich nach jeder Zelleingabe eine kurze Ladezeit.
AW: automatisch Spaltenbreite anpassen Filte
13.12.2021 11:59:22
Pierre
Du kannst es auf einen Button legen z. B., oder als AddIn nutzen.
Dafür die erste Zeile löschen und stattdessen dann einfach "

Sub Spaltenbreite()" oder so schreiben. Spaltenbreite ist änderbar.
Dann musst du es allerdings in einem allg. Modul speichern und nicht unter dem Tabellenblatt speichern.
Was du noch versuchen kannst, das habe ich hier nicht drin gehabt:
Unter "Private Sub..." schreibst du "Application.ScreenUpdating = False" und direkt über dem "End Sub
" dann "Application.ScreenUpdating = True"
Das könnte bzw. dürfte die Ladezeit schon deutlich minimieren.
Gruß Pierre
Anzeige
AW: ja owT
13.12.2021 11:14:41
neopa
Gruß Werner
.. , - ...
AW: automatisch Spaltenbreite anpassen Filte
14.12.2021 15:48:42
Hannes
Hallo, ja ist es....Entschuldige vielmals....ich hab/hatte viel um die Ohren und bin damals nich weiter gekommen und hab dann scheinbar vergessen, dass es den thread gab...hab das auch jetzt noch einnmal versucht. Aber wie genau meinst du das mit nach erstem Ablauf? Und ein ergebnis um direktfenster kann ich leider auch nicht finden. Bei strg g erhalte ich eine Übersicht über meine Tabellen in einem arbeitsblatt richtig? und was heißt erste sk raus?
Vielen Dank für die Hilfe!!!!
Anzeige
AW: automatisch Spaltenbreite anpassen Filte
14.12.2021 17:13:58
Yal
Hallo Hannes,
es handelt sich um eine Fenster im VB-Explorer.
Also mit Alt+F11 von Excel aus, bist Du in VB-Explorer,
dort mit Strg+g das Direktfenster (im Menü "Ansicht" heisst es "Direktfenster", im Überschrift "Direktbereich").
Darin kannst Du z.B.
?1+2 eingeben und Enter (Fragezeichen ist die Kurzform von "Print")
oder ?now
oder for each w in workbooks:?w.name:next (es muss alles auf eine Zeile sein, daher die Doppelpunkte)
Um aus dem VBA-Codepanel ins direktfenster auszugeben, nutzt Debug.Print
Debug.Print Activesheet.Name
Auch nutzvoll ist das sogenannte Lokalfenster ("Ansicht", "Lokalfenster"): im Schrittmodus (F8) kannst Du darin den Zustand alle Variablen und Objekte sehen. Es erschlägt ein Bischen am Anfang, aber es hilft zu verstehen, wie die Objekt/Eigenschaften zusammenhängen (wichtig).
Letztendlich die Überwachungsfenster. Du kannst ein Ausdruck markieren und mit rechtem Maustaste "Überwachung hinzufügen..." es kann auf eine einzige Sub/Function oder global gelten. Einfach probieren, es geht nichts kaputt.
Mit dem ersten Code werden die Spaltenbreite gelesen und im Drektfenster ausgegeben. Dort kann man das Ergebnis markeieren und im Codepane als Const eintragen.
VG
Yal
Anzeige
AW: automatisch Spaltenbreite anpassen Filte
15.12.2021 07:30:33
Hannes
Hi Yal,
also das mit dem Direktfenster ist nun klar, aber was meinst du mit nach erstem Durchlauf einen Wert eintragen? Und welches Ergebnis muss dann im Direktfenster eingegeben werden?
Gruß Hannes
AW: automatisch Spaltenbreite anpassen Filte
15.12.2021 11:48:16
Yal
Hallo Hannes,
in dem Beitrag https://www.herber.de/forum/cgi-bin/callthread.pl?index=1859690#1859999
waren 2 Subs und eine Konstante:
Sub Spaltenbreite_lesen()
Sub gespeicherteBreite_wiederEinsetzen()
Mit der ersten Sub liest Du die aktuelle Spaltenbreite für die gewünschte Spalten und erzeugst eine Textliste in das Direktfenster.
Der Text kopierst Du und setzst als Wert vom gegebenen Konstant.
Mit der zweite Sub, nimmst diese Konstant als Quelle, um die Spaltenbreite zu setzen.
VG
Yal
Anzeige

175 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige