Hy,
Ich habe folgendes Problem, ich möchte eine Rechnungsvorlage mittels Printer Funktion ausdrucken. Wenn allerdings der Text einer Spalte zu lang ist wird der Text in der daneben liegenden Spalte überschrieben, bzw. habe ich eine Funktion gefunden die den Text abschneidet. Ich hätte aber gerne, dass der Text, der zu lang ist einfach in die nächste Zeile darunter gedruckt wird. Wisst ihr, wie das funktionieren könnte?
Hier der Code zum Abschneiden des Textes, vielleicht kann man ja daraus was basteln!?
Vielen Dank!
mfg
Ich habe folgendes Problem, ich möchte eine Rechnungsvorlage mittels Printer Funktion ausdrucken. Wenn allerdings der Text einer Spalte zu lang ist wird der Text in der daneben liegenden Spalte überschrieben, bzw. habe ich eine Funktion gefunden die den Text abschneidet. Ich hätte aber gerne, dass der Text, der zu lang ist einfach in die nächste Zeile darunter gedruckt wird. Wisst ihr, wie das funktionieren könnte?
Hier der Code zum Abschneiden des Textes, vielleicht kann man ja daraus was basteln!?
Code:
Private Function PrintCheckLength(ByVal sText As String, _
ByVal sWidth As String) As String
Dim iLen As Integer
If Left$(sWidth, 1) = "^" Or Left$(sWidth, 1) = ">" Then
iLen = Val(Mid$(sWidth, 2))
Else
iLen = Val(sWidth)
End If
sText = RTrim$(sText)
With Printer
' wenn rechtsbündig, Platz für ein
' abschliessendes Leerzeichen lassen
' (als Trenner zum nachfolgenden Text)
If Left$(sWidth, 1) = ">" Then _
iLen = iLen - .TextWidth(" ")
' wenn Text zu lang, Text am Ende kürzen
While .TextWidth(sText) > iLen
sText = Left$(sText, Len(sText) - 1)
Wend
If Left$(sWidth, 1) = "^" Then
' Text zentrieren
While .TextWidth(sText) < iLen
sText = " " + sText + " "
Wend
ElseIf Left$(sWidth, 1) = ">" Then
' Text rechtsbündig
While .TextWidth(sText) < iLen
sText = " " + sText
Wend
sText = sText + " "
End If
End With
PrintCheckLength = sText
End Function
Vielen Dank!
mfg