26.11.2020, 17:28
Hallo zusammen,
ich knoble gerade an einer Aufgabe, bei der ich mal wieder nicht weiterkomme und hoffe auf Eure Hilfe.
Vielleicht ist mein Ansinnen ja etwas abstrus, möchte die Problematik aber trotzdem mal kurz beschreiben.
In Zellen werden unterschiedlich lange Textstrings eingetragen. Nun möchte ich per Makro erreichen, dass in bestimmten Zellen, wobei zwei Zellen aufeinander folgen,
der Textinhalt der Zelle mit einem Zusatzstring erweitert wird.
Das kann man einfach tun, indem man an den vorhandenen String etwas dranhängt. Soweit so gut.
Ich möchte aber erreichen, dass der anzuhängende Zusatz unabhängig von der Spaltenbreite der Zelle ganz rechts am Zellenende steht.
Habe das in dem beigefügten Makro bisher so gelöst, dass ich ein paar Blanks eingefügt habe.... das gefällt mir so aber nicht weil die Stringlänge variiert.
Wäre schön, wenn Ihr mir mal wieder helfen könntet!
ich knoble gerade an einer Aufgabe, bei der ich mal wieder nicht weiterkomme und hoffe auf Eure Hilfe.
Vielleicht ist mein Ansinnen ja etwas abstrus, möchte die Problematik aber trotzdem mal kurz beschreiben.
In Zellen werden unterschiedlich lange Textstrings eingetragen. Nun möchte ich per Makro erreichen, dass in bestimmten Zellen, wobei zwei Zellen aufeinander folgen,
der Textinhalt der Zelle mit einem Zusatzstring erweitert wird.
Das kann man einfach tun, indem man an den vorhandenen String etwas dranhängt. Soweit so gut.
Ich möchte aber erreichen, dass der anzuhängende Zusatz unabhängig von der Spaltenbreite der Zelle ganz rechts am Zellenende steht.
Habe das in dem beigefügten Makro bisher so gelöst, dass ich ein paar Blanks eingefügt habe.... das gefällt mir so aber nicht weil die Stringlänge variiert.
Code:
Sub TextPartColour()
' Declarations and Initialisation
Dim rowX As Integer, colX As Integer
Dim CurrentCellText As String
Dim StartPosition
Dim EndPosition
Dim lenText
Dim newText
colX = ActiveCell.Column
rowX = ActiveCell.Row
'Get Text in Current Cell
CurrentCellText = ActiveSheet.Cells(rowX, colX).Value
'Get the Position of the Text
lenText = Len(CurrentCellText)
newText = CurrentCellText & " von WR"
StartPosition = InStr(1, newText, " von WR")
EndPosition = InStr(1, CurrentCellText, " bis WR")
ActiveSheet.Cells(rowX, colX).Value = newText
lenText = Len(ActiveSheet.Cells(rowX, colX).Value)
'Colour the Word "von WR" Red
If StartPosition > 0 Then
ActiveSheet.Cells(rowX, colX).Characters(StartPosition, lenText).Font.Color = RGB(255, 0, 0)
ActiveSheet.Cells(rowX, colX).Characters(StartPosition, lenText).Font.Bold = True
End If
ActiveCell.Offset(1, 0).Select
'Get Text in Current Cell
CurrentCellText = ActiveSheet.Cells(rowX + 1, colX).Value
newText = CurrentCellText & " bis WR"
EndPosition = InStr(1, newText, " bis WR")
ActiveSheet.Cells(rowX + 1, colX).Value = newText
lenText = Len(CurrentCellText)
'Colour the Word "von WR" Blue
If StartPosition > 0 Then
ActiveSheet.Cells(rowX + 1, colX).Characters(EndPosition, lenText).Font.Color = RGB(0, 0, 255)
ActiveSheet.Cells(rowX + 1, colX).Characters(EndPosition, lenText).Font.Bold = True
End If
End Sub
Wäre schön, wenn Ihr mir mal wieder helfen könntet!