Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SubText zwischen <b></br> in Fett/Bold

SubText zwischen <b></br> in Fett/Bold
20.08.2020 12:55:39
Nilo
HI zusammen,
ich versuche mich gerade in SubString, habe im Netzt 2 Beispiele gefunden, komme aber nicht weiter.
Ganz Simpel: Range A:A - bla blaaaaaa bla das hier soll fett bla blaaa
(hab die tags hier mal mit Leerzeichen versehen damit sie auch dargestellt werden ;)
Danke mal für eure Hilfe
Gruß
Nilo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SubText zwischen <b></br> in Fett/Bold
20.08.2020 13:41:41
volti
Hallo Nilo,
um in HTML etwas fett zu formatieren, musst Du es in <b>fett</b> setzen.
Heute findet man auch meistens <strong>fett</strong>
<u> steht für unterstrichen und <i> für kursiv.
Als Ende-Tag hattest Du den Zeilenumbruch verwendet </ br>
viele Grüße
Karl-Heinz
AW: SubText zwischen <b></br> in Fett/Bold
21.08.2020 08:25:52
Nilo
Hi Karl-Heinz,
das ist mir soweit bekannt, jedoch versuche ich mich in VBA um das Problem zu lösen.
Ich habe diverse HTML Texte die ich in Excel einlese.
Ich möchte nun alle Texte FETT die eben zwischen diesen beiden Zeichen stehen.
Aktuell mache ich es so:
Ich ersetzt die FETT Tags in § und setze das Format und Text dazwischen dann als BOLD.
Wie kann ich das Makro so schreiben das es nach 2 unterschiedliche Zeichen sucht und dann den Text dazwischen in BOLD formatiert?
Sub InstantBold()
ActiveWorkbook.RefreshAll
Dim r As Range, st As String, boo As Boolean
Dim L As Long, i As Long
Range("A:A").Select
For Each r In Selection
st = r.Text
boo = False
L = Len(st)
For i = 1 To L
If Mid(st, i, 1) = "§" Then
boo = Not boo
Else
If boo Then r.Characters(i, 1).Font.Bold = True
End If
Next i
Next r
Range("A1").Select
End Sub
Danke mal und Gruß
Nilo
Anzeige
AW: SubText zwischen <b></br> in Fett/Bold
21.08.2020 10:56:51
volti
Hallo Nilo,
hier meine Idee dazu. Ich habe gleich unterstrichen und kursiv mit eingebaut.
Mehrere Formatierung übereinander, also ein Wort fett und unterstrichen, werden (noch) nicht unterstützt.
Probier's mal aus:
[+][-]
 
010
020
030
040
050
060
070
080
090
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
Option Explicit

Sub FormatiereFeld()
 Dim Pos(2, 5) As Integer, sArt(5) As String, i As Integer, Text As String
  
 Text = "Dieses hier ist <b>fett</b> markiert und <b>dieses</b> auch " _
      & "und dieses ist <u>unterstrichen</u>, dies dagegen <i>kursiv</i>."

 Do
   Pos(1, i) = InStr(Text, "<")
   sArt(i) = Mid(Text, Pos(1, i) + 1, 1)
   If Pos(1, i) = 0 Then Exit Do
   If Pos(1, i) > 0 Then
      Text = Left(Text, Pos(1, i) - 1) & Mid(Text, Pos(1, i) + 3)
      Pos(2, i) = InStr(Text, "</" & sArt(i) & ">")
      If Pos(2, i) > 0 Then
         Text = Left(Text, Pos(2, i) - 1) & Mid(Text, Pos(2, i) + 4)
      End If
      i = i + 1
   End If
  Loop
  
  With ActiveCell
   .Value = Text
   For i = 0 To i - 1
     With ActiveCell.Characters(Start:=Pos(1, i), Length:=Pos(2, i) - Pos(1, i)).Font
      Select Case sArt(i)
      Case "b": .FontStyle = "Fett"
      Case "i": .Italic = True
      Case "u": .Underline = xlUnderlineStyleSingle
      End Select
     End With
   Next i
  End With

End Sub
 

viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: SubText zwischen <b></br> in Fett/Bold
21.08.2020 10:58:39
volti
Hallo Nilo,
hier meine Idee dazu. Ich habe gleich unterstrichen und kursiv mit eingebaut.
Mehrere Formatierung übereinander, also ein Wort fett und unterstrichen, werden (noch) nicht unterstützt.
Probier's mal aus:
[+][-]
Option Explicit Sub FormatiereFeld() Dim Pos(2, 5) As Integer, sArt(5) As String, i As Integer, Text As String Text = "Dieses hier ist <b>fett</b> markiert und <b>dieses</b> auch " _ & "und dieses ist <u>unterstrichen</u>, dies dagegen <i>kursiv</i>." Do Pos(1, i) = InStr(Text, "<") sArt(i) = Mid(Text, Pos(1, i) + 1, 1) If Pos(1, i) = 0 Then Exit Do If Pos(1, i) > 0 Then Text = Left(Text, Pos(1, i) - 1) & Mid(Text, Pos(1, i) + 3) Pos(2, i) = InStr(Text, "</" & sArt(i) & ">") If Pos(2, i) > 0 Then Text = Left(Text, Pos(2, i) - 1) & Mid(Text, Pos(2, i) + 4) End If i = i + 1 End If Loop With ActiveCell .Value = Text For i = 0 To i - 1 With ActiveCell.Characters(Start:=Pos(1, i), Length:=Pos(2, i) - Pos(1, i)).Font Select Case sArt(i) Case "b": .FontStyle = "Fett" Case "i": .Italic = True Case "u": .Underline = xlUnderlineStyleSingle End Select End With Next i End With End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
Goil :) - noch ne kleine Schleife und schick isses
21.08.2020 22:27:23
Nilo
Karl-Heinz,
das ist total super!
Vielen Dank!
...noch eine kleine Schleife zum ansteuern und deinen Text durch ActiveCell.Value ersetzt und gut ist das Ding.
Sub BoldbyCell()
Dim Zelle As Range
For Each Zelle In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Zelle.Activate
FormatiereFeld
Next Zelle
End Sub
Ich habe die auch mal in Dein Makro eingebaut, erstmal so = simpel aber übersichtlich :)
Gruß
Nilo
AW: Goil :) - noch ne kleine Schleife und schick isses
21.08.2020 22:52:12
volti
Hallo Nilo,
vielen Dank für die positive Rückmeldung. Schön, wenn es passt.
Hier zum Abschluss noch eine verbesserte Variante, die auch mehrfach Formatierung eines Bereichs erlaubt und vor allem (ein Manko der Erstversion) das Handling anderer HTML-Tags, falls sie vorkommen sollten.
[+][-]
Sub FormatiereExcelFeldAusHTML() Dim Pos(2, 5) As Integer, sArt(5) As String, I As Integer, Text As String Dim P As Integer, l As Integer Text = "Dieses <font color=blue>hier</font> ist <b>fett</b> markiert " _ & "und <b><i><u>dieses</u></i></b> auch " _ & "und dieses ist <u>unterstrichen</u>, dies dagegen <i>kursiv</i>." Do P = InStr(P + 1, Text, "<"): If P = 0 Then Exit Do sArt(I) = Mid(Text, P + 1, 2) If sArt(I) Like "[biu]>" Then Pos(1, I) = P Do l = InStr(Pos(1, I), Text, ">") - Pos(1, I) + 1 Text = Left(Text, Pos(1, I) - 1) & Mid(Text, Pos(1, I) + l) Pos(2, I) = InStr(Text, "</" & Right(" " & sArt(I), 2)) If Pos(2, I) > 0 Then l = InStr(Pos(2, I), Text, ">") - Pos(2, I) + 1 Text = Left(Text, Pos(2, I) - 1) & Mid(Text, Pos(2, I) + l) End If If Not Mid(Text, Pos(1, I) + 1, 2) Like "[biu]>" Then Exit Do sArt(I) = sArt(I) & Mid(Text, Pos(1, I) + 1, 2) DoEvents Loop I = I + 1 End If Loop With ActiveCell .value = Text For I = 0 To I - 1 With .Characters(Start:=Pos(1, I), Length:=Pos(2, I) - Pos(1, I)).Font If sArt(I) Like "*b>*" Then .FontStyle = "Fett" If sArt(I) Like "*i>*" Then .Italic = True If sArt(I) Like "*u>*" Then .Underline = xlUnderlineStyleSingle End With Next I End With End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
Ganz lieben Dank für dein Meisterwerk
22.08.2020 14:11:33
Nilo
Das macht mich auch ein wenig neidisch (im positiven) :)
Bg
Nilo

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige