Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
	
		Hallo, ich habe eine Stückliste mit vielen Zeilen und Spalten. In einer Spalte steht ein Text als manuelle Zusammensetzung aus manchen Spalten, getrennt mit Leerzeichen. Alle relevanten Spalten sind im Ausschnitt zu sehen.  Wie kann ich alle Teilinhalte einer Zelle dieser Spalte rot markieren, die nicht genau so in einer der anderen Spalten derselben Zeile vorkommen? Ich will also z.B. in K5 das "100nF" und das "X7R" und das "0805" rot eingefärbt haben, weil diese Teile nicht in einer der Spalten A-J in Zeile 5 vorkommen. dann weitermachen mit der nächsten Zeile. Per VBA? Vermutlich trennen des Zellinhaltes von K5 an Leerzeichen und suchen der Einzeltexte mit xlWhole in Spalten A-J. Tabelle1 | A | B | C | D | E | F | G | H | I | J | K |  | 4 | Bauteilnamen | Anzahl | Gehaeuse | Wert | Toleranz | Leistung | Nennspannung | Hersteller | Herstellerbezeichnung | Bemerkung | Art.Bez.1 |  | 5 | c100, c101, c102, c103, c104, c105, c106, c107, c108, c109, c110, c113, c114, c116, c118, c120, c201, c330 | 18 | smt0805 | 100n | 0,1 |  | 50V |  |  |  | 100nF 50V 10% 0805 X7R # |  
 | Excel-Inn.de |   | Hajo-Excel.de |  | XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007 |  |  Add-In-Version 19.08 einschl. 64 Bit |   
 
  Rin_BoM_20160810.xlsb (Größe: 23,03 KB / Downloads: 7)
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 06.12.2015
	
 Version(en): 2016
	 
 
	
	
		Hallo Rabe,
  um den Text in Teilen einer Zelle zu formatieren, wird "cells.characters" benötigt. Damit kann man Farben oder Schriftarten setzen, einzelne Bauchstaben löschen oder einfügen.
  mfg
	 
	
	
	
	
 
	  
	Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28
	  • Rabe
 
 
 
	
	
	
		
	Registriert seit: 11.04.2014
	
 Version(en): Office 2007
	 
 
	
	
		Hallo Ralf, teste mal PHP-Code: Sub prcRalfSuche()    Dim rngTreffer As Range    Dim lngC As Long, lngA As Long    Dim vntArray As Variant    With Worksheets("Tabelle1")       For lngC = 5 To .Cells(.Rows.Count, 11).End(xlUp).Row          vntArray = Split(.Cells(lngC, 11), " ")          For lngA = 0 To UBound(vntArray)             Set rngTreffer = .Cells(lngC, 1).Resize(, 10).Find(vntArray(lngA), LookIn:=xlValues, lookat:=xlPart)             If Not rngTreffer Is Nothing Then                Cells(lngC, 11).Characters(InStr(.Cells(lngC, 11), vntArray(lngA)), Len(vntArray(lngA))).Font.Color = vbRed             End If          Next lngA       Next lngC    End With End Sub 
 
  
	 
	
	
Gruß Stefan Win 10 / Office 2016
 
	
	
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
		
		
		23.08.2016, 09:07 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 09:08 von Rabe.)
		
	 
	
		Hi Stefan,  (22.08.2016, 20:30)Steffl schrieb:  teste mal Danke, aber leider noch nicht ganz, hier ein Vergleich von Ist [Spalte K) und Soll (Spalte L):
  
  Rin_BoM_20160810.xlsb (Größe: 24,42 KB / Downloads: 8)
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 11.04.2014
	
 Version(en): Office 2007
	 
 
	
	
		Hallo Ralf,
  tut mir leid, da fällt mir nichts ein, wie ich das gewünschte lösen könnte.
	 
	
	
Gruß Stefan Win 10 / Office 2016
 
	
	
 
 
	
	
	
		
	Registriert seit: 21.07.2016
	
 Version(en): 2007
	 
 
	
		
		
		23.08.2016, 09:41 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 09:41 von IchBinIch.
 Bearbeitungsgrund: Ergänzung
)
		
	 
	
		Hallo Ralf, Du musst nur die positive Suche umkehren: Code: If rngTreffer Is Nothing Then
 anstelle von Code: If Not rngTreffer Is Nothing Then
 Gruß Ich Ergänzung: Allerdings verstehe ich noch nicht warum Stefans Makro in dem Fall beispielsweise für Zeile 13 "LED" schwarz lässt.
	  
	
	
	
	
 
	  
	Folgende(r) 1 Nutzer sagt Danke an IchBinIch für diesen Beitrag:1 Nutzer sagt Danke an IchBinIch für diesen Beitrag 28
	  • Rabe
 
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
		
		
		23.08.2016, 12:22 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 13:24 von Rabe.)
		
	 
	
		Hallo,  (23.08.2016, 09:41)IchBinIch schrieb:  Du musst nur die positive Suche umkehren: [...] Ergänzung: Allerdings verstehe ich noch nicht warum Stefans Makro in dem Fall beispielsweise für Zeile 13 "LED" schwarz lässt. ok, so sieht es besser aus, aber auch in Zeile 12 und noch einigen anderen stimmt es noch nicht ganz. Vielleicht wegen doppelten Leerzeichen? Sollten die dann vorher ersetzt werden? Oder es sind noch solche anderen Leerzeichen drin: chr(160) oder so?
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 11.04.2014
	
 Version(en): Office 2007
	 
 
	
	
		Hallo Ralf,  (23.08.2016, 12:22)Rabe schrieb:  ok, so sieht es besser aus, aber auch in Zeile 12 und noch einigen anderen stimmt es noch nicht ganz.
  Vielleicht wegen doppelten Leerzeichen? Sollten die dann vorher ersetzt werden? Oder es sind noch solche anderen Leerzeichen drin: chr(160) oder so. Mache bei der Find-Methode ein Trim um das vntArray Code: Set rngTreffer = .Cells(lngC, 1).Resize(, 10).Find(Trim(vntArray(lngA)), LookIn:=xlValues, lookat:=xlPart)
  
	 
	
	
Gruß Stefan Win 10 / Office 2016
 
	
	
 
	  
	Folgende(r) 2 Nutzer sagen Danke an Steffl für diesen Beitrag:2 Nutzer sagen Danke an Steffl für diesen Beitrag 28
	  • Rabe, IchBinIch
 
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
		
		
		23.08.2016, 13:23 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 13:23 von Rabe.)
		
	 
	
		Hi Stefan,  (23.08.2016, 12:45)Steffl schrieb:  Mache bei der Find-Methode ein Trim um das vntArray
 Code: Set rngTreffer = .Cells(lngC, 1).Resize(, 10).Find(Trim(vntArray(lngA)), LookIn:=xlValues, lookat:=xlPart)
  wir kommen näher! Mit  xlWhole statt  xlPart stimmt fast alles! Sehr gut! Ich habe auch schon ein paar Fehler in meiner manuellen Einfärbung gefunden. Mit den restlichen falschen Makro-Rotfärbungen können wir vermutlich leben.
	  
	
	
	
	
 
 
	 
 |