Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

veranderen kleur letter middels macro

325 views
Skip to first unread message

Jos de Greef

unread,
Apr 4, 2002, 3:51:55 AM4/4/02
to
Beste mensen,
Ik wil de kleur van de letters in een cel veranderen als
deze aan een bepaalde voorwaarde voldoet. Normaal
gesproken gebruik ik daar de "voorwaardelijke opmaak"
voor. Echter, ik kan maar drie condities opgeven en die
heb ik gebruikt.
Ik heb al een macro waarmee ik alle cellen waar alleen een
hoofdletter V in staat, verander in een kleine letter v
middels de REPLACE opdracht.

Cells.Replace What:="V", Replacement:="v",
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True

Kan iemand mij helpen aan een macro die niet alleen er
een "v" van maakt, maar hem ook nog eens een rode "v" van
maakt?
Alvast bedankt!
Jos

Ber Visser

unread,
Apr 4, 2002, 10:31:35 AM4/4/02
to
Hallo Jos,
Wanneer een cel verandert van "V" naar "v" kleurt deze macro de
letter rood.
Wanneer er echter in een cel al een zwarte "v" stond gebeurt er
niets.
Was dat de bedoeling?

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Cells.Replace What:="V", Replacement:="v", _


LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True

Target.Font.ColorIndex = 3
End Sub


--
Met vriendelijke groeten,
Ber Visser

Jos de Greef

unread,
Apr 5, 2002, 1:37:02 AM4/5/02
to
Beste Ber,
Wil je je macro nog eens nakijken? Ik heb hem gecopieerd
vanaf dit bericht, maar hij werkt niet. Excel herkent hem
niet als macro. Wellicht door de toevoeging tussen de
haakjes achter de macronaam?
Jos
>-----Oorspronkelijk bericht-----
>.
>

Ber Visser

unread,
Apr 5, 2002, 10:21:32 AM4/5/02
to
Beste Jos,
Je moet de code in het werkblad zetten.
Kopieer de macro.
Klik met de rechter muisknop op de bladtab en kies Programmacode
weergeven
Plak de macro on het rechter vak.
De macro wordt aangeroepen iedere keer dat er op het werkblad een
verandering plaats vindt, vandaar 'Worksheet_Change'. Het
gedeelte tussen haakjes geeft aan dat de waarde die als input
voor deze macro geldt een Range is.

--
Met vriendelijke groeten,
Ber Visser

"Jos de Greef" <jwde...@planet.nl> schreef in bericht
news:145c01c1dc6c$4ba1d400$3bef2ecf@TKMSFTNGXA10...

Albert Coninx

unread,
Apr 5, 2002, 12:05:56 PM4/5/02
to
Ber,
omdat uw macro niet alleen een "V" in een "v" verandert, maar ook bij invoer van gelijk welk ander teken in een
willekeurige cel, de kleur van het lettertype in deze cel in het rood wordt gezet, ben ik zo vrij geweest uw macro een
beetje aan te passen zodat hij enkel die cellen rood kleurt waarvan de tekst begint met een "V".
Ik denk dat dit de oorspronkelijke bedoeling van Jos was.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

On Error Resume Next
If Left(Target, 1) = "V" Then


Cells.Replace What:="V", Replacement:="v"

Target.Font.ColorIndex = 3
End If
End Sub

Albert


"Ber Visser" <viss...@pandora.be> schreef in bericht news:OZNziVL3BHA.1272@tkmsftngp03...

Jos de Greef

unread,
Apr 6, 2002, 3:07:53 AM4/6/02
to
Je macro werkt, waarvoor mijn hartelijke dank alvast, maar
hij werkt iets te enthousiast. Het is mijn bedoeling dat
als in een cel alleen een V staat, deze verandert in een
rode v. Nu worden ook woorden die beginnen met een V in
het rood weergegeven. Tweede punt is dat de cel permanent
rode leters weergeeft. Als er later een andere letter dan
een V in wordt gezet, moet de kleur weer gewoon zwart
worden. Is dat allemaal mogelijk?
Jos
>-----Oorspronkelijk bericht-----
>.
>

Albert Coninx

unread,
Apr 6, 2002, 6:27:11 AM4/6/02
to
Gewoon een kleine wijziging als volgt aan te brengen.
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error Resume Next
If Target = "V" Then

Cells.Replace What:="V", Replacement:="v"
Target.Font.ColorIndex = 3
Else
Target.Font.ColorIndex = 1     'Of een andere kleur
End If
End Sub
 
 
Groetjes
 
Albert
 

Albert Coninx

unread,
Apr 6, 2002, 6:48:34 AM4/6/02
to
Je kan deze macro nog verder verfijnen. Als je, bijvoorbeeld, enkel de "V"'s in een bepaalde kolom wenst te wijzigen vervang je de lijn :


If Target = "V" Then

door:

If ActiveCell.Column = 1 And Target = "V" Then
 
"1" staat hier voor kolom A, "5" voor kolom E enz...
 
Groetjes
 
Albert
 

"Albert Coninx" <Albert.Co...@advalvas.be> schreef in bericht news:jYAr8.1600$Ze....@afrodite.telenet-ops.be...

Albert Coninx

unread,
Apr 6, 2002, 7:07:02 AM4/6/02
to
Gewoon een kleine wijziging als volgt aan te brengen.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error Resume Next
If Target = "V" Then


Cells.Replace What:="V", Replacement:="v"
Target.Font.ColorIndex = 3

Else
ActiveCell.Font.ColorIndex = 1 'Of een andere kleur
End If
End Sub

Je kan deze macro nog verder verfijnen. Als je, bijvoorbeeld, enkel de "V"'s in een bepaalde kolom wenst te wijzigen
vervang je de lijn :

If Target = "V" Then

door:

If ActiveCell.Column = 1 And Target = "V" Then

"1" staat hier voor kolom A, "5" voor kolom E enz...

Groetjes

Albert

"Jos de Greef" <jwde...@planet.nl> schreef in bericht news:5cea01c1dd42$27377350$a5e62ecf@tkmsftngxa07...

Jos de Greef

unread,
Apr 6, 2002, 9:09:59 AM4/6/02
to
Bedankt!
Het werkt uitstekend
>-----Oorspronkelijk bericht-----
>> Í{ wÀ ¾ ´ ½ ,ÁÌ Ô;O ì >> > haakjes achter de
0 new messages