• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Verschillende opmaken in 1 cel

Status
Niet open voor verdere reacties.

Stone52

Gebruiker
Lid geworden
11 dec 2004
Berichten
320
Forummers,


Ik ben op zoek naar een methode op het resultaat van enkele
formules, binnen 1 cel, verschillend op te maken. In de cel heb ik
de formule: =TEXT($C$3;"dd") & " " & TEXT($C$3;"ddd"), waarbij
in C3 een datum staat.

De bedoeling is dat het eerste deel (het dag-deel van de datum) normaal
wordt weergegeven, terwijl het 2e deel (de dag-aanduiding van de datum)
vet wordt weergegeven.

Hoe kan ik dit doen ?
 
Laatst bewerkt:
Onderstaande macro controleert of cel C3 is gewijzigd.
Indien dit het geval is, dan wordt in de cel ernaast (D3) de datum van C3 als volgt geplaatst:

16 Tue
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
    Cells(Target.Row, Target.Column + 1).Value = WorksheetFunction.Text(Range("C3"), "dd") & Space(1) & WorksheetFunction.Text(Range("C3"), "ddd")
    Cells(Target.Row, Target.Column + 1).Characters(Start:=3, Length:=4).Font.Bold = True
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Heb nog wat dingetjes veranderd bij Roncancio:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$3" Then
    
    Application.EnableEvents = False
    
    With Range("C3")
        
        .Offset(, 1).Value = Format(.Value, "dd ddd")
        .Characters(Start:=4, Length:=4).Font.Bold = True
    
    End With
    
    Application.EnableEvents = True
    
End If

End Sub

Wigi
 
Hallo Mathijs, Roncancio en Wigi,

De aangedragen oplosingen zijn voor mij niet dé oplissing.
In VBA is het voor mij geen probleem om delen van de tekst
vet/cursief/normaal te maken.
Het is de uitdaging om dit, binnen één doel-cel, te kunnen doen.

Mogelijk dat ik met experimenteren met de door Wigi aangedragen
oplossing, verder kan komen.

Zelf zocht ik de oplossing meer in de richting van het meegeven van
een opmaak bij de formule zelf (vergelijkbaar met VBA).
 
Stone 52, je functie:
=TEXT($C$3;"dd") & " " & TEXT($C$3;"ddd")
kan worden ingekort tot:
=TEKST($C$3;"dd ddd")

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then 
    Application.EnableEvents = False  
    With Range("C3")
        
       [b] .Offset(, 1).Value = Format(.Value, "dd ddd")
        .Characters(Start:=4, Length:=4).Font.Bold = True[/b]
    
    End With
    Application.EnableEvents = True  
End If
End Sub

Met de vetgedrukte regels ben je zowel bezig in C3 als in D3, dat zal niet de bedoeling zijn. Dan wordt er niets bold.
Ofwel gebruik je in geen van beide regels OFFSET(, 1) ofwel gebruik je bij beide regels OFFSET(, 1) .
Waarschijnlijk zal het laatste de bedoeling zijn.
De tweede regel kan overigens (met inachtneming van wat ik hierboven schreef) worden ingekort tot:
.Offset(, 1).Characters(4, 4).Font.Bold = True
 
Laatst bewerkt:
Met de vetgedrukte regels ben je zowel bezig in C3 als in D3, dat zal niet de bedoeling zijn. Dan wordt er niets bold.
Ofwel gebruik je in geen van beide regels OFFSET(, 1) ofwel gebruik je bij beide regels OFFSET(, 1)

Zapatr

je bent idd in 2 cellen bezig, alleen is dat wel uit de vraag af te leiden:


Forummers,

Ik ben op zoek naar een methode op het resultaat van enkele
formules, binnen 1 cel, verschillend op te maken. In de cel heb ik
de formule: =TEXT($C$3;"dd") & " " & TEXT($C$3;"ddd"), waarbij
in C3 een datum staat.
 
je bent idd in 2 cellen bezig, alleen is dat wel uit de vraag af te leiden:
Dat begrijp ik.
Maar uit de tekst van de vragensteller blijkt ook dat hij de weekdag vet wil en met jouw code wordt er van de tekst helemaal niets vet (toch niet in de Excelversie die ik nu voor me heb).
 
Wigi en Zapatr,


Het is inderdaad de bedoeling dat binnen 1 cel het
datum-dag-nummerdeel normaal of cursief wordt weergegeven
en de datum-dag-tekst (bv) vet.
 
Het is inderdaad de bedoeling dat binnen 1 cel het
datum-dag-nummerdeel normaal of cursief wordt weergegeven
en de datum-dag-tekst (bv) vet.
Is je vraag nu opgelost?
Bedenk dat je in de cel waarin de functie =TEXT($C$3;"dd ddd") staat, niet een gedeelte vet kunt maken zonder de functie te wissen.
 
Ik heb het gevoel dat we in herhaling vallen.
Zonder VBA is de vraag niet te beantwoorden en zowel Zapatr, Wigi als ondergetekende hebben al oplossingen aangedragen die (in mijn optiek) aanvaardbaar zijn.

Met vriendelijke groet,


Roncancio
 
Eerder hebben jullie mij al overtuigd dat de oplossing mbv VBA gezocht moet worden.
Ik ben doorgegaan op het voorbeeld van Wigi (VBA). Zie bijlage.

Het merkwaardige is dat de eerste opmaak (.Character . . . .) wordt geaccepteerd
en de overige niet, ondanks de start-parameter.

Het lijkt niet mogelijk om de verschillende waardes -binnen 1 cel- een andere
opmaak / font te geven. Heeft iemand nog suggesties ?
 

Bijlagen

Eerder hebben jullie mij al overtuigd dat de oplossing mbv VBA gezocht moet worden.
Ik ben doorgegaan op het voorbeeld van Wigi (VBA). Zie bijlage.

Het merkwaardige is dat de eerste opmaak (.Character . . . .) wordt geaccepteerd
en de overige niet, ondanks de start-parameter.

Het lijkt niet mogelijk om de verschillende waardes -binnen 1 cel- een andere
opmaak / font te geven. Heeft iemand nog suggesties ?
Het is heel flauw om te zeggen maar de andere Characters staan als tekst in de code.
Als ik de code uitvoert, dan krijg ik wel gewoon verschillende opmaak in 1 cel.
Zie bijgevoegd bestand.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Forummers,

De oplossing blijkt simpel. Door gebruik te maken van een hulpveld
met de formule: =TEXT($C$3;"dd") & " " & TEXT($C$3;"ddd") en
met VBA de waarde van deze formule te kopieren
Code:
Range("C3") = Range("F3").Value
kan met (bv)

Code:
With Range("C3")
     .Characters(Start:=7, Length:=2).Font.Bold = True
 End With
de cel opgemaakt worden.
 
De oplossing blijkt simpel. Door gebruik te maken van een hulpveld met de formule: =TEXT($C$3;"dd") & " " & TEXT($C$3;"ddd") en
met VBA de waarde van deze formule te kopieren

Dit is ook al goed:

=TEXT($C$3;"dd ddd")
 
"Range("C3") = Range("F3").Value
With Range("C3")
.Characters(Start:=7, Length:=2).Font.Bold = True
End With"

En dat is dan een oplossing zonder VBA?
Of ben ik weer niet mee?

Cobbe
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan