Hallo Andreas,
die Umrechnung von Pixeln/Punkte ist leider nicht ganz so einfach. Ich nehme die folgenden Werte, wenn ich umrechnen muss, um annähernd das gewünschte Ergebnis zu bekommen:
Zeilenhöhe: Höhe in cm * 29,5
Bei gewünschten 3,2 cm Höhe müsstest du eine Zeilenhöhe von 94,4 eingeben
Spaltenbreite = =-0,71+5,1425*Breite in cm
Bei 6,2 cm Spaltenbreite müsstest du 33,17 eingeben.
Aber Achtung! Das sind nur Annäherungswerte und ggf. braucht es noch etwas feintuning. Wenn ich das in einer leeren Arbeitsmappe einstelle, dann ist im Ausdruck der Rahmen 3,2 cm hoch und 6,3 cm breit, also fast die von dir gewünschte Größe.
Bei der Breite und Höhe des Blattes würde ich noch jeweils 2 cm abziehen, da Drucker i.d.R. nicht randlos drucken.
Hier mal ein Beispielcode:
Sub ZeilenSpalten()
Dim intSpalten As Integer
Dim intSpaltenbreite As Integer
Dim intZeilenhoehe As Integer
Dim intZeilen As Integer
intSpaltenbreite = CInt(InputBox("Bitte geben Sie die gewünschte Spaltenbreite in cm ein!", "Eingabe Spaltenbreite"))
intSpalten = Int(18 / intSpaltenbreite)
intZeilenhoehe = CInt(InputBox("Bitte geben Sie die gewünschte Zeilenhöhe in cm ein!", "Eingabe Zeilenhöhe"))
intZeilen = Int(27.7 / intZeilenhoehe)
'Seitenränder auf jeweils 1 cm einstellen
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
End With
'Spaltenbreite formatieren
Range(Columns(1), Columns(intSpalten)).ColumnWidth = Round(-0.71 + 5.1425 * intSpaltenbreite, 2)
'Zeilenhöhe formatieren
Range(Rows(1), Rows(intZeilen)).RowHeight = Round(intZeilenhoehe * 29.5, 2)
End Sub
Durch die Berechnung der Spaltenbreite und Zeilenhöhe im Makro werden bei mir einem Ausdruck die von dir gewünschte Breite und Höhe nicht ganz erreicht. Beim Ausdruck sind die Kästchen 3 cm hoch und 6,1 cm breit.
Gruß
M.O.