Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1612to1616
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

Farbige Reiter und Textpassagen

Farbige Reiter und Textpassagen
12.03.2018 12:28:12
Markus
Hallo liebe Community,
ich hätte zwei Anliegen:
1. Wie bekommt man in eine UserForm den Text bei nur einigen Wörtern farbig dargestellt und auch farbig hervorgehoben also selektiert?
Beispiel:
Label1.Caption = "Die Sonne scheint hell und strahlend“
Ich möchte nun die Wörter hell und strahlend in anderen Farben dargestellt haben.
Bisher kann ich aber nur den ganzen Satz bei den Eigenschaften des UserForms in der Farbe ändern, nicht aber einzelne Wörter. Wie geht das und wie muss der Code dazu aussehen?
Desweiten müsste es auch mit Variablen funktionieren bei den UserForms ,also:
Dim Name As String
Name = "Pluto"
Label1.Caption = "Der Planet" & " "& Name & "ist farbig gekennzeichnet."
Hier soll er die Variable Name, also den Namen des Planeten farbig machen, zum Beispiel blau.
Auch schön wäre es wenn die Schrift nicht nur farbig wäre an den entsprechenden Stellen in den Sätzen, sondern auch wenn diese Wörter farbig noch hervorgehoben werden könnten.
2. Ich möchte gern alle Reiter in der Arbeitsmappe farbig hervorheben, das geht auch soweit schon, doch nun soll er für das jeweilige aktuelle Arbeitsblatt eine andere Farbe verwenden, das funktioniert aber bisher nicht bei mir, ob an er das aktive Arbeitsblatt schon erkennt, aber er färbt es nicht anders ein.
Link zu Datei: https://www.herber.de/bbs/user/120355.xlsm
Code:

Sub FarbeReiter_all()
Dim Tabellennamen
Tabellennamen = Array("Tabelle3", "Tabelle4", "Tabelle4")
Dim WBname As String
WBname = ThisWorkbook.Name
Dim activeSheet As String
name_akltuell = ActiveWorkbook.activeSheet.Name
Dim Arrayspeicher As Variant
Dim Blatt As Worksheet
MsgBox "Hier kommt das atuelle Arbeitsblatt" & " " & activeSheet
For Each Blatt In ActiveWorkbook.Worksheets
If InStr(WBname, name_akltuell) > 0 Then
ActiveWorkbook.activeSheet.ColorIndex = 3
Else
If InStr(WBname, Arrayspeicher) > 0 Then
Blatt.Tab.ColorIndex = 4
End If
End If
Next Blatt
End Sub


Kann jemand bitte helfen?
Beste Grüße
Markus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbige Reiter und Textpassagen
12.03.2018 12:39:10
Daniel
Hi
in den ActiveX-Steuerelementen gibt es immer nur eine einheitliche Formatierung.
dh wenn du verschiedene Farben haben willst, brauchst du dann auch mehrere Labels, die du aneinander hängst und unterschiedlich formatieren kannst.
dein zweites Problem lässt sich etwas einfacher lösen, du brauchst diesen Code im Modul "DieseArbeitsmappe".
4 ist die normale Farbe, 3 die markierungsfarbe:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Tab.ColorIndex = 3
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sh.Tab.ColorIndex = 4
End Sub
Gruß Daniel
Anzeige
AW: Farbige Reiter und Textpassagen
12.03.2018 13:46:17
Markus
Hallo Daniel,
danke für Deine Antwort.
Zu 1. Mehrere Labels ist leider keine Option für mich, da ich einer UserForm verschiedene Variablen zuweise und daher diese eine für mehrere Einträge verwende wo der Text gleich bleibt und sich nur die Wörter ändern die über die Variablen angesprochen werden.
Das habe ich so gemacht damit ich nicht über 30 UserForms habe, die beim Export extrem das ganze verlangsamen, ich brauche nur noch einzelne Textpassagen farbig hervorgehoben.
Beispiel: Alles in einer UserForm angesprochen:

Private Sub UserForm_Activate()
If strName1 = "Merkur" and strFarbe1 = “grau” Then
Label1.Caption = "Das ist der Planet" & " " & strName1 & "seine Farbe ist" & " " & strFarbe1 & " _
End If
If strName1 = "Jupiter" and strFarbe2=”orange” Then
Label1.Caption = "Das ist der Planet" & " " & strName2 & "seine Farbe ist" & " " & strFarbe1 & " _
End If
'usw.
End Sub


Wenn ich da mehrere Labels verwende, dann wird ja jeder Planet dann mit derselben Farbe angezeigt, da ich nur eine UserForm habe, außerdem bringt das auch die Icons in der Form völlig durcheinander. Ich möchte aber nur den Namen und die Farbe der Planeten hervorheben.
Geht das nicht irgendwas anders als über x labels, dann hätte ich ja wieder so viele Forms, was ich nicht möchte. Vielleicht so, das man nach bestimmten Begriffen im Text suchst und diese dann farbig hervorgehoben werden und eingefärbt, weiß aber nicht wie genau so einen Suchalgorithmus dann aussehen müste, wäre halt nur eine Idee wie man es umsetzen könnte, wenn man gut Programmieren kann.
Zu 2. Ja genauso sollte es funktionieren, nur ich wollte es nicht in diese Arbeitsmappe sondern direkt in den Modulen stehen haben, da bei der Exportfunktion "Diese Arbeitsmappe" nicht exportiert wird, das ist so gewollt, aber trotzdem soll dann dort dies auch gehen mit den farbigen Reitern in der neuen Arbeitsmappe, daher wäre es gut wenn man das bei der Prozedure die ich benutze umsetzen könnte.
Übrigens das dort Tabelle4 zweimal aufgeführt ist in den Array ist ein Fehler, da sollte Tabelle1 stehen. Also Tabellen 1-3 sollten dort hinein.
Es ist nur so derzeit, das er alles einfärbt, aber nicht das Array berücksichtigt.
Außerdem halt und das ist noch wichtiger, das der jeweils aktive Reiter hervorgehoben wird mit einer anderen Farbe funktioniert nicht, warum auch immer.
Von daher wie müsste es bei der Prozedure von mir korrekt lauten, damit dies funktioniert und ich es in den Modulen stehen lassen kann und nicht in diese Arbeitsmappe schreiben muss?
Beste Grüße
Markus
Anzeige
AW: Farbige Reiter und Textpassagen
12.03.2018 14:23:24
Daniel
Hi
bei deinem ersten Problem kann ich dir auch nicht weiter helfen, denn es ist nun mal so, dass die ActiveX-Steuerelemente nur eine einheitliche Formatierung erlauben.
die einzige Möglichkeit, einzelne Wörter hervorzuheben, wäre die GROSSSCHREIBUNG.
das zweite Problem kannst du so lösen:
jedes Tabellenblatt hat sein eigenes Modul und darin kannst du auch für jedes Tabellenblatt das Activate und Deactivate-Event erstellen.
dort kannst du dann die entsprechenden Codes zum Umfärben einfügen.
das musst halt so oft wiederholen, wie du Tabellenblätter hast.
Gruß Daniel
Anzeige
AW: Farbige Reiter und Textpassagen
12.03.2018 16:24:16
Markus
ok, danke Daniel,
zu1. schade das dies gar nicht geht, Großschreibung ist nur bedingt eine Option, für die Variable strFarbe aber ungeeignet, gänge nur für die Variable strName.
zu2. Entweder habe ich es nicht verstanden oder ich mache etwas falsch.
Ich habe den Code in entsprechende Tabellenblätter eingefügt, also unter Tabellen, nicht bei den Modulen.
Nach dem Export wird aber der nun eingefügte Code nicht ausgeführt in den jeweiligen Arbeitsblättern gar nicht ausgeführt. Das wollte ich aber so und auch nicht über einen Button dort gehen, sondern nach dem Export sollte die zwei Prozeduren es im neuen Arbeitsblatt gleich greifen.
Gibt es eine Möglichkeit von einem Workbook in ein anderes zu schreiben und zwar in "Diese Arbeitsmappe", also bei den Excel Objekten?, dann könnte ich nämlich den Code per Makro dort hineinschreiben lassen, sie speichern und wieder öffnen lassen, so dass dann nur der Code von den zwei von Dir aufgezeigten Prozeduren im zweiten Workbook unter Diese Arbeitsmappe" zu finden ist. Also im Prinzip soll er den Code per VBA Befehl in ein anderes Workbook unter "Diese Arbeitsmappe" schreiben, ist das möglich und wenn ja wie wäre da der Code?
Beste Grüße
Markus
Anzeige
AW: Farbige Reiter und Textpassagen
12.03.2018 17:05:17
Daniel
hi
wie sieht den der Code aus, den du in Tabellenblattmodule geschreiben hast?
wenn du im Tabellenblattmodul das jeweilige Tabellenblatt ansprechen willst, darft du nicht "sh" verwenden, sondern musst "ME" nehmen.
Private Sub Worksheet_Activate()
Me.Tab.ColorIndex = 3
End Sub
Private Sub Worksheet_Deactivate()
Me.Tab.ColorIndex = 4
End Sub

Gruß Daniel
AW: Farbige Reiter und Textpassagen
12.03.2018 18:09:14
Markus
Hallo Daniel,
der Code sah genauso aus wie von Dir geschrieben, aber jetzt da ich das "Sh" durch ein "Me" getauscht habe geht's. Danke :)
Für das Problem zu erstens bin ich noch am Probieren, ob man irgendwie nach Wörtern suchen kann in dem Satz, aber bisher erfolglos :)
Beste Grüße
Markus
Anzeige
AW: Farbige Reiter und Textpassagen
13.03.2018 08:04:02
fcs
Hallo Markus,
mit den Funktionen Instr oder Like kann man Texte nach einem Suchwort untersuchen.
Gruß
Franz

Sub test()
Dim strText As String, strSuch As String, iPos As Integer
strText = "Die Sonne scheint straglend hell."
strSuch = "hell"
iPos = InStr(strText, strSuch)
If iPos > 0 Then
MsgBox "Im Text " & vbLf & strText & vbLf & "beginnt das Wort """ _
& strSuch & """ an Zeichen " & iPos
Else
MsgBox "Suchwort """ & strSuch & """ im Satz" & vbLf & strText & vbLf _
& "nicht gefunden"
End If
End Sub
Sub test2()
Dim strText As String, strSuch As String
strText = "Die Sonne scheint straglend hell."
strSuch = "hell"
If strText Like "*" & strSuch & "*" Then
MsgBox "Im Text " & vbLf & strText & vbLf & "gibt es das Wort """ _
& strSuch & """"
Else
MsgBox "Suchwort """ & strSuch & """ im Satz" & vbLf & strText & vbLf _
& "nicht gefunden"
End If
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige