Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Spaltenbreite, Zeilenhöhe in Pixel

VBA Spaltenbreite, Zeilenhöhe in Pixel
09.07.2023 19:01:23
Jo

Hallo zusammen,

habe eine Problem das ich nicht hinbekomme ich möchte im VBA Code die Zeilenhöhe und die Spaltenbreite in Pixel angeben, und habe es mit folgendem Code probiert.....
With ws
.Columns(1).ColumnWidth = pixelToPt * 160
.Columns(2).ColumnWidth = pixelToPt * 86
.Columns(4).ColumnWidth = pixelToPt * 86
.Columns(6).ColumnWidth = pixelToPt * 86
.Columns(8).ColumnWidth = pixelToPt * 86
.Columns(10).ColumnWidth = pixelToPt * 86
.Columns(12).ColumnWidth = pixelToPt * 86
.Columns(3).ColumnWidth = pixelToPt * 30
.Columns(5).ColumnWidth = pixelToPt * 30
.Columns(7).ColumnWidth = pixelToPt * 30
.Columns(9).ColumnWidth = pixelToPt * 30
.Columns(11).ColumnWidth = pixelToPt * 30
.Columns(13).ColumnWidth = pixelToPt * 30
.Columns("N:V").ColumnWidth = pixelToPt * 30
.Columns("W:W").ColumnWidth = pixelToPt * 30
.Columns("W").ColumnWidth = pixelToPt * 141
End With

aber da bekomme immer "Laufzeitfehler 1004" Die ColumnWidth-Eingenschaft des Range-Objektes kann nicht festgelegt werden.


Bin für jede Hilfe dankbar

Grüße an alle

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Spaltenbreite, Zeilenhöhe in Pixel
09.07.2023 19:12:39
Ulf

Sub sp()
Dim ws As Worksheet
Dim pixelToPt As Double
Set ws = ActiveWorkbook.Worksheets(1)
pixelToPt = 0.75
With ws
.Columns(1).ColumnWidth = pixelToPt * 160
.Columns(2).ColumnWidth = pixelToPt * 86
.Columns(4).ColumnWidth = pixelToPt * 86
.Columns(6).ColumnWidth = pixelToPt * 86
.Columns(8).ColumnWidth = pixelToPt * 86
.Columns(10).ColumnWidth = pixelToPt * 86
.Columns(12).ColumnWidth = pixelToPt * 86
.Columns(3).ColumnWidth = pixelToPt * 30
.Columns(5).ColumnWidth = pixelToPt * 30
.Columns(7).ColumnWidth = pixelToPt * 30
.Columns(9).ColumnWidth = pixelToPt * 30
.Columns(11).ColumnWidth = pixelToPt * 30
.Columns(13).ColumnWidth = pixelToPt * 30
.Columns("N:V").ColumnWidth = pixelToPt * 30
.Columns("W:W").ColumnWidth = pixelToPt * 30
.Columns("W").ColumnWidth = pixelToPt * 141
End With
End Sub


Anzeige
AW: VBA Spaltenbreite, Zeilenhöhe in Pixel
09.07.2023 21:03:10
onur
.Columns("W:W").ColumnWidth = pixelToPt * 30
.Columns("W").ColumnWidth = pixelToPt * 141

???


AW: VBA Spaltenbreite, Zeilenhöhe in Pixel
09.07.2023 21:52:51
Daniel
Hi
Welchen Wert hat denn pixelToPt?
Die Spaltenbreite ColumWidth ist meines Wissens nach definiert als: Anzahl Ziffern, die in Standardschriftart in der Zelle angezeigt werden können.
Zur Gesamtbreite der Zellen kommen dann noch die Rahmenbreite und der Abstand zwischen Inhalt und Rahmen hinzu.

Gruß Daniel


Anzeige
AW: VBA Spaltenbreite, Zeilenhöhe in Pixel
09.07.2023 22:57:13
GerdL
Noch ein Gedicht.
Sub SP()
    Const PixelToPt As Double = 0.75
    Dim c As Long
    With ActiveWorkbook.Worksheets(1)
        .Columns("A").ColumnWidth = PixelToPt * 160
        .Columns("C:V").ColumnWidth = PixelToPt * 30
        For c = 2 To 12 Step 2
          .Columns(c).ColumnWidth = PixelToPt * 86
        Next
        .Columns("W").ColumnWidth = PixelToPt * 141
    End With
 End Sub
Gruß Gerd

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA für Spaltenbreite und Zeilenhöhe in Pixeln


Schritt-für-Schritt-Anleitung

Um die Spaltenbreite und Zeilenhöhe in Pixeln mithilfe von VBA festzulegen, kannst Du folgenden Code verwenden. Der Code konvertiert Pixel in die richtige Einheit für Excel, wobei die Standardbreite in Ziffern angegeben ist.

Sub SetColumnWidthAndRowHeight()
    Dim ws As Worksheet
    Dim pixelToPt As Double
    pixelToPt = 0.75 ' Umrechnungsfaktor von Pixel in Punkte
    Set ws = ActiveWorkbook.Worksheets(1)

    With ws
        .Columns(1).ColumnWidth = pixelToPt * 160 ' Beispiel für Spalte A
        .Rows(1).RowHeight = pixelToPt * 20 ' Beispiel für Zeile 1
        ' Weitere Spalten und Zeilen können hier hinzugefügt werden
    End With
End Sub

Achte darauf, den Umrechnungsfaktor pixelToPt entsprechend anzupassen, um die gewünschte Breite oder Höhe zu erreichen.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 1004:

    • Ursache: Du versuchst, die ColumnWidth-Eigenschaft für eine ungültige Spalte oder einen ungültigen Bereich festzulegen.
    • Lösung: Stelle sicher, dass Du die Spaltenbezeichnungen korrekt angibst. Vermeide Bereiche, die nicht existieren, z.B. .Columns("X:Z"), wenn diese Spalten nicht vorhanden sind.
  2. Falsche Maßeinheit:

    • Ursache: Wenn Du die Spaltenbreite in Pixel angeben möchtest, beachte, dass Excel die Breite in Ziffern interpretiert.
    • Lösung: Verwende den Umrechnungsfaktor, um von Pixeln in die Excel-spezifische Maßeinheit umzurechnen, wie im obigen Beispiel gezeigt.

Alternative Methoden

Eine alternative Methode, um die Zeilenhöhe und Spaltenbreite in Excel zu ändern, ist die Verwendung der Benutzeroberfläche:

  1. Manuelles Anpassen:

    • Gehe zu der Spalte oder Zeile, die Du anpassen möchtest.
    • Klicke mit der rechten Maustaste und wähle "Spaltenbreite" oder "Zeilenhöhe".
    • Gib die gewünschte Größe in Ziffern an.
  2. Formatierung über das Menü:

    • Wähle die Spalte oder Zeile aus.
    • Gehe zu "Start" > "Format" und passe die Breite oder Höhe an.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die ColumnWidth und RowHeight in VBA festlegst:

Sub ExampleAdjustments()
    Dim ws As Worksheet
    Set ws = ActiveWorkbook.Worksheets(1)

    ' Zeilenhöhe anpassen
    ws.Rows(1).RowHeight = 30 ' Setzt die Höhe der ersten Zeile auf 30 Punkte

    ' Spaltenbreite anpassen
    ws.Columns("A").ColumnWidth = 20 ' Setzt die Breite der Spalte A auf 20 Ziffern
End Sub

In diesem Beispiel wird die erste Zeile auf 30 Punkte und die Spalte A auf 20 Ziffern eingestellt, was eine einfache Möglichkeit darstellt, um die Darstellung in Excel zu optimieren.


Tipps für Profis

  • Umrechnung von cm in Pixel: Wenn Du die Zeilenhöhe oder Spaltenbreite in Zentimetern angeben möchtest, kannst Du eine Umrechnung von cm in Pixel durchführen. Der Umrechnungsfaktor ist dabei ca. 37.7952755906 (1 cm = 37.79 Pixel). Verwende diesen Wert in Deinem VBA-Code.

  • Automatisierung: Erstelle ein Makro, das die Spaltenbreiten automatisch anpasst, basierend auf dem Inhalt der Zellen. Das sorgt für eine bessere Benutzererfahrung.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinen VBA-Skripten, um Laufzeitfehler zu vermeiden und den Code robuster zu gestalten.


FAQ: Häufige Fragen

1. Wie kann ich die aktuelle Zelle in VBA ermitteln?
Du kannst die aktuelle Zelle mit ActiveCell ermitteln. Beispiel:

Dim aktuelleZelle As Range
Set aktuelleZelle = ActiveCell

2. Wie wird die Spaltenbreite in Excel definiert?
Die Spaltenbreite in Excel ist definiert als die Anzahl der Ziffern, die in der Standardschriftart in der Zelle angezeigt werden können. Dies schließt den Abstand zwischen dem Inhalt und dem Rahmen ein.

3. Wie kann ich die Zeilenhöhe in cm umrechnen?
Verwende den Umrechnungsfaktor für cm zu Punkten (1 cm = 28,35 Punkte) und multipliziere mit dem Umrechnungsfaktor für Pixel, um die Zeilenhöhe anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige