Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Teilstring mit VBA formatieren

Teilstring mit VBA formatieren
16.12.2013 11:12:55
Franz
Hallo Fachleute,
kann man per VBA Teile einer Zelle formatieren, z. B. fett schreiben? Ich hab's damit probiert, aber das geht nicht:
If Target.Address = "$F$2" Then
Target = Left(Target, 10, Target.Font.Bold = True)
End If
Wie muss ich das bitte angehen, schreiben? Da bitte ich um Eure Hilfe.
Danke schonmal und Grüße
Franz

Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilstring mit VBA formatieren
16.12.2013 11:15:09
Rudi
Hallo,
target.characters(1,10).font.bold=true
Gruß
Rudi

AW: Teilstring mit VBA formatieren
16.12.2013 11:31:40
Franz
Hallo Rudi,
danke erstmal für die Antwort. Aber irgendwas mach ich noch falsch:
Im Change-Ereignis passiert gar nichts:
If Target.Address = "$F$2" Then
MsgBox "heeeee, was los?"
Target.Characters(1, 10).Font.Bold = True
End If
Übrigens auch mit Hajos Vorschlag nicht. Die Msgbox (hab ich nur rein zum Testen) kommt.
Das in ein normales Modul gesetzt formatiert die gesamte Zelle:
Sub test()
Range("$F$2").Characters(1, 10).Font.Bold = True
End Sub

Ich weiß nicht, ob's wichtig ist, sicherheitshalber schreib ich's hier mal dazu, ich fürchte fast, ich hab oben was Falsches geschrieben von wegen "Teilstring":
der Zellinhalt ist zusammengesetzt aus Text und Formeln, so ähnlich:
= "text: " & ZÄHLENWENN(CalTermine;" Macht das den Ausschlag, liegt hier das Problem?
Grüße
Franz

Anzeige
AW: Teilstring mit VBA formatieren
16.12.2013 11:33:36
Rudi
Hallo,
Formelergebnisse können immer nur ein Format haben.
Gruß
Rudi

AW: Teilstring mit VBA formatieren
16.12.2013 11:34:54
Franz
Hallo Rudi,
dann ist alles klar, danke.
Grüße
Franz

Man kann den Inhalt der Zelle aber auch ...
16.12.2013 12:40:50
Luc:-?
…gleich per VBA in verschiedenen Formaten zusammensetzen, Franz,
dazu gibt's sicher im Archiv Lösungen.
Gruß Luc :-?

Anzeige
AW: Man kann den Inhalt der Zelle aber auch ...
16.12.2013 12:45:46
Franz
Hallo Luc,
danke für den Tipp!
Kann ich vielleicht nur mal ne kurze Idee kriegen? An einem kleinen Beispiel:
Range("A1") = "Datum:" (soll fett und unterstrichen sein) & Heute() (soll weder fett noch unterstrichen sein)
Ich glaub, das könnt mir schon weiterhelfen.
Danke schonmal und Grüße
Franz

Anzeige
Beispiel: mit Font.Underline und Font.Bold
16.12.2013 16:40:30
Matthias
Hallo
Option Explicit
Sub ZumTeilFett()
Dim MeinText As String
With Range("A1")
.Font.Bold = False
.Font.Underline = xlUnderlineStyleNone
MeinText = "Datum:" & Date 'hier wird der String zusammengesetzt
.Value = MeinText 'Übergabe von Variable an Zelle
.Characters(1, 6).Font.Bold = True '6 Zeichen fett frmatieren
.Characters(1, 5).Font.Underline = xlUnderlineStyleSingle '5 Zeichen unterstreichen
End With
End Sub
Beispieldatei:
https://www.herber.de/bbs/user/88535.xls
Gruß Matthias

Anzeige
selber reingelegt..........
16.12.2013 17:06:39
Franz
Hallo Matthias,
vielen Dank, das ist toll von Dir. Aber mit meinem Beispiel hab ich mich anscheinend selbst reingelegt, weil ich nicht dran gedacht habe, dass man Heute() durch Date ersetzen kann. Und damit gibt es letztendlich wieder einen String.
Wie ist es aber, wenn zu einem Text tatsächlich eine Formel zur Berechnung mit in die Zelle reinmuss, daran scheint es möglicherweise zu scheitern.
z. B. die Formel "Heute()", die immer das taggenaue Datum angibt. Oder etwas wie
ANZAHL(A7:A700)
also tatsächlich sowas wie:
="Das Ergebnis vom " & TEXT(HEUTE(); "TT.MM.JJJJ") & " ist: " & ANZAHL(A7:A700)
Sowas scheint ja nach Luc nicht möglich zu sein, oder?
Grüße
Franz

Anzeige
ich helf mir da jetzt....
16.12.2013 17:36:50
Franz
Mal schauen, was mir noc einfällt. Aber in einem ersten Schritt helf ich mir jetzt damit, dass ich die einzelnen Formeln in Hilfszellen schreibe, diese dann per VBA als Text formatiere und zu einem String verbinde. Und diesen String kann ich dann formatieren
Grüße
Franz

Ich habe zwar NICHT behauptet, dass das ...
16.12.2013 19:19:23
Luc:-?
…mit Fmln nicht geht, Franz,
aber es ist so. Aber es geht so, wie du es jetzt versuchst, allerdings benötigst du keine Hilfszellen, denn man kann diese Fktt auch direkt in VBA anwenden. Das wird in der VBE-Hilfe ausdrücklich erwähnt → s. bei (Application- bzw) WorksheetFunction-Objekt!
Gruß Luc :-?

Anzeige
AW: Ich habe zwar NICHT behauptet, dass das ...
16.12.2013 19:52:04
Franz
Sorry Luc,
wenn ich's verstanden hab. Und das mit WorksheetFunction werd ich mir anschauen, da komm ich aber erst morgen dazu, ich werd mich nochmal hier melden
Danke und Grüße
Franz

... melde mich doch nicht mehr ...
17.12.2013 08:26:08
Franz
Hallo Luc,
... ich kapiers nicht auf die Schnelle, wie das einzusetzen ist, muss ich zurückstellen, irgendwann komm ich dahinter, was damit anzufangen ist. Trotzdem schonmal danke für den Tipp!
Grüße
Franz

Anzeige
Warum nicht? 'Irgendwann' sollte JETZT sein, ...
17.12.2013 10:42:01
Luc:-?
…Franz!
Aber erstmal hier ein Link zu einem meiner Beiträge, der den DownLoadLink einer BspMappe enthält, in einem Thread, in dem es um Vglbares ging. Allerdings wdn hier keine Worksheetfunctions verwendet. Letztere können genauso wie vbFktt und ähnlich wie Fktt in ZellFmln in VBA verwendet wdn. Also kannst du (nahezu alle) deine FmlEinfügungen auch im VBA-Pgm berechnen und dann mit den Texten zusammensetzen. Eine* mögliche Methode fürs Zusammensetzen zeigt das Bsp unter dem Link im verlinkten Thread-Beitrag.
* Es gibt noch mehr, auch im Archiv!
Gruß Luc :-?

Anzeige
AW: Warum nicht? 'Irgendwann' sollte JETZT sein
17.12.2013 11:10:17
Franz
....leider nein.....
Hallo Luc,
der Code von Dir ist spannend (spannend, nicht interessant, weil dazu versteh ich ihn viel zu wenig). Aber ich hab am WE nen wichtigen Termin (nicht beruflich :-))), auf den ich mich noch gut vorbereiten muss. Und da kommt VBA-Lernen an 2. Stelle (zumal da für mich einiges Neues drin ist, durch das ich erstmal durch muss, um ans Eigentliche zu kommen) - sorry! Und danke für Dein tolles Hilfsangebot!
Danke und Grüße
Franz
P.S.: der Link zum weiteren Thread fkt. bei mir nicht, krieg ne Error-Seite.........?

Anzeige
Wahrscheinl nur zeitweilig, ging bei mir! owT
17.12.2013 15:30:03
Luc:-?
:-?

AW: Teilstring mit VBA formatieren
16.12.2013 11:15:13
Hajo_Zi
Hallo Franz,
Range("F2").Font.Bold = True

Frage nicht gelesen?
16.12.2013 11:19:11
Rudi
Hallo Hajo,
kann man per VBA Teile einer Zelle formatieren
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Teilstring mit VBA formatieren


Schritt-für-Schritt-Anleitung

Um Teile eines Strings in einer Zelle mit VBA zu formatieren, kannst Du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
  2. Erstelle ein neues Modul (Einfügen > Modul).
  3. Füge den folgenden Code ein, um einen Teilstring zu formatieren:
Sub FormatTeilstring()
    Dim MeinText As String
    With Range("F2")
        .Value = "Dies ist ein Beispieltext."
        .Characters(1, 10).Font.Bold = True ' Formatierung der ersten 10 Zeichen
    End With
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus (Entwicklertools > Makros).

Dieser Code schreibt den Text "Dies ist ein Beispieltext." in die Zelle F2 und macht die ersten 10 Zeichen fett.


Häufige Fehler und Lösungen

  • Fehler: Nichts passiert beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass Du den richtigen Zielbereich (z.B. Range("F2")) angibst und dass das Makro tatsächlich ausgeführt wird.
  • Fehler: Die Formatierung betrifft die gesamte Zelle.

    • Lösung: Achte darauf, dass Du die .Characters()-Methode korrekt verwendest, um nur den gewünschten Teilstring zu formatieren.
  • Fehler: MsgBox wird nicht angezeigt.

    • Lösung: Prüfe, ob die Bedingung in Deinem If-Statement korrekt ist. Beispiel:
If Target.Address = "$F$2" Then
    MsgBox "Formatierung erfolgreich!"
End If

Alternative Methoden

Wenn Du Formeln in Zellen hast, die Du formatieren möchtest, kannst Du den Text auch direkt in VBA zusammenstellen und formatieren. Hier ist ein Beispiel:

Sub FormatMitFormel()
    Dim MeinText As String
    MeinText = "Das heutige Datum ist: " & Format(Date, "dd.mm.yyyy")
    With Range("A1")
        .Value = MeinText
        .Characters(1, 26).Font.Bold = True ' "Das heutige Datum ist:" wird fett
    End With
End Sub

Diese Methode gibt Dir die Flexibilität, sowohl Text als auch Formeln in einer Zelle zu kombinieren und gezielt zu formatieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, den Umgang mit VBA und das Formatieren von Teilstrings zu verstehen:

  1. Fett und unterstrichen:
Sub FormatFettUndUnterstrichen()
    With Range("A1")
        .Value = "Datum: " & Date
        .Characters(1, 6).Font.Bold = True ' "Datum: " wird fett
        .Characters(1, 6).Font.Underline = xlUnderlineStyleSingle ' "Datum: " wird unterstrichen
    End With
End Sub
  1. Formatierung mit MsgBox:
Sub FormatMitMsgBox()
    If Range("F2").Value <> "" Then
        MsgBox "Der Inhalt von F2 wird jetzt formatiert!", vbInformation, "Formatierung"
        Range("F2").Characters(1, 10).Font.Bold = True
    End If
End Sub

Tipps für Profis

  • Nutze die WorksheetFunction-Objekte, um Formeln in VBA anzuwenden, ohne Hilfszellen zu benötigen.
  • Experimentiere mit verschiedenen Font-Eigenschaften wie Font.Italic, Font.Color, etc., um Deinen Text zu gestalten.
  • Vermeide es, zu viele Formatierungen in einer einzigen Zeile zu machen. Halte Deinen Code klar und lesbar.

FAQ: Häufige Fragen

1. Kann ich auch andere Formatierungen mit VBA anwenden?
Ja, Du kannst viele Eigenschaften der Font-Objekte wie Italic, Color, Size usw. anpassen.

2. Funktioniert das auch mit Excel Online oder nur mit Desktop-Versionen?
Die VBA-Funktionalitäten sind nur in der Desktop-Version von Excel verfügbar. Excel Online unterstützt kein VBA.

3. Was mache ich, wenn ich mehrere Zellen formatieren möchte?
Du kannst eine Schleife verwenden, um mehrere Zellen zu durchlaufen und die gewünschten Formatierungen anzuwenden.

4. Ist es möglich, VBA-Formeln in einer Zelle zu verwenden?
Ja, Du kannst die WorksheetFunction-Objekte in Deinem VBA-Code verwenden, um Formeln zu berechnen und die Ergebnisse zu formatieren.

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