Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
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
Einzelnes Textzeichen wird nicht fett erzeugt
22.12.2018 09:37:58
Dieter(Drummer)
Guten Morgen VBA Spezialisten,
in Zelle C7 steht ein Text, in dem einzelne Textzeichen in rot gefärbt werden. Das funktioniert.
Warum wird das entsprechende Zeichen, hier 3 verschiedene, NICHT fett erzeugt, mit ".Bold = True"? Es erscheint Fehler "438", "Objekt unterstützt die Eigenschaften der Methode nicht.". Wie muss der richtige Code dafür lauten?
Mit der Bitte um Hilfe,
grüßt Dieter(Drummer)
'Test OK, außer: Bold = True
  • 
    Sub Test1()
    'Celle C7
    With ActiveSheet.Cells(7, 3)
    .Characters(Start:=7, Length:=1).Font.ColorIndex = 3
    .Bold = True
    .Characters(Start:=17, Length:=1).Font.ColorIndex = 3
    .Bold = True
    .Characters(Start:=21, Length:=1).Font.ColorIndex = 3
    .Bold = True
    End With
    End Sub
    

  • 23
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Einzelnes Textzeichen wird nicht fett erzeugt
    22.12.2018 09:43:21
    Sepp
    Hallo Dieter,
    klar, den '.Cells()' hat keine Eigenschaft '.Bold'
    Sub Test1()
      'Celle C7 
      With ActiveSheet.Cells(7, 3)
        With .Characters(Start:=7, Length:=1).Font
          .ColorIndex = 3
          .Bold = True
        End With
        With .Characters(Start:=17, Length:=1).Font
          .ColorIndex = 3
          .Bold = True
        End With
        With .Characters(Start:=21, Length:=1).Font
          .ColorIndex = 3
          .Bold = True
        End With
      End With
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Danke Sepp, funktioniert perfekt. Ist es ...
    22.12.2018 10:04:37
    Dieter(Drummer)
    Hallo Sepp,
    ... möglich, dass man nicht jedes Zeichen einzeln mit:
    "
    
    .Characters(Start:=7, Length:=1).Font.ColorIndex = 3
    
    "
    ansprechen muss, sondern alles in einer Codezeile).
    Z.B.:
    
    .Characters(Start:=7, Length:=1).Font.ColorIndex = 3, .Characters(Start:=12, Length:=1).Font.ColorIndex = 3 ... etc.
    
    Ideal wäre, eine Inputbox, in der man alle notwendigen Zeichen, z.B mit Kommata getrennt, eingeben könnte, so wäre man wesentlioch flexibler.
    Wäre schön, wenn es da auch eine Lösung gäbe.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: Danke Sepp, funktioniert perfekt. Ist es ...
    22.12.2018 10:59:07
    Sepp
    Hallo Dieter,
    Sub Test1()
      Dim varRet As Variant, varItem As Variant, strInput As String
      
      strInput = InputBox("Zeichenpositionen mit ; getrennt eingeben")
      varRet = Split(strInput, ";")
      
      With ActiveSheet.Cells(7, 3)
        .Font.ColorIndex = xlAutomatic
        .Font.Bold = False
        For Each varItem In varRet
          If IsNumeric(Trim(varItem)) Then
            With .Characters(Start:=CLng(Trim(varItem)), Length:=1).Font
              .ColorIndex = 3
              .Bold = True
            End With
          End If
        Next
      End With
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Danke Sepp, wieder eine perfekte ...
    22.12.2018 12:10:39
    Dieter(Drummer)
    Hallo Sepp,
    ... Lösung.
    Herzlichen Dank und schöne Weihnachtstage.
    Gruß, Dieter(Drummer)
    PS Versuche jetzt noch die Zeichen, die ich suche, mittels Inputbox zu finden und dann zu färben etc.
    So müsste man dann nicht vorher die Stellenzahl des Zeichens auzählen.
    AW: Danke Sepp, wieder eine perfekte ...
    22.12.2018 12:19:38
    Sepp
    Hallo Dieter,
    auch kein Problem.
    Sub Test2()
      Dim varRet As Variant, varItem As Variant, strInput As String, lngPos As Long
    
      strInput = InputBox("Gewünschte Zeichen mit ; getrennt eingeben")
      varRet = Split(strInput, ";")
      
      With ActiveSheet.Cells(7, 3)
        .Font.ColorIndex = xlAutomatic
        .Font.Bold = False
        For lngPos = 1 To Len(.Characters.Text)
          With .Characters(Start:=lngPos, Length:=1)
            If IsNumeric(Application.Match(.Text, varRet, 0)) Then
              .Font.ColorIndex = 3
              .Font.Bold = True
            End If
          End With
        Next
      End With
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Man(n ) oh Man(n), Sepp, wieder tolle ...
    22.12.2018 12:34:00
    Dieter(Drummer)
    Hallo Sepp,
    ... Lösung, die prima funktioniert, So braucht man nur die Zeichen eingeben, die man sucht und sie werden korrekt gefärbt und Bold gesetzt.
    Danke dir für deine schnellen und perfekten Lösungen.
    Gruß, Dieter(Drummer)
    AW: Brauche nochmal Hilfe zu aktivierter Zelle
    22.12.2018 16:01:31
    Dieter(Drummer)
    Hallo Sepp,
    du hast mir schon so toll geholfen, dass ich nochmal um Hilfe Bitte.
    Statt dieser Zeile im Code (von dir):
    
    With ActiveSheet.Cells(7, 3) 'Zelle mit enprechendem Inhalt
    

    möchte ich die bereits vorher aktive Zelle zum weiteren arbeiten nutzen. Also eine nicht VORHER im Code festgegte Zelle.
    Habs mit
    
    ActiveCell
    
    versucht, geht aber so nicht.
    Mit der Bitte um Hilfe,
    grüßt Dieter(Drummer)
    Hier dein bisgerige prima Code:
    'Herber: von Sepp am 22.12.2018 12:19:38
    Sub Sepp3() 'Sucht Stellenzahl des Zeichens selbst und fomatiert entsprechend
    Dim varRet As Variant, varItem As Variant, strInput As String, lngPos As Long
    strInput = InputBox("Gewünschte Zeichen werden in Zelle gesucht" & vbLf & "und können dann  _
    mit ; getrennt eingeben werden.")
    varRet = Split(strInput, ";")
     With ActiveSheet.Cells(7, 3) 'Zelle mit enprechendem Inhalt
    .Font.ColorIndex = xlAutomatic
    .Font.Bold = False 'Format Fett aus
    For lngPos = 1 To Len(.Characters.Text) 'Textpostision des Zeichens A
    With .Characters(Start:=lngPos, Length:=1) 'Textpostision des Zeichens B
    If IsNumeric(Application.Match(.Text, varRet, 0)) Then
    .Font.ColorIndex = 3
    .Font.Bold = True 'Foamt Fett ein
    End If
    End With
    Next
    End With
    End Sub
    

    Anzeige
    AW: Brauche nochmal Hilfe zu aktivierter Zelle
    22.12.2018 17:03:55
    Sepp
    Hallo Dieter,
    wie hast du es denn mit 'ActiveCell' probiert?
    Sub Sepp3() 'Sucht Stellenzahl des Zeichens selbst und fomatiert entsprechend 
      Dim varRet As Variant, strInput As String, lngPos As Long
    
      strInput = InputBox("Gewünschte Zeichen werden in Zelle gesucht" & vbLf & _
        "und können dann mit ; getrennt eingeben werden.")
      varRet = Split(strInput, ";")
      
      With ActiveCell
        .Font.ColorIndex = xlAutomatic
        .Font.Bold = False 'Format Fett aus 
        For lngPos = 1 To Len(.Characters.Text)
          With .Characters(Start:=lngPos, Length:=1)
            If IsNumeric(Application.Match(.Text, varRet, 0)) Then
              .Font.ColorIndex = 3
              .Font.Bold = True
            End If
          End With
        Next
      End With
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Danke Sepp, klappt prima und ...
    22.12.2018 20:10:57
    Dieter(Drummer)
    Hallo Sepp,
    ...Sorry für späte Rückmeldung, da ich auf Weihnachtsmarkt mit Blasorchester spielen musste.
    Ich hatte es so versucht:
    Alt:
    
    With ActiveSheet.Cells(7, 3) 'Zelle mit enprechendem Inhalt
    

    Neu:
    
    With ActiveSheet.activeCell'Zelle mit enprechendem Inhalt
    

    Sehe an deinem Code, dass ich zu kompliziert daran gegangen bin.
    Nochmal herzlichen Dank für deine unermüdliche, prima Hilfe.
    Schöne Weihnachtstage und ein erfreuliches Neues Jahr,
    wünscht dir, Dieter(Drummer)
    Anzeige
    AW: Danke Sepp, klappt prima und ...
    22.12.2018 20:30:42
    Luschi
    Hallo Dieter,
    dieser Befehl: With ActiveSheet.ActiveCell wirft bei mir einen Vba-Fehler '438'.
    Gruß von Luschi
    aus klein-Paris
    AW: Der letzte Code von Sepp ist ...
    22.12.2018 21:52:47
    Sepp
    Hallo Luschi,
    ... ja der richtge, was ich angeben habe war ja falsch.
    Gruß, Dieter(Drummer)
    AW: Textzeichen färben inkl. über Userform
    23.12.2018 16:27:15
    Dieter(Drummer)
    Hallo Sepp,
    danke nochmal für tolle Hilfe.
    Habe jetzt das ganze über Userform umgesetzt und es klappt prima.
    Fertige Datei anbei: https://www.herber.de/bbs/user/126285.xlsm
    Eine Sache habe ich bisher nicht umsetzen können. Wenn die Inputbox da ist und ich keine Zelle auswähle und den "Abbrechen" Button klicke, sollte der Code beendet werden und die Userform geschlossen werden.
    Es ist wohl probematisch, dies über den "Abbrechen" Button zu realisieren, Ich habs nicht geschafft.
    Evtl. hast du da noch eine Idee? Wenns nicht geht, auch kein Problem.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: Textzeichen färben inkl. über Userform
    23.12.2018 16:34:32
    Sepp
    Hallo Dieter,
    warum du CheckBox und OptinButton nimmst, obwohl man ja gar nichts auswählen kann, weißt nur du!
    UF schließen bei 'Abbrechen' geht so.
    Private Sub CheckBox1_Click()
      Dim RaZelle As Range
      On Error Resume Next
    
      Set RaZelle = Application.InputBox("Zelle auswählen", "Zellauswahl", , Type:=8)
      If Not RaZelle Is Nothing Then
        RaZelle.Select 'Ausgewählte Zelle wird selectiert 
        UserForm1.TextBox1 = ActiveCell.Value 'Inhalt aktiver Zelle 
      Else
        Unload Me
      End If
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Textzeichen färben inkl. über Userform
    23.12.2018 16:54:44
    Dieter(Drummer)
    Danke Sepp für Info und Hilfe.
    Ich wollte es einfach mal über Userform umsetzen.
    Dein Code erzeucht bei mir einen Fehlerhinweis: 438, Objekt erforderlich und färbt diese Codezeile gelb:
    Set RaZelle = Application.InputBox("Zelle auswählen", "Zellauswahl", , Type:=8)
    
    .
    Ich erinnere mich daran, dass so ein abbrechen Problem schonmal auftauchte und wohl mit meinem Excel zusammen hängt.
    Trotzdem Danke erstmal, werde dann wohl abbrechen in dieser Form nicht nutzen.
    Gruß, Dieter(Drummer)
    AW: Anmerkung und Info
    23.12.2018 17:09:35
    Dieter(Drummer)
    Hallo Sepp,
    wenn die Userform aufgerufen ist, kann ich auch eine Zelle in einem anderen Tabellenblatt und auch einer anderen, geöffneten Datei, auswählen. Man kann natürlich die Datei mit der Userform, nach Aufruf, ausblenden. So kann ich eine Textzelle nehmen, egal in welcher Datei oder Tabelle er ist.
    Gruß, Dieter(Drummer)
    AW: Einzelnes Textzeichen wird nicht fett erzeugt
    22.12.2018 11:15:36
    Niclaus
    Grüezi Sepp
    Eine Frage dazu habe ich. Ich formatiere meine Zellen im Normalfall mit " @ ": Mit einem Leerschlag vor und hinter dem Zeichen, damit der Text nicht so am linken bzw. rechten Rahmen der Zelle "klebt". Bei dieser Formatierung geschieht mit Deinem Makro nichts. Erst wenn ich die Formatierung auf "@" (ohne Leerschlag) stelle, klappt alles wie gewünscht. Damit der Text trotzdem nicht am linken Rand klebt, füge ich vor den Text dann manuell einen Leerschlag ein.
    Gibt es eine Erklärung, warum das Formatieren von einzelnen Zeichen in der Zelle nicht funktioniert, wenn die Zelle mit " @ " formatiert ist? Oder noch besser: Kann man einzelne Zeichen trotz dieser Zellformatierung individuell formatieren?
    Vielen Dank und freundliche Grüsse Niclaus
    AW: Einzelnes Textzeichen wird nicht fett erzeugt
    22.12.2018 11:28:27
    Sepp
    Hallo Niclaus,
    warum stellst du nicht einfach einen linken Einzug ein?
     ABCDEF
    1Gruß Sepp
    2
    3

    AW: Einzelnes Textzeichen wird nicht fett erzeugt
    22.12.2018 12:51:46
    Niclaus
    Hallo Sepp
    Das ist es!! Vielen Dank.
    Niclaus
    AW: Einzelnes Textzeichen wird nicht fett erzeugt
    22.12.2018 09:45:19
    Toni
    hallo Dieter,
    so?
    .characters().font.bold= true
    beste Grüße
    AW: Danke Toni, dein Code erzeugt, dass ...
    22.12.2018 10:07:49
    Dieter(Drummer)
    Hallo Toni,
    ... der gesmate Text fett wird. es soll aber nur das jeweilige Zeichen fett werden.
    Mit Sepp's Code funktionert es.
    Dennoch Danke für deinen Hinweis.
    Gruß, Dieter(Drummer)
    AW: Danke Toni, dein Code erzeugt, dass ...
    22.12.2018 10:14:42
    Toni
    Hi Dieter,
    hatte hier gesehen https://docs.microsoft.com/de-de/office/vba/api/excel.font.bold, dass beides zusammen gehört. Die Characters-Klammern müssen natürlich mit Leben gefüllt werden. Aber ich gebe Dir Recht: Sepps Codes funktionieren so gut wie ausschließlich :))
    Einen schönen 4. Advent Euch!
    AW: Dennoch Danke Toni und ...
    22.12.2018 10:46:28
    Dieter(Drummer)
    ... auch einen schönen 4. Advent.
    Werde heute mit einem Blasorchester, auf Weihnachtsmarkt, die Drumms aktivieren ;-).
    Gruß, Dieter(Drummer)
    ... na dann guten Rums!! owT
    22.12.2018 12:26:43
    Toni

    303 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige