Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
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
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

kann man das eleganter machen ?

kann man das eleganter machen ?
06.02.2005 13:03:29
JL
Hallo,
Ein Textbereich soll nach bestimmten Zeichenfolgen durchsucht werden, was dann zu einer Hervorhebung führen soll. Hier meine Lösung als Autodidakt

Sub checker()
Dim c As String
For Each Zelle In Range("Textbereich")
c = "blabla"
checkthis:
b = InStr(Zelle, c)
d = Len(Zelle)
e = 7
If b + 7 > d Then e = d - b - 1
If b > 0 Then
With Zelle.Characters(start:=b, Length:=e).Font
.FontStyle = "Fett Kursiv"
.Size = "9"
End With
End If
If c = "blabla" Then c = "bleble": GoTo checkthis
If c = "bleble" Then c = "blibli": GoTo checkthis
If c = "blibli" Then c = ... usw.
Next
End Sub

Abgesehen davon, dass es so auch nicht klappt, wenn die entspr. Folge ein zweites Mal in der Zelle erscheint, muß das doch irgendwie eleganter sehen.
Außerdem würde ich auch gerne nicht Case-sensitiv suchen.
Danke
Jörg

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kann man das eleganter machen ?
06.02.2005 13:35:28
Josef
Hallo Jörg!
ZB. so.


      
Sub checker()
Dim Zelle As Range
Dim c As Variant
Dim n As Integer, m As Integer, b As Integer, d As Integer, e As Integer
c = Array(
"blabla""blibli""blublu")   'suchbegriffe

   
For Each Zelle In Range("Textbereich")
   
      
For n = 0 To UBound(c)
      d = Len(Zelle)
      e = Len(c(n))
      m = 1
         
Do
         b = InStr(m, LCase(Zelle), LCase(c(n)))
         
         
            
If b > 0 Then
            
With Zelle.Characters(Start:=b, Length:=e).Font
            .FontStyle = 
"Fett Kursiv"
            .Size = 
"9"
            
End With
            m = b + e
            
End If
         
         
Loop While b > 0
         
      
Next
   
Next
   
End Sub 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
hat geklappt
JL
auf den ersten Versuch super
Danke
J

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige