Hallo,
Ik heb een macro die ik HIER heb gevonden die ik een beetje wil aanpassen.
Wat de macro doet is een inputbox openen, waar ik door comma gescheiden woorden in kan vullen, en die vervolgens dikgedrukt en gekleurd worden. In plaats daarvan wil ik een tabblad maken, waarin ik een bepaalde range toewijs, en de woorden die daar in staan dus de macro 'in gooi'. Ik heb al een beetje geklooid, maar krijg het niet voor elkaar.
Het gaat hierom, en de dikgedrukte regel zou dus veranderd moeten worden in een bepaald bereik:
Sub MAIN()
Dim MyList As String, arr, a
MyList = Application.InputBox(Prompt:="give me comma-separated text strings", Type:=2)
arr = Split(MyList, ",")
For Each a In arr
Call HighlightStrings(a)
Next a
End Sub
Sub HighlightStrings(cFnd As Variant)
'Updateby Extendoffice 20160704
Application.ScreenUpdating = False
Dim Rng As Range
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
y = Len(cFnd)
For Each Rng In Selection
With Rng
m = UBound(Split(Rng.Value, cFnd))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, cFnd)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.Bold = True
xTmp = xTmp & cFnd
Next
End If
End With
Next Rng
Application.ScreenUpdating = True
End Sub
Ik heb dit geprobeerd:
Sub MAIN()
Dim MyList As String, arr, a
MyList = Range("A2:A4")
arr = Split(MyList, ",")
For Each a In arr
Call HighlightStrings(a)
Next a
End Sub
Maar dat gaat mis, omdat dat niet comma-separated is en ik weet niet hoe ik dat kan tweaken.
Nog een klein 'nice to have' verzoekje trouwens. Ik zou ook een tweede variant van de macro willen hebben, waarbij wel die inputbox moet blijven staan, maar waarbij ik ook de kleur van de tekst kan bepalen met een colorpicker. Ik ben een eind gekomen, maar uiteindelijk werkte mijn versie toch niet.
Ik hoop dat iemand me daarmee kan helpen. Hartelijk dank alvast!
Ik heb een macro die ik HIER heb gevonden die ik een beetje wil aanpassen.
Wat de macro doet is een inputbox openen, waar ik door comma gescheiden woorden in kan vullen, en die vervolgens dikgedrukt en gekleurd worden. In plaats daarvan wil ik een tabblad maken, waarin ik een bepaalde range toewijs, en de woorden die daar in staan dus de macro 'in gooi'. Ik heb al een beetje geklooid, maar krijg het niet voor elkaar.
Het gaat hierom, en de dikgedrukte regel zou dus veranderd moeten worden in een bepaald bereik:
Sub MAIN()
Dim MyList As String, arr, a
MyList = Application.InputBox(Prompt:="give me comma-separated text strings", Type:=2)
arr = Split(MyList, ",")
For Each a In arr
Call HighlightStrings(a)
Next a
End Sub
Sub HighlightStrings(cFnd As Variant)
'Updateby Extendoffice 20160704
Application.ScreenUpdating = False
Dim Rng As Range
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
y = Len(cFnd)
For Each Rng In Selection
With Rng
m = UBound(Split(Rng.Value, cFnd))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, cFnd)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.Bold = True
xTmp = xTmp & cFnd
Next
End If
End With
Next Rng
Application.ScreenUpdating = True
End Sub
Ik heb dit geprobeerd:
Sub MAIN()
Dim MyList As String, arr, a
MyList = Range("A2:A4")
arr = Split(MyList, ",")
For Each a In arr
Call HighlightStrings(a)
Next a
End Sub
Maar dat gaat mis, omdat dat niet comma-separated is en ik weet niet hoe ik dat kan tweaken.
Nog een klein 'nice to have' verzoekje trouwens. Ik zou ook een tweede variant van de macro willen hebben, waarbij wel die inputbox moet blijven staan, maar waarbij ik ook de kleur van de tekst kan bepalen met een colorpicker. Ik ben een eind gekomen, maar uiteindelijk werkte mijn versie toch niet.
Ik hoop dat iemand me daarmee kan helpen. Hartelijk dank alvast!
Laatst bewerkt: