Wörter in Grossbuchstaben mit HTML-Tag (bold) versehen und Grosskleinschreibung
#1
Hallo zusammen
Ich hoffe, dass ihr alle gut ins neue Jahr gerutscht seid und wünsche allen ein tolles 2022

Ich habe eine Zutatenliste erhalten in der alle Allergene in Grossbuchstaben erfasst worden sind, teilweise sind es auch nur Wortteile, die man dann in Gross-Klein umwandeln und mit den bold-Tags versehen sollte

Wir kann ich das am Einfachsten lösen?

Beispiele:
Eingangsdaten:
Bio WEIZENRUCHMEHL, Wasser, Bio ROGGENKÖRNER, Alpensalz, Hefe

Gewünschtes Resultat:
Bio Weizenruchmehl<\b>, Wasser, Bio Roggenkörner<\b>, Alpensalz, Hefe



Eingangsdaten:
Zucker, Zitronensaft (SULFITE) (21.0%), Zucker, VOLLEI CH, BUTTER CH (10.7%), WEISSMEHL (WEIZENMEHL, WEIZENPROTEIN, WEIZENDUNST, Folsäure, Acerolapulver), Wasser, Couverture weiss (Zucker, KakaoBUTTER, VOLLMILCHPULVER, Emulgator Sonnenblumenlezithin) Kakao mind. 35%, Dekorpuder (Dextrose, WEIZENSTÄRKE, Zucker, Sonnenblumenöl, natürl. Aromen (mit MILCH)), Backtriebmittel (E341, E450, E500), Zitronen (.3%), Alpensalz, Farbstoffe (E151, E110, E102, E122, E133)

Gewünschtes Resultat:

Soll: 
Zucker, Zitronensaft (Sulfite<\b>) (21.0%), Zucker, Vollei<\b> CH, Butter<\b> CH (10.7%), Weissmehl<\b> (Weizenmehl<\b>, Weizenprotein<\b>, Weizendunst<\b>, Folsäure, Acerolapulver), Wasser, Couverture weiss (Zucker, Kakaobutter<\b>, Vollmichpulver<\b>, Emulgator Sonnenblumenlezithin) Kakao mind. 35%, Dekorpuder (Dextrose, Weizenstärke<\b>, Zucker, Sonnenblumenöl, natürl. Aromen (mit Milch<\b>)), Backtriebmittel (E341, E450, E500), Zitronen (.3%), Alpensalz, Farbstoffe (E151, E110, E102, E122, E133)

Bin ganz gespannt auf eure Ideen

Vielen Dank

Liebe Grüsse
Dany


Angehängte Dateien
.xlsx   Beispiel_Grossklein.xlsx (Größe: 9,09 KB / Downloads: 6)
Antworten Top
#2
Hallo,

eine Möglichkeit ist mit RegEx alle Worte in Grossbuchstaben zu finden:

Code:
RegEx.Pattern = "\b[A_Z]{4,}\"

Excel stellt eine Funktion für "1. Buchstabe GROSS, Restklein" zur Verfügung.

Aber zuerst gilt es zu klären, ob VBA und RegEx infrage kommen könnten.

mfg
Antworten Top
#3
Hallo,

anbei mein Vorschlag...


Angehängte Dateien
.xlsx   Beispiel_Grossklein.xlsx (Größe: 18,3 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an rate mit für diesen Beitrag:
  • Asterix99
Antworten Top
#4
Hallo,

wenn der gesamte Text in A1 steht:

Code:
Sub F_en()
Dim RegEx As Object: Set RegEx = CreateObject("vbscript.Regexp")
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim Tx As String

RegEx.Global = True
RegEx.Pattern = "\b[A-Z]+\b"

Tx = Cells(1, 1)

Set RR = RegEx.Execute(Tx)
For i = 0 To RR.Count - 1
    If Len(RR(i)) > 3 Then Tx = Replace(Tx, RR(i), "<b>" & WSF.Proper(RR(i)) & "</b>")
Next i

Cells(5, 1) = Tx
End Sub

mfg


Angehängte Dateien
.xlsm   GrossKlein.xlsm (Größe: 16,42 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Asterix99
Antworten Top
#5
Hallo rate mit
Vielen Dank für deine Hilfe, ich werde es austesten.

Liebe Grüsse und ein frohes, neues Jahr
Dany

Hallo Fennek
Vielen Dank für deine Hilfe.

Ich habe es bei mir am Mac kurz getestet und erhalte Fehlermeldungen, kann es sein, dass die RegEx-Geschichte «nur» auf Windows funktioniert?

Liebe Grüsse und ein frohes, neues Jahr
Dany
Antworten Top
#6
Hallo Fennek
Ich habe es nun in einer Windows-Umgebung ausgetestet und es funktioniert tadellos

Frage: Wenn ich nun mehrere tausend Einträge verarbeiten und die Ergebnisse in einem neuen Reiter (z.B. Ergebnis) in der gleichen Reihenfolge ausgeben möchte, wie passe ich das an?


Vielen Dank für deine tolle Hilfe

Liebe Grüsse
Dany
Antworten Top
#7
Hallo,

Annahmen:

- Ausgangsdaten in Spalte A Sheets("Tabelle1")
- Ergebnis in Sheets("Tabelle2")

Code:
Sub F_en()
Dim RegEx As Object: Set RegEx = CreateObject("vbscript.Regexp")
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim Tx As String

RegEx.Global = True
RegEx.Pattern = "\b[A-Z]+\b"

for ii = 1 to cells(rows.count,1).end(xlup).row
Tx = Cells(ii, 1)

Set RR = RegEx.Execute(Tx)
For i = 0 To RR.Count - 1
    If Len(RR(i)) > 3 Then Tx = Replace(Tx, RR(i), "<b>" & WSF.Proper(RR(i)) & "</b>")
Next i

sheet("Tabelle2").Cells(ii, 1) = Tx
next ii
End Sub

ungeprüft

mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste