Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
484to488
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
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mehrere Schriftarten in gleicher Zelle

Mehrere Schriftarten in gleicher Zelle
14.09.2004 13:30:51
Barbara
Hallo,
ich würde gerne in einer Zelle jedes d durch ein rotes Karo ersetzen, das wäre Zeichen 168, color 255, Font.name "Symbol"
Das d steht für Diamond (Spielkarten).
Die anderen Zeichen sollen so bleiben, wie sie sind.
Nebenfrage:
Gibt es eine VBA-Funktion, mit der ich einzelne Zeichen ersetzen kann?
Mit mid(Text, 4, 1) bekomme ich zB den vierten Buchstaben heraus. Aber wie bekomme ich einen anderen Buchstabe stattdessen rein?
Oder anders: Erstze den vierten Buchstaben durch ein i
Danke, B.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
zur zweiten Frage
Reinhard
Hi Barbara,

Sub Test()
Wort = "abcdef"
Mid(Wort, 4, 1) = "x"
MsgBox Wort
End Sub

Gruß
Reinhard
AW: zur zweiten Frage
nighty
hi Reinhard :)
ich brauch immer ein wenig laenger :))
zwei finger tippsystem :)
gruss nighty
AW: zur zweiten Frage
14.09.2004 13:55:58
Barbara
Danke, das ist eine gute Antwort, und so einfach.
Bleibt nur noch das Problem der gemischten Stile.
Habe eine Zelle mit verschiedenen Stilen und Farben getestet:
ActiveCell.Font.Color ist 0
ActiveCell.Font.Name ist auch 0, wenn mehrere Stile vorkommen.
Bleibt noch die Frage offen:
Wie kann man nun mitels VBA einen Text mit mehreren Stilen und Farben in einer Zelle erzeugen?
Anzeige
AW: Mehrere Schriftarten in gleicher Zelle
nighty
hi barbera :)
wie gewuenscht :)
gruss nighty
ein kleines beispiel auf zelle a1 bezogen(dessen inhalt)

Sub makro01()
Dim name1 As String
Dim laenge As Integer
Dim durchlauf As Integer
name1 = Cells(1, 1)
laenge = Len(name1)
For durchlauf = 1 To laenge
If Mid$(name1, durchlauf, 1) = "i" Then
name1 = Mid$(name1, 1, durchlauf - 1) & "DeinZeichen" & Mid$(name1, durchlauf + 1, laenge)
durchlauf = laenge
End If
Next durchlauf
Cells(2, 1) = name1
End Sub

AW: Mehrere Schriftarten in gleicher Zelle
nighty
hi barbara :)
oder so :))
bezieht sich auf die aktive zelle
gruss nighty

Sub Makro1()
Dim laenge As Integer
Dim durchlauf As Integer
Dim name1 As String
rem hier der asci code deines einzusetzenden zeichens
name2 = Chr$(168)
name1 = Cells(1, 1)
laenge = Len(name1)
For durchlauf = 1 To laenge
rem hier das auszutauschende zeichen
If Mid$(name1, durchlauf, 1) = "i" Then
With ActiveCell.Characters(Start:=durchlauf, Length:=1).Font
rem hier dein font
.Name = "Albertus"
.FontStyle = "Standard"
rem hier die font groesse
.Size = 30
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveCell = Mid$(name1, 1, durchlauf - 1) & name2 & Mid$(name1, durchlauf + 1, laenge)
durchlauf = laenge
End If
Next durchlauf
End Sub

Anzeige
AW: Mehrere Schriftarten in gleicher Zelle
14.09.2004 16:22:37
Barbara
Danke Reinhard, danke Nighty,
Ihr seid super, und so schnell. Ich habe alles verarbeitet.
Nighty, Du hast nach dem Mid immer so ein komisches $-Zeichen, wozu das? hat das eine bestimmte Funktion?
Zitat: ...Mid$(name1,...
Dake Euch beiden nochmals.
LG, B.
AW: Mehrere Schriftarten in gleicher Zelle
Reinhard
Hi Barbara,
ich glaub in VBA ist mid und mid$ das Gleiche. may be kommt vom UraltBasic, da war da wohl ein Unterschied *nix genaues weiss*
Gruß
Reinhard
und zur ersten frage
Reinhard
Hi barbara,
Color 255? es gibt doch nur 56 Farben? probierl mal:

Sub Makro2()
With Worksheets("Tabelle1")
For n = 1 To Len(.Range("A1"))
'MsgBox .Range("A1").Characters(n, 1).Text
If .Range("A1").Characters(n, 1).Text = "d" Then
.Range("A1").Characters(n, 1).Font.Name = "Symbol"
.Range("A1").Characters(n, 1).Text = Chr(168)
.Range("A1").Characters(n, 1).Font.ColorIndex = 3
End If
Next n
End With
End Sub

Gruß
Reinhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige