Anzeige
Archiv - Navigation
1108to1112
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

Makro anpassen

Makro anpassen
mehmet
Guten Morgen Forum,
das Makro funktioniert echt gut.
Allesding werden nur die ersten Fundstellen markiert.
Weitere und folgende (gleiche) fundstellen werden nicht markiert.
Wie könnte man diese anpassen?
Private Sub Markiere_BR_SN_FG_TS_etc()
Sheets("WX").Select
Dim Bereich As Range
Dim objRegEx As Object, objMatch As Object
Dim i As Integer
Dim LRow As Long
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.IgnoreCase = True 'Groß u. Kleinschreibung nicht beachten, sonst False
.MultiLine = True
.Global = True
.Pattern = " BR | HZ | VA | FU | GR | RA | DZ | PR | SH | BC | VC | MI | SN | SG | IC | PL |  _
GR | VU | DU | SA | PO | SQ | FC | SS | DS | FZ | FG | TS |[-]|[+]|shsnra|radz|shra|shgs|shrasn|tsra|rasn|mifg" 'Suchbegriffe durch | trennen
End With
LRow = IIf(IsEmpty(Cells(200, 3)), Cells(200, 3).End(xlUp).Row, 200)
Set Bereich = Range("C6:C" & LRow) 'Suchbereich
For Each Bereich In Bereich
If Bereich  "" Then
Set objMatch = objRegEx.Execute(Bereich.Text)
For i = 0 To objMatch.Count - 1
With Bereich.Characters(objMatch(i).FirstIndex + 1, Len(objMatch(i)))
.Font.ColorIndex = 3
.Font.Bold = True
End With
Next i
End If
Next Bereich
Set objMatch = Nothing: Set objRegEx = Nothing
Range("A1").Select
End Sub

Wenn es z.B. in Zelle C16 heißt:
METAR EGNX 151720Z 24003KT 3500 BR OVC004 BR 11/10 Q1032=
Es sollen also die BR markiert werden.
Oben im Makro wird nur die erste markiert?
Dank und Gruss
mehmet

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro anpassen
16.10.2009 10:39:49
Luschi
Hallo mehmet,
die For-Schleife benötigt eine Laufvariable:
Dim Bereich As Range, rg As Range
For Each rg In Bereich
    'der weitere Vba-Code
Next rg
und schon funktioniert die Formatierung.
Gruß von Luschi
aus klein-Paris
AW: Makro anpassen
16.10.2009 11:01:51
mehmet
Hallo Luschi,
danke für deine Hilfe.
So vieleicht?
bekomme Fehlermeldung (
Private Sub Markiere_BR_SN_FG_TS_etc()
Sheets("WX").Select
Dim Bereich As Range
Dim objRegEx As Object, objMatch As Object
Dim i As Integer
Dim LRow As Long
Set objRegEx = CreateObject("VBScript.RegExp")
Dim Bereich As Range, rg As Range
With objRegEx
.IgnoreCase = True 'Groß u. Kleinschreibung nicht beachten, sonst False
.MultiLine = True
.Global = True
.Pattern = " BR | HZ | VA | FU | GR | RA | DZ | PR | SH | BC | VC | MI | SN | SG | IC | PL |  _
GR | VU | DU | SA | PO | SQ | FC | SS | DS | FZ | FG | TS |[-]|[+]|shsnra|radz|shra|shgs|shrasn|tsra|rasn|mifg" 'Suchbegriffe durch | trennen
End With
LRow = IIf(IsEmpty(Cells(200, 3)), Cells(200, 3).End(xlUp).Row, 200)
Set Bereich = Range("C6:C" & LRow) 'Suchbereich
 For Each rg In Bereich
If Bereich  "" Then
Set objMatch = objRegEx.Execute(Bereich.Text)
For i = 0 To objMatch.Count - 1
With Bereich.Characters(objMatch(i).FirstIndex + 1, Len(objMatch(i)))
.Font.ColorIndex = 3
.Font.Bold = True
End With
Next i
End If
Next rg
Set objMatch = Nothing: Set objRegEx = Nothing
Range("A1").Select
End Sub
Gruß
mehmet
Anzeige
AW: Makro anpassen
16.10.2009 11:12:08
Luschi
Hallo mehmet,
so muß es sein:

For Each rg In Bereich
If rg  "" Then
Set objMatch = objRegEx.Execute(rg.Text)
For i = 0 To objMatch.Count - 1
With rg.Characters(objMatch(i).FirstIndex + 1, Len(objMatch(i)))
.Font.ColorIndex = 3
.Font.Bold = True
End With
Next i
End If
Next rg

Und zum Schluß noch zusätzlich:
Set rg = Nothing: Set Bereich = Nothing
Gruß von Luschi
aus klein-Paris
AW: Makro anpassen
16.10.2009 11:27:02
mehmet
Hallo Luschi,
jetzt funktioniert es .
Dank Dir.
Allerdings werden die zweiten BR nicht mitmarkiert.
Hier ein Beispiel:
METAR LEVC 160830Z 29006KT 240V340 9999 BR BR SCT025 BR BR BR BKN040 13/11 Q1022 NOSIG=
Gruss
mehmet
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige