Microsoft Excel

Herbers Excel/VBA-Archiv

Teilstring ersetzen und Fett formatieren


Betrifft: Teilstring ersetzen und Fett formatieren von: Mario
Geschrieben am: 11.07.2018 10:03:04

Hallo Forumsgemeinde,

leider habe ich für mein Problem bis jetzt keine Lösung gefunden. Daher stelle ich das mal ins Forum.

Bin gerade dabei in excel eine Arbeitsvertragsvorlage zu erstellen. Dabei sollen einzelne Teilstrings in einem Text ersetzt werden.

Vorlage:
Herr VORNAME NACHNAME wird das Unternehmen als STELLE.....

Das soll dann nach Eingabe diverser Variablen auch wieder so aussehen.
Herr MAX MUSTERMANN wird das Unternehmen als PROJEKTLEITER ....

Das Ändern der Variablen ist nicht das Problem sondern nur die Formatierung.

Dachte ich hätte jetzt eine Lösung gefunden. Hab dazu die Variablem mit Klammern versehen [ _ VORNAME] [NACHNAME] und setze diese dann mittels diesen Codes auf Fett.

Sub test()

Dim intStart As Integer, intEnde As Integer
Dim rng As Range

For Each rng In Range("B11:B11")
  If Len(rng) > 0 Then
    intStart = InStr(1, rng, "[")
    intEnde = InStr(1, rng, "]")
    If intStart > 0 And intEnde > 0 Then
      Do
        rng.Characters(intStart + 1, intEnde - intStart - 1).Font.Bold = True
        intStart = InStr(intEnde + 1, rng, "[")
        intEnde = InStr(intEnde + 1, rng, "]")
      Loop While intStart > 0 And intEnde > 0
    End If
  End If
  
End Sub

Soweit so gut, funktioniert auch. Nur muss ich die Klammern dann natürlich entfernen und wenn ich die ersetze ist die Formatierung im Text wieder weg. :-(

Hat zufällig jemand eine Idee wie ich das lösen kann. Vielleicht denke ich auch zu kompliziert. Bin mit meinem Latein auf jeden Fall am Ende.

mfg

Mario

  

Betrifft: AW: Teilstring ersetzen und Fett formatieren von: Matthias L
Geschrieben am: 11.07.2018 11:39:07

Hallo Mario

In Deinem Code fehlt das Next


nur so als Vorschlag:
Lass die eckigen Klammern gleich weg.

Das erste Zeichen ist dann immer das 6.Zeichen, wo Du beginnst Fett zu formatieren
Herr+Leerzeichen
Frau+Leerzeichen

Da Du nun ja den zu ersetzenden Namen der Person kennst, kannst Du so auch das Ende bestimmen.
Also ab Zeichen(6) bis zum Zeichen (6 + Länge(Name der Person)) formatierst Du Fett

Gruß Matthias


  

Betrifft: AW: Teilstring ersetzen und Fett formatieren von: Mario
Geschrieben am: 11.07.2018 12:53:09

Hallo Matthias,

danke für deine rasche Antwort.

Das next wollte sich nicht mitkopieren lassen, erst beim nächsten Mal :-)

Ich glaub ich hab es dank deines Tipps hinbekommen.

Sub test()

Dim intStart As Integer, intEnde As Integer
Dim rng As Range
Dim wert As String

wert = "Projektleiter"


For Each rng In Range("B11:B15")
  If Len(rng) > 0 Then
    
    intStart = InStr(1, rng, wert)
    intEnde = intStart + len(wert)
    If intStart > 0 And intEnde > 0 Then
        rng.Characters(intStart, intEnde - intStart).Font.Bold = True
    End If
  End If
Next
  
End Sub
Das funktioniert schon mal für jede Zeile im Bereich. Muss nur noch eine Schleife innerhalb der Zelle erstellen (falls der Wert mehrfach in der selben Zelle vorkommt). Dann sollte das passen. Danke nochmal.

mfg

Mario


  

Betrifft: AW: Teilstring ersetzen und Fett formatieren von: mmat
Geschrieben am: 11.07.2018 12:45:21

Hallo,

du mußt erst den Namen ersetzen und dann formatieren, etwa so (vereinfacht):

Sub ersetze()
 Dim intStart As Integer, intEnde As Integer
 Dim rng As Range
 Dim neu As String, s As String
   neu = "Max Mustermann"
 
 For Each rng In Range("B11:B11")
   If Len(rng) > 0 Then
     intStart = InStr(1, rng, "[")
     intEnde = InStr(1, rng, "]")
     If intStart > 0 And intEnde > 0 Then
       s = rng.Value
       s = Left(s, intStart - 1) + neu + Mid(s, intEnde + 1)
       rng.Value = s
       rng.Characters(intStart, Len(neu)).font.Bold = True
     End If
   End If
 Next
 End Sub



  

Betrifft: AW: Teilstring ersetzen und Fett formatieren von: Mario
Geschrieben am: 11.07.2018 12:59:12

Hallo mmat,

super, danke. Das funktioniert noch einfacher als das, was ich jetzt schon zusammengebastelt habe :-)


mfg

Mario


Beiträge aus dem Excel-Forum zum Thema "Teilstring ersetzen und Fett formatieren"