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

zellinhalt formatieren

zellinhalt formatieren
02.09.2003 11:58:14
joel
hallo

in einer zelle steht folgende formel:

=WENN(sprache="deutsch";"Nettogeschossfläche NGF";"surface nette SN")
(bem: sprache ist die zelle mit der sprachwahl)

nun möchte ich die abkürzung (NGF, SN) in fettschrift anzeigen.
hat jemand eine idee, wie ich das machen kann?

gruss

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zellinhalt formatieren
02.09.2003 12:02:33
galenzo
Ja. Mit der "Bedingten Formatierung"...
???
02.09.2003 12:06:59
joel
hallo galenzo

wäre dir dankbar, wenn du mir da bisschen auf die Sprünge helfen könntest. bitte um konkreteren Hinweis.

danke
sorry falsch...
02.09.2003 13:56:07
galnzo
sorry - geht so nich..
AW: zellinhalt formatieren
02.09.2003 12:30:41
ChrisL
Hi Jeol

m.E. brauchst du VBA...


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then
If Range("A1") = "deutsch" Then
Range("A2") = "Nettogeschossfläche NGF"
Range("A2").Characters(Start:=21, Length:=3).Font.FontStyle = "Bold"
Else
Range("A2") = "surface nette SN"
Range("A2").Characters(Start:=15, Length:=2).Font.FontStyle = "Bold"
End If
End If
End Sub

Alt + F11, links Doppelklick auf Tabelle, Code einfügen.

A1 = Zelle mit Sprache
A2 = Zelle mit Formel

Gruss
Chris
Anzeige
guter Ansatz.. bitte weitere hilfe
02.09.2003 13:11:32
joel
hallo chris

danke für deine idee.. das funktioniert natürlich schon so, nur wird der aufwand enorm, wenn ich drandenke, wieviele felder da angpasst werden müssen.

ist es nicht möglich, denn wert der zelle mit der "wenn"-formel über eine eigenschaft der zelle zu erhalten? dann könnte ich z.B. nach einer string-kette suchen, die mehrere grossbuchstaben nacheinander enthält und diese anschliessend "fett" machen. so hätte ich nur eine routine, der ich einen bestimmten range übergeben kann, in dem die zellen anschliessend angepasst werden.

gruss
AW: guter Ansatz.. bitte weitere hilfe
02.09.2003 13:35:59
ChrisL
Hi Joel

Es fehlt mir leider der Durchblick in deinem Projekt. Du kannst schon nach einem String suchen... Instr(Zelle, "SN") aber wie dir das genau weiterhelfen soll versteh ich nicht.

> ...nur wird der aufwand enorm, wenn ich drandenke, wieviele felder da angpasst werden müssen.

Wo sind denn deine Felder? Du musst nicht jedes Feld einzeln formatieren.

Gruss
Chris
Anzeige
AW: guter Ansatz.. bitte weitere hilfe
02.09.2003 14:34:57
joel
hallo chris

ok, hier ein grober überblick:

ich habe eine excel-mappe mit ca. 15 arbeitsblättern. die mappe dient der kostenkalkulation in der projektierungsphase von bürobauten.

ich habe die aufgabe, das bestehende file zu verbessern. so habe ich mich auch entschlossen, das file zweisprachig zu machen.

in vielen zellen steht also text in deutsch oder französisch. in einigen zellen ist der text teilweise hervorgehoben (eben, z.B. "NGF" in "Nettogeschossfläche NGF").

für diese ca. 50 zellen, die ähnlich sind, wären also jeweils die grossbuchstaben fett. in anderen zeilen sind dies z.B. die zahlen.

da ich innerhalb der wenn-formel nicht unterschiedlich formatieren kann, muss ich dies anschliessend mit VBA machen. die frage ist nur wie (deine erste lösung für alle zellen zu schreiben ist mir zu aufwändig).

hoffe, du hast jetzt den durchblick und kannst mir nochmals helfen.

danke, gruss joel
Anzeige
Idee aber geht nicht :-(
02.09.2003 15:01:37
ChrisL
Hi Joel

Die Idee hab ich, aber ich brachte es (noch) nicht zum Laufen. Muss dringend weg, bin aber später wieder zurück. Vielleicht findest du den Fehler auch selber...

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim iBlatt As Integer
Dim Zelle As Object
If Target.Address = "$A$1" Then
For iBlatt = 1 To Worksheets.Count
For Each Zelle In Worksheets(iBlatt).UsedRange
If Zelle = "Nettogeschossfläche NGF" Then Zelle.Characters(Start:=21, Length:=3).Font.FontStyle = "Bold"
If Zelle = "surface nette SN" Then Zelle.Characters(Start:=15, Length:=2).Font.FontStyle = "Bold"
Next Zelle
Next iBlatt
End If
End Sub

Gruss
Chris
Anzeige
versteh die Welt nicht mehr
02.09.2003 18:43:24
ChrisL
Hi Joel

Sorry, aber das wird heute nichts mehr. Versteh einfach nicht wieso es nicht geht.

Nichts für Ungut.

Chris
Zündende Idee ;-)
03.09.2003 10:19:09
ChrisL
Hi Joel

So jetzt ist mir doch noch die Idee gekommen...
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim iBlatt As Integer
Dim Zelle As Object
If Target.Address = "$A$1" Then
Application.ScreenUpdating = False
For iBlatt = 1 To Worksheets.Count
For Each Zelle In Worksheets(iBlatt).UsedRange
If Target = "deutsch" And Zelle = "surface nette SN" Then
Zelle = "Nettogeschossfläche NGF"
Zelle.Characters(Start:=21, Length:=3).Font.FontStyle = "Bold"
End If
If Target <> "deutsch" And Zelle = "Nettogeschossfläche NGF" Then
Zelle = "surface nette SN"
Zelle.Characters(Start:=15, Length:=2).Font.FontStyle = "Bold"
End If
Next Zelle
Next iBlatt
Application.ScreenUpdating = True
End If
End Sub

Gruss
Chris
Anzeige
AW: Zündende Idee ;-)
03.09.2003 11:47:56
joel
hallo chris

offenbar habe ich mein problem nicht klar formuliert: nur in einer zelle steht "Nettogeschossfläche NGF", in den anderen stehen analoge ausdrücke, z.B. "Aussen-Konstruktionsfläche AKF". nun sollen jeweils die Abkürzung (Grossbuchstaben) Fett geschrieben werden..

Martin Beck hat mir eine Lösung in diese Richtung geschrieben.

danke dir trotzdem für deine super hilfe, schliesslich war ich nicht fähig, die aufgabe verständlich zu formulieren - und gelernt habe ich auch aus deinen ausführungen (z.B. die Eigenschaft "usedRange" hatte ich bisher noch nie verwendet..

danke nochmals, gruss
Anzeige
Weiterer Ansatz
02.09.2003 16:12:21
Martin Beck
Hallo Joel,

in einem ähnlichen Zsammenhang habe ich mal folgendes Makro geschrieben, vielleicht kannst Du es anpassen.

Gruß
Martin Beck


Sub Einzelne_Zeichen_formatieren_in_ausgewähltem_Bereich()
Application.ScreenUpdating = False
For Each cell In Selection
Z = cell.Row
s = cell.Column
Cells(Z, s).Select
On Error Resume Next
A = ActiveCell.Characters.Count
For j = 1 To A
If ActiveCell.Characters(j, 1).Text = "b" Then
ActiveCell.Characters(j, 1).Font.Name = "Symbol"
End If
If ActiveCell.Characters(j, 1).Text = "2" Then
ActiveCell.Characters(j, 1).Font.Superscript = True
End If
Next j
Next cell
Application.ScreenUpdating = True
End Sub

Anzeige
dipp dopp!
03.09.2003 11:41:17
joel
hallo martin

yep, damit lässt sichs machen! danke dir!

gruss
oder doch nicht?
03.09.2003 11:54:25
joel
hallo nochmal

irgendwie klappts doch nicht

in feld A3 steht eine Wenn-Formel,
in feld A4 steth eine Konstante

führe ich dein Makro aus, so ändert sich nur die Konstante..

https://www.herber.de/bbs/user/845.xls

da wäre ich also wieder beim alten: wie spreche ich den Wert der Zelle A3 an???

glaube da kann ChrisL weiterhelfen..

werd mals selbst noch bisschen tüfteln

gruss
AW: oder doch nicht?
03.09.2003 12:06:20
ChrisL
Hi Joel

Unter PS: hast du geschrieben > ...value.characters(..) geht nicht!

Habe ziemlich lange gebraucht, bis ich begriffen habe, was du damit gemeint hast bzw. was ich glaube was du damit gemeint hast :-)

Jedenfalls das Problem ist, dass du nicht Teile einer Zelle fett machen kannst, wenn eine WENN Formel drin steht. Auch manuel geht dies ja nicht, deshalb wäre es eben schön gewesen, wenn man z.B. mit ...value.characters(..) darauf hätte zugreiffen können, aber eben, geht leider nicht.

Dies war übrigens auch das Problem, weshalb mein Makro erst nicht funktioniert hat und weshalb ich anschliessend die Formeln mit einem fixen Wert per VBA ersetzt habe.

Lange Rede kurzer Sinn... Du musst auf Formeln verzichten, wenn du eine Zelle nur teilweise Fett formatieren willst.

Gruss
Chris
Anzeige
ps
02.09.2003 13:14:33
joel
hab noch was vergessen:

das problem ist nicht, den wert der zelle zu erhalten (value), sondern sein format zu ändern. ...value.characters(..) geht nicht!

gruss und danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige