Code nochmal erweitert
04.12.2021 14:58:13
Fritz
Hallo zusammen,
Ich habe den Code mal erweitert, weil ich auch noch den 2.Namen in Kursiv und auch die Leerzeichen (die mich immer stören) durch "_" ersetzen möchte.
Nun markiere ich durch den Select-Befehl die Zellen um den Inhalt dann zu ändern.
Der Code macht auch was er soll, aber hier gibt es doch bestimmt eine intelligentere Lösung ohne den Bereich zu markieren, oder?
Außerdem sieht es ein wenig doppelt gemoppelt aus.
Hier der Code:
Sub Kursiv()
Dim Zelle_Anfang1, Zelle_Anfang2, Zelle_Ende, C As Range
Dim A1_row, A1_col, A2_col, A2_col, E_col, E_col As Long
Set Zelle_Anfang1 = ActiveSheet.UsedRange.Find(what:="Name", LookIn:=xlValues, lookat:=xlWhole)
Set Zelle_Anfang2 = ActiveSheet.UsedRange.Find(what:="Name2", LookIn:=xlValues, lookat:=xlWhole)
Set Zelle_Ende = ActiveSheet.UsedRange.Find(what:="Ergebnis", LookIn:=xlValues, lookat:=xlWhole)
If Not Zelle_Anfang1 Is Nothing And Not Zelle_Anfang2 Is Nothing And Not Zelle_Ende Is Nothing Then
A1_row = Zelle_Anfang1.Row
A1_col = Zelle_Anfang1.Column
A2_row = Zelle_Anfang2.Row
A2_col = Zelle_Anfang2.Column
E_row = Zelle_Ende.Row
E_col = Zelle_Ende.Column
Union(Range(Cells(A1_row + 1, A1_col), Cells(E_row - 1, A1_col)), _
Range(Cells(A2_row + 1, A2_col), Cells(E_row - 1, A2_col))).Font.Italic = True
Union(Range(Cells(A1_row + 1, A1_col), Cells(E_row - 1, A1_col)), _
Range(Cells(A2_row + 1, A2_col), Cells(E_row - 1, A2_col))).Select
With Application.WorksheetFunction
For Each C In Selection
C.Value = .Substitute((C.Value), " ", "_")
Next C
End With
End If
Set Zelle_Anfang1 = Nothing: Set Zelle_Anfang2 = Nothing: Set Zelle_Ende = Nothing
End Sub
Hat jemand eine bessere Lösung?
Gruß Fritz