Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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

Spaltenbreite nach Filtern anpassen

Spaltenbreite nach Filtern anpassen
urs
Guten Abend
Über Filter werden die gesuchten Werte einer grossen Tabelle eingegrenzt.
Wie kann ich nun die Spaltenbreite automatisch der benötigten Breite der SICHTBAREN Zeilen anpassen.
Lässt sich diese benötigte Breite ermitteln? Makro gesucht!
Vielen Dank für Eure Hilfe
Gruss Urs

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Spaltenbreite nach Filtern anpassen
26.01.2010 15:51:16
Josef
Hallo Urs,
das geht z.BV. so.
ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Columns.AutoFit

Gruß Sepp

AW: So einfach geht es also auch.
26.01.2010 16:07:48
fcs
Hallo Sepp,
da hab ich mir aber einen Lindwurm von Prozedur abgebrochen und dann reicht ein Einzeiler.
Gruß
Franz
Anzeige
AW: Spaltenbreite nach Filtern anpassen
26.01.2010 16:18:05
urs
Hallo Sepp,
das ist genau das was ich in dieser Frage suchte. Vielen Dank!
Gruss Urs
AW: Spaltenbreite nach Filtern anpassen
26.01.2010 16:02:21
fcs
Hallo Urs,
die erforderliche Breite kann man nur ungefähr abschätzen, sie hängt von der Schriftgröße, dem Font, der eingestellten Standardschriftart/-größe ab. Spalten, die mit Zeilenumbruch formatiert sind sollte man von der Anpassung ausklammern.
Gruß
Franz
Sub AutofilterSpaltenbreiten()
Dim wks As Worksheet, Zeile As Long, Spalte As Long, arrMax() As Long
Dim oAutofilter As autofilter
Const LaengeZeichen = 1.2 'Wert anpassen an Schriftgröße und Schriftart
Set wks = ActiveSheet
Set oAutofilter = wks.autofilter
With oAutofilter
ReDim arrMax(.Range.Column To .Range.Column + .Range.Columns.Count - 1)
'Max.Zeichenzahl in Spalten ermitteln
For Zeile = .Range.Row To .Range.Row + .Range.Rows.Count - 1
If wks.Rows(Zeile).Hidden = False Then
For Spalte = .Range.Column To .Range.Column + .Range.Columns.Count - 1
If Len(wks.Cells(Zeile, Spalte)) > arrMax(Spalte) Then
arrMax(Spalte) = Len(wks.Cells(Zeile, Spalte))
End If
Next
End If
Next
For Spalte = .Range.Column To .Range.Column + .Range.Columns.Count - 1
Select Case Spalte
Case 6, 8, 98 'Nummern der nicht anzupassenden Spalten
Case Else
If arrMax(Spalte) = 0 Then
wks.Columns(Spalte).ColumnWidth = 1 * LaengeZeichen
Else
wks.Columns(Spalte).ColumnWidth = arrMax(Spalte) * LaengeZeichen
End If
End Select
Next
End With
End Sub

Anzeige
AW: Spaltenbreite nach Filtern anpassen
26.01.2010 16:23:49
urs
Hallo Franz
Auch Dir danke ich für Deine Hilfsbereitschaft. Du hast also das Problem auch schon gehabt.
Aber Du hast Dir eine eigene Lösung zurechtgeschneidert. Bravo !!
Vielleicht auf ein nächstes Mal.
gruss urs

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige