Anzeige
Archiv - Navigation
1084to1088
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

Zweites Wort der Zelle fett

Zweites Wort der Zelle fett
Sandra
Hallo zusammen,
ich möchte für den Bereich A2:D100 die Zellen so darstellen, dass das erste Wort normal, das zweite Wort aber mit Fettdruck hervorgehoben wird.
Die automatische Korrektur soll mit der "Änderungsfunktion des Tabellenblattes" erfolgen.
Beispiel (Zelle A2):
Sandra Meinert
wird
Sandra Meinert
Wer kann mir dabeihelfen?
Danke schön!
LG Sandra

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

Betreff
Benutzer
Anzeige
AW: Zweites Wort der Zelle fett
05.07.2009 19:23:09
Hajo_Zi
Halo Sandra,
unter der Tabelle

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Column = 1 Then
Target.Characters(Start:=InStr(Target, " ") + 1, Length:=Len(Target)).Font.Bold = True
End If
End Sub



AW: Zweites Wort der Zelle fett mehr als 2 Worte
05.07.2009 19:28:57
Hajo_Zi
Hallo Sandra,

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Column = 2 Then
Target.Font.Bold = False
If InStr(Target, " ") > 0 Then
Target.Characters(Start:=InStr(Target, " ") + 1, Length:=InStr(InStr(Target, " ") +  _
1, Target, " ") - InStr(Target, " ")).Font.Bold = True
End If
End If
End Sub


Gruß Hajo

Anzeige
AW: Zweites Wort der Zelle fett
05.07.2009 19:26:50
Josef
Hallo Sandra,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, intS As Integer, intE As Integer
  
  For Each rng In Intersect(Target, Range("A2:D100"))
    intS = InStr(1, rng, " ")
    If intS > 0 Then
      intE = InStr(intS + 1, rng, " ")
      rng.Characters(intS + 1, IIf(intE > 0, intE - intS - 1, 99)).Font.Bold = True
    End If
  Next
  
End Sub

Gruß Sepp

Anzeige
AW: Zweites Wort der Zelle fett
05.07.2009 19:49:43
Sandra
Hallo Erich,
bei Deinem Makro bekomme ich einen Fehler, wenn ich außerhalb dieses Bereiches etwas eintrage (z.B. A1). Könntest Du dies noch abstellen?
@ Hajo: Wo ist denn bei Dir der Bereich (A2:D100) versteckt, für den Fall dass ich das selbst mal ändern möchte.
Vielen Dank Euch beiden!
LG Sandra
AW: Zweites Wort der Zelle fett
05.07.2009 19:53:22
Hajo_Zi
Hallo Sandra,
Stand dere Bereich da, das habe ich wohl überlesen.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
' Zweites Wort Fet, Bereich A2:D100
If Target.Count = 1 And Target.Column = 2 And Target.Row  0 Then
Target.Characters(Start:=InStr(Target, " ") + 1, Length:=InStr(InStr(Target, " ") +  _
1, Target, " ") - InStr(Target, " ")).Font.Bold = True
End If
End If
End Sub


Gruß Hajo

Anzeige
AW: Zweites Wort der Zelle fett
05.07.2009 19:55:22
Josef
Hallo Sandra,
bin zwar nicht Erich, aber macht nichts ;-))
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rngTarget As Range, rng As Range, intS As Integer, intE As Integer
  
  Set rngTarget = Intersect(Target, Range("A2:D100"))
  If Not rngTarget Is Nothing Then
    For Each rng In rngTarget
      intS = InStr(1, rng, " ")
      If intS > 0 Then
        intE = InStr(intS + 1, rng, " ")
        rng.Characters(intS + 1, IIf(intE > 0, intE - intS - 1, 99)).Font.Bold = True
      End If
    Next
  End If
  Set rngTarget = Nothing
End Sub

Gruß Sepp

Anzeige
noch eine Variante
05.07.2009 20:05:49
Erich
Hi Sandra,
hier noch ne Version (nachdem ich ja schon mal vorkam... ;-)):

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngB As Range, rngC As Range, strT As String, arrT, pp As Long
Set rngB = Intersect(Target, Range("A2:D100"))
If rngB Is Nothing Then Exit Sub
For Each rngC In rngB.Cells
strT = rngC.Text
pp = InStr(strT, " ") + 1
If pp > 1 Then
arrT = Split(strT, " ")
rngC.Font.Bold = False
rngC.Characters(pp, Application.Max(1, Len(arrT(1)))).Font.Bold = True
End If
Next rngC
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: noch eine Variante
05.07.2009 21:52:51
Sandra
Hallo,
ich danke Euch dreien für Eure Hilfe!
@ Sepp: Tut mir leid, dass ich mit Deinem Vornamen auf dem "Holzweg" war. Lag daran, weil ich zuvor einen Beitrag von Erich gelesen habe. :-)
Schönen Abend !
LG Sandra

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige