Excel - Bezug incl. Formatierung

Asked By chickolin on 05-Mar-09 08:09 AM
Hallo NG,

welche Möglichkeiten hat man, wenn man den Bezug auf eine Zelle (z.B. =A1)
setzt und den Inhalt von Zelle A1 komplett mit den darin enthaltenen
Formatierungen angezeigt bekommen will?
Also in der Zelle (z.b. A1) stehen Wörter, deren Buchstaben unterschiedliche
Formatierungen (fett, kursiv, Farbwert) haben.
Lösungsvorschläge sind auch mittels VBA willkommen.

Gruß Reinhard




Alexander Wolff replied on 05-Mar-09 08:30 AM
Die Tastatur von Reinhard Schüll wurde wie folgt gedrückt:

Seltsam, dass das jetzt immer häufiger gewünscht wird. Die Welt ist so schön
bonbonfarben ... da muss das jetzt auch möglich sein.

a)

Es geht nur via VBA. Du liest die Eigenschaften der bezogenen Zelle aus und
überträgst sie aufs Ziel. Das würde ich allerdings für ein komfortables
Arbeiten (abhängig natürlich von der Modellgröße) immer nur manuell anstoßen
lassen, nicht automatisch.

Vorteil auch: Du vereinbarst dies nur für bestimmte Zellen, statt alle

b)

Das war nicht ganz korrekt bei a): Du kannst auch "Bild kopieren" verwenden
... bitte googeln.
--
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2
chickolin replied on 05-Mar-09 08:57 AM
Hallo Alexander,

für mich war über Jahrzehnte (!) hinweg Excel eine
Tabellenkalkulationssoftware und es grauste mir von den vielen bunten
Malmöglichkeiten in den neueren Versionen, weil da zuviel Rechenleistung
hierfür verplempert wurde ....

Nun, die Zeiten ändern sich, wie du selbst festgestellt hast.

Also über VBA auslesen und übertragen. Eigentlich bin ich in VBA kein
Anfänger, aber hier geht es um das Auslesen jedes einzelnen Zeichens in der
Zelle und nicht nur um die Zelleigenschaft als solches.

Konkret suche ich also einen VBA-Syntax, wie ich den Inhalt mit "Optik"
einer Zelle exakt auf eine andere Zelle übertragen kann.

Vielleicht hat auch jemand eine andere Idee, über die Kamera-Funktion z.B.
Nur ist dann die Problematik, dass die "Kamera" die Zelle wechseln können
sollte.

Gruß Reinhard
Andreas Killer replied on 05-Mar-09 09:40 AM
Reinhard Schüll schrieb:

Dann sollte Dir das schon helfen:

Sub Test()
Range("A1").Copy
Range("A2").PasteSpecial xlPasteFormats, _
xlPasteSpecialOperationNone
End Sub

Andreas.
Andreas Killer replied on 05-Mar-09 10:03 AM
Reinhard Schüll schrieb:

Hab noch was vergessen, weil Du sagst ja "Auslesen jeden einzelnen
Zeichens", d.h. Du hast sowas wie c²=a²+b² in bunt in einer Zelle stehen?

Dazu musst Du das Characters-Object bemühen um an die einzelnen
Formatierungen zu kommen. Ich bin mir nicht sicher, aber ich denke das
geht nur wenn Du die Zeichen einzeln abklapperst:

Sub PasteCharacters(FromR As Range, ToR As Range)
'Überträgt das Einzelzeichenformat
Dim RLen As Long, I As Long
RLen = WorksheetFunction.Min(Len(FromR), Len(ToR))
For I = 1 To RLen
ToR.Characters(I, 1).Font.Name = _
FromR.Characters(I, 1).Font.Name
ToR.Characters(I, 1).Font.FontStyle = _
FromR.Characters(I, 1).Font.FontStyle
ToR.Characters(I, 1).Font.Size = _
FromR.Characters(I, 1).Font.Size
ToR.Characters(I, 1).Font.Strikethrough = _
FromR.Characters(I, 1).Font.Strikethrough
ToR.Characters(I, 1).Font.Superscript = _
FromR.Characters(I, 1).Font.Superscript
ToR.Characters(I, 1).Font.Subscript = _
FromR.Characters(I, 1).Font.Subscript
ToR.Characters(I, 1).Font.Underline = _
FromR.Characters(I, 1).Font.Underline
ToR.Characters(I, 1).Font.OutlineFont = _
FromR.Characters(I, 1).Font.OutlineFont
ToR.Characters(I, 1).Font.Shadow = _
FromR.Characters(I, 1).Font.Shadow
ToR.Characters(I, 1).Font.ColorIndex = _
FromR.Characters(I, 1).Font.ColorIndex
Next
End Sub

Vielleicht hat ja noch jemand eine Idee wie das schneller/besser geht.

Andreas.
chickolin replied on 05-Mar-09 10:33 AM
Hallo Andreas,

deine Sub hat mir geholfen. Kurioserweise benötige ich hauptsächlich die
Eigenschaft "Bold", die du nicht aufgeführt hast. Auch musste ich noch etwas
mit Dim und Set arbeiten ....

Gruß Reinhard