Registriert seit: 22.04.2016
Version(en): 2016
Hey Leute!
Ich versuche gerade mittels VBA die Spaltenbreite für Spalten, welche zwischen Zeile 2&40 leer sind, eine definierte Spaltenbreite zu vergeben.
Dies erfolgt für Spalten ab 2/B und geht bis zur letzten benutzten Spalte.
Leider komme ich mit folgendem Ansatz überhaupt nicht weiter.
Wie verbinde ich die Schleife mit der Spaltenbreite?
Wenn ihr einen Vorschlag ohne VBA habt, gerne (:
Code:
Sub SetColumnWidth()
Dim LastColumn As Long
Dim EachColumn As Long
LastColumn = tblOne.Cells(13, Columns.Count).End(xlToLeft).Column
For EachColumn = 2 To LastColumn
If Worksheets("tblOne").Range(Cells(2, EachColumn), Cells(40, EachColumn)).Value = "" Then
xxx.ColumnWidth = 5
End If
End Sub
Beste Grüße
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Joshua,
so müsste Dein Code angepasst und erweitert werden, damit es fuktioniert:
Code:
Sub SetColumnWidth()
Dim LastColumn As Long
Dim EachColumn As Long
With Worksheets("tblOne")
LastColumn = .Cells(13, Columns.Count).End(xlToLeft).Column
For EachColumn = 2 To LastColumn
If Application.CountA(.Range(.Cells(2, EachColumn), .Cells(40, EachColumn)).Value) = 0 Then
.Columns(EachColumn).ColumnWidth = 5
Else
.Columns(EachColumn).ColumnWidth = 10
End If
Next EachColumn
End With
End Sub
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• joshua
Registriert seit: 22.04.2016
Version(en): 2016
30.06.2017, 10:51
(Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2017, 10:51 von joshua.)
Kann es sein, dass Value falsch gesetzt ist?
CountA zählt ja die leeren Zeilen.
Glaube das muss Value <>0 hin
Dann werden jedoch alle Spalten bearbeitet bzw. das Else nicht beachtet
Edit: Tut mir leid, ich habe mich falsch ausgedrückt :/
Es soll nur die Spalten mit dem leeren Bereich auf 5 reduziert werden, alle weiterhin sollen so bleiben
Registriert seit: 14.04.2014
Version(en): 2003, 2007
(30.06.2017, 10:51)joshua schrieb: CountA zählt ja die leeren Zeilen.
Hallo,
nein, CountA zählt alle Zelleninhalte.
Hast Du Formen in dem Bereich?
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
02.07.2017, 17:57
(Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2017, 17:57 von schauan.)
Hallöchen,
je nachdem, was drin steht, könntest Du ja auch alle Spalten auf 5 setzen und anschliessend autofitten.
Alternativ könntest Du wegen der Formeln mit "" z.B. so oder ähnlich herangehen:
=SUMMENPRODUKT((A1:A3=A1:A3)*(A1:A3<>""))
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• joshua
Registriert seit: 22.04.2016
Version(en): 2016
(02.07.2017, 17:57)schauan schrieb: Hallöchen,
je nachdem, was drin steht, könntest Du ja auch alle Spalten auf 5 setzen und anschliessend autofitten.
Alternativ könntest Du wegen der Formeln mit "" z.B. so oder ähnlich herangehen:
=SUMMENPRODUKT((A1:A3=A1:A3)*(A1:A3<>""))
Vielen Dank!
Habe nun alle intial auf 5px gestellt und als letzte Zeile im Code
Code:
Worksheets("tblOne").Columns("A:Z").AutoFit
nach dem Datenimport eingefügt, um entsprechend die breite anzupassen.
@atilla:
Nein, es sind keine Formen enthalten.
Leere Zeilen und bedingte Formatierung, welche sich jedoch nur auf den Rahmen bezieht.