Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nochmals Problem bei Text verketten

Nochmals Problem bei Text verketten
15.05.2006 09:47:03
Emil
Hallo,
in Zelle A1 steht der Ausdruck "5B", dabei hat das "B" die Formatierung "tiefgestellt".
Die Anweisung: Cells(1,1) = cells(1,1) & "x10" soll den Ausdruck "5Bx10" liefern, dabei soll das "B" tiefgestellt bleiben. Die Formatierung wird durch das Verketten aber gelöscht.
Wie kann ich dieses Problem lösen?
Gruß Emil
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nochmals Problem bei Text verketten
15.05.2006 10:06:21
Peter
Hallo Emil,
so geht es - wenn das 'B' immer an der zweiten Stelle im Text steht:
Public

Sub Verketten()
Cells(1, 1) = Cells(1, 1) & "x10"
Cells(1, 1).Characters(Start:=2, Length:=1).Font.Subscript = True
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Nochmals Problem bei Text verketten
15.05.2006 11:06:24
Emil
Hallo Peter,
vielen Dank für die Antwort. Leider ist das Problem dadurch nicht gelöst, da ich eine allgemeine Lösung für beliebige Fälle brauche. Hast Du noch eine andere Idee?
Gruß Emil
AW: Nochmals Problem bei Text verketten
15.05.2006 11:13:54
Erich
Hallo Emil,
wie wäre es damit?
Sub TstVerketten()
VerkettenHochTief [a8], [a9], [a10:a11]
VerkettenHochTief [a8:a9], [a9], [a10:a11]
End Sub
Sub VerkettenHochTief(rg1 As Range, rg2 As Range, rgErg As Range)
Dim ii%
If rg1.Rows.Count * rg1.Columns.Count * rg2.Rows.Count * rg2.Columns.Count <> 1 Then
MsgBox "Kann nur mit einzelnen Quellzellen aufgerufen werden", _
vbCritical, "VerkettenHochTief"
Exit Sub
End If
With rgErg
.Value = rg1 & rg2
For ii = 1 To Len(rg1)
If rg1.Characters(ii, 1).Font.Subscript Then
.Characters(Start:=ii, Length:=1).Font.Subscript = True
ElseIf rg1.Characters(ii, 1).Font.Superscript Then
.Characters(Start:=ii, Length:=1).Font.Superscript = True
End If
Next ii
For ii = 1 To Len(rg2)
If rg2.Characters(ii, 1).Font.Subscript Then
.Characters(Start:=Len(rg1) + ii, Length:=1).Font.Subscript = True
ElseIf rg2.Characters(ii, 1).Font.Superscript Then
.Characters(Start:=Len(rg1) + ii, Length:=1).Font.Superscript = True
End If
Next ii
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Nochmals Problem bei Text verketten
15.05.2006 11:24:07
Franz
Hallo Emil,
folgendes Makro ermittelt zunächst die Position des tiefgesetzten Zeichens

Sub Verketten()
'Position des tiefgesetzten Zeichens finden
Position = 0
For I = 1 To Len(Cells(1, 1))
If Cells(1, 1).Characters(Start:=I, Length:=1).Font.Subscript = True Then
Position = I
Exit For
End If
Next I
Cells(1, 1) = Cells(1, 1) & "x10"
If Position > 0 Then
Cells(1, 1).Characters(Start:=Position, Length:=1).Font.Subscript = True
End If
End Sub

Gruß
Franz
Anzeige
AW: Nochmals Problem bei Text verketten
15.05.2006 11:48:42
Erich
Hallo nochmal,
wenn du nicht zwei Zellen verketten willst, sondern an eine Zelle vorn oder hinten einen Text anhängen willst, ginge das so:
Sub TstVerkett()
VerkettenVor "abc", [a9], [a14]
VerkettenNach [a9], "abc", [a15]
End Sub
Sub VerkettenNach(rgQu As Range, strNach As String, rgErg As Range)
Dim ii%
With rgQu
If .Rows.Count * .Columns.Count <> 1 Then
MsgBox "Kann nur mit einzelnen Quellzellen aufgerufen werden", _
vbCritical, "VerkettenHochTief"
Exit Sub
End If
rgErg = .Value & strNach
For ii = 1 To Len(rgQu)
If .Characters(ii, 1).Font.Subscript Then
rgErg.Characters(Start:=ii, Length:=1).Font.Subscript = True
ElseIf .Characters(ii, 1).Font.Superscript Then
rgErg.Characters(Start:=ii, Length:=1).Font.Superscript = True
End If
Next ii
End With
End Sub
Sub VerkettenVor(strVor As String, rgQu As Range, rgErg As Range)
Dim ii%
With rgQu
If .Rows.Count * .Columns.Count <> 1 Then
MsgBox "Kann nur mit einzelnen Quellzellen aufgerufen werden", _
vbCritical, "VerkettenHochTief"
Exit Sub
End If
rgErg = strVor & .Value
For ii = 1 To Len(rgQu)
If .Characters(ii, 1).Font.Subscript Then
.Characters(Start:=ii + Len(strVor), Length:=1).Font.Subscript = True
ElseIf .Characters(ii, 1).Font.Superscript Then
.Characters(Start:=ii + Len(strVor), Length:=1).Font.Superscript = True
End If
Next ii
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Nochmals Problem bei Text verketten
15.05.2006 11:56:15
Emil
Hallo Franz und Erich,
ja, so funktioniert es. Vielen Dank!
Eine direkte Lösung gibt es wohl leider nicht.
Gruß Emil
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige