Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1884to1888
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

notwendige Spaltenbreite ermitteln

notwendige Spaltenbreite ermitteln
13.06.2022 09:13:42
MiSchi
Hallo im Forum,
kann man per VBA die notwendige Spaltenbreite ermitteln?
Ich würde gerne vor dem Anpassen wissen, wie Breit die Spalte durch Autofit werden würde, um dann zu entscheiden, welche Breite ich einstelle.
Hat jemand eine Idee?
Danke, viele Grüße
MiSchi

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

Betreff
Datum
Anwender
Anzeige
AW: notwendige Spaltenbreite ermitteln
13.06.2022 09:27:44
UweD
Hallo
so?

    Dim BrV As Double, BrN As Double
Application.ScreenUpdating = False
With Columns("A:A")
BrV = .ColumnWidth
.EntireColumn.AutoFit
BrN = .ColumnWidth
.ColumnWidth = BrV
' jetzt ist alles wie vorher
Application.ScreenUpdating = True
'Hier kannst du nun setzen was du möchtest
.ColumnWidth = BrN + 10
End With
LG UweD
AW: notwendige Spaltenbreite ermitteln
13.06.2022 12:23:22
MiSchi
Danke Uwe,
für Deine Antwort! Klar so geht es.
Ich hatte gehofft das es eine Lösung ohne Ermitteln der Spaltenbreite vor und nach Autofit gibt.
Möglicherweise eine Funktion, die auch Autofit nutzt, um die richtige Breite einzustellen.
Viele Grüße
MiSchi
Anzeige
AW: notwendige Spaltenbreite ermitteln
13.06.2022 12:49:04
Rudi
Hallo,
alternativ zu Uwe: Kopiere die Spalte(n) in ein ausgeblendetes Blatt und führe dort Autofit aus. Dann kannst du ie Spaltenbreiten auslesen.
Gruß
Rudi
AW: notwendige Spaltenbreite ermitteln
13.06.2022 12:56:06
Daniel
Hi
so eine Funktion gibt es in VBA nicht.
du kannst nur das Autofit ausführen oder es sein lassen.
Wenn dir das Ergebnis nicht gefällt, gibts ja die Rückgängig-Funktion.
wenn du das als eigenständiges Marko programmieren willst (falls jemand das Rückgängig nicht kennt), dann musst du beachten, dass jede Makro-Aktion im Tabellenblatt den Rückgängig-Speicher löscht. Du müsstest dir also, um das ganze rückgängig zu machen, vor dem AutoFit die Spaltenbreiten merken und diese dann wieder einstellen.
Das macht dieses Makro, hier in der Variante, die auch die Auswahl von nichtzusammenhängenden Spalten erlaubt.
Du musst auch nicht die ganze Spalte selektieren, eine Zelle innerhalb jeder Spalte reicht:

Sub Spaltenbreite()
Dim Zelle As Range
Dim arr
Dim i As Long
With Intersect(Selection.EntireColumn, Rows(1))
ReDim arr(1 To .Cells.Count, 1 To 2)
For Each Zelle In .Cells
i = i + 1
arr(i, 1) = Zelle.Column
arr(i, 2) = Zelle.ColumnWidth
Next
End With
Selection.EntireColumn.AutoFit
Select Case MsgBox("Spaltenbreite übernehmen?", vbQuestion + vbOKCancel)
Case vbCancel
For i = 1 To UBound(arr, 1)
Columns(arr(i, 1)).ColumnWidth = arr(i, 2)
Next
Case Else
End Select
End Sub
Gruß Daniel
Anzeige
AW: notwendige Spaltenbreite ermitteln
13.06.2022 14:22:50
MiSchi
Danke Rudi, danke Daniel!
interessant, der Code verwendet ein Array. Hätte ich so nicht umsetzten können.
Ich hätte mich am Vorschlag von Uwe orientiert, den ich mit meinem Kenntnisstand sofort verstanden habe.
Deinen werde ich später schrittweise durchgehen.
Viele Grüße
MiSchi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige