• 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.

Instructie tekst in cel

Status
Niet open voor verdere reacties.
Maar zo wel:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target.Value) = 0 And Not Intersect(Target, Range("D15,D20,D25,D27")) Is Nothing Then
    Select Case Target
        Case Range("D15")
            Target.Value = "Vul hier wat in."
        Case Range("D20")
            Target.Value = "Vul hier wat anders in."
        Case Range("D25")
            Target.Value = "Vul hier weer wat in."
        Case Range("D27")
            Target.Value = "Vul hier nog wat in."
    End Select
        Target.Characters(5, 4).Font.Color = vbBlue
        Target.Characters(5, 4).Font.Underline = True
    End If


End Sub

Met vriendelijke groet,


Roncancio
 
Maar zo wel:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target.Value) = 0 And Not Intersect(Target, Range("D15,D20,D25,D27")) Is Nothing [COLOR="Red"]or xlZero[/COLOR] Then
    Select Case Target
        Case Range("D15")
            Target.Value = "Vul hier wat in."
        Case Range("D20")
            Target.Value = "Vul hier wat anders in."
        Case Range("D25")
            Target.Value = "Vul hier weer wat in."
        Case Range("D27")
            Target.Value = "Vul hier nog wat in."
    End Select
        Target.Characters(5, 4).Font.Color = vbBlue
        Target.Characters(5, 4).Font.Underline = True
    End If


End Sub

Met vriendelijke groet,


Roncancio



Nog een klein vraagje, ik heb de boven staande code iets aangepast(zie rode tekst) maar nu word hij heel erg langzaam, iemand een idee hoe dit komt? (vast wel:))

Groeten
 
Als je wilt voorkomen dat met spatie invoert, kan je de volgende code gebruiken.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Trim$(Target.Value)) = 0 And Not Intersect(Target, Range("D15,D20,D25,D27")) Is Nothing Then
    Select Case Target
        Case Range("D15")
            Target.Value = "Vul hier wat in."
        Case Range("D20")
            Target.Value = "Vul hier wat anders in."
        Case Range("D25")
            Target.Value = "Vul hier weer wat in."
        Case Range("D27")
            Target.Value = "Vul hier nog wat in."
    End Select
        Target.Characters(5, 4).Font.Color = vbBlue
        Target.Characters(5, 4).Font.Underline = True
    End If


End Sub

Met vriendelijke groet,


Roncancio
 
Hmm nee dat bedoelde ik eigenlijk niet, maar dat die tekst ook in het vakje word gezet als er een 0 in word gevoerd. Ik denk dat ik je code nog niet helemaal snap,:P Er gebeurt wel wat ik wil alleen heel erg traag..

Groeten!
 
In onderstaande code verschijnt ook de tekst als de waarde 0 is.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = 0 Or Len(Trim$(Target.Value)) = 0 And Not Intersect(Target, Range("D15,D20,D25,D27")) Is Nothing Then
    Select Case Target
        Case Range("D15")
            Target.Value = "Vul hier wat in."
        Case Range("D20")
            Target.Value = "Vul hier wat anders in."
        Case Range("D25")
            Target.Value = "Vul hier weer wat in."
        Case Range("D27")
            Target.Value = "Vul hier nog wat in."
    End Select
        Target.Characters(5, 4).Font.Color = vbBlue
        Target.Characters(5, 4).Font.Underline = True
    End If


End Sub
Is het bestand zo groot dat het zo traag is?

Met vriendelijke groet,


Roncancio
 
In onderstaande code verschijnt ook de tekst als de waarde 0 is.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = 0 Or Len(Trim$(Target.Value)) = 0 And Not Intersect(Target, Range("D15,D20,D25,D27")) Is Nothing Then
    Select Case Target
        Case Range("D15")
            Target.Value = "Vul hier wat in."
        Case Range("D20")
            Target.Value = "Vul hier wat anders in."
        Case Range("D25")
            Target.Value = "Vul hier weer wat in."
        Case Range("D27")
            Target.Value = "Vul hier nog wat in."
    End Select
        Target.Characters(5, 4).Font.Color = vbBlue
        Target.Characters(5, 4).Font.Underline = True
    End If


End Sub


Is het bestand zo groot dat het zo traag is?

Deze werkt goed! :)Het bestand is inderdaad vrij groot (in 2003 formaat 2.5 mb), maar met deze code gaat het wel snel. Ik denk dat mijn code xl.Zero gewoon niet goed was?
 
Deze werkt goed! :)Het bestand is inderdaad vrij groot (in 2003 formaat 2.5 mb), maar met deze code gaat het wel snel. Ik denk dat mijn code xl.Zero gewoon niet goed was?

Ja, ik ben ook benieuwd hoe je daar aankomt.
Xl.zero wordt voor een ander doel gebruikt. (grafieken).

Met vriendelijke groet,


Roncancio
 
Ja, ik ben ook benieuwd hoe je daar aankomt.
Xl.zero wordt voor een ander doel gebruikt. (grafieken).

Met vriendelijke groet,


Roncancio

Aanvankelijk had ik geprobeerd om gewoon een 0 te gebruiken, maar dit werkte niet. Daarom dacht ik dat ik het woord nul (oftewel zero) in moest vullen. Maar dit klopt dus niet! Bedankt voor je hulp, op zo'n manier kom ik steeds meer van VBA en excel te weten!:):thumb:
 
Aanvankelijk had ik geprobeerd om gewoon een 0 te gebruiken, maar dit werkte niet. Daarom dacht ik dat ik het woord nul (oftewel zero) in moest vullen. Maar dit klopt dus niet! Bedankt voor je hulp, op zo'n manier kom ik steeds meer van VBA en excel te weten!:):thumb:

Oké.
Gaarne de vraag nog op opgelost zetten (rechts onderaan de pagina).
Bvd.

Met vriendelijke groet,


Roncancio
 
Is de combinatie van intersect en case niet een beetje teveel van het goede ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If val(target)=0 then exit sub

    Select Case Target.address
    Case "$D$15","$D$20","$D$25","$D$27"
      
      With Target.Characters(5, 4).Font
        .Color = vbBlue
        .Underline = True
      end with
      Select case target.address
      Case "$D$15"
        Target.Value = "Vul hier wat in."
      Case "$D$20"
        Target.Value = "Vul hier wat anders in."
      Case "$D$25")
        Target.Value = "Vul hier weer wat in."
      Case "$D$27")
        Target.Value = "Vul hier nog wat in." 
      End Select
    End Select
End Sub
 
Is de combinatie van intersect en case niet een beetje teveel van het goede ?

Wellicht, maar door de Select Case bovenaan doe je eigenlijk hetzelfde.
Overigens werkt je code niet goed.

1. Indien er een 0 of lege cel staat moet de tekst komen. Bij jou code stopt het programma.
2. Indien er een getal wordt ingevoerd, moet dit blijven staan. Bij jou wordt deze overschreven.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Beste,

De code van Ronancio werkt goed, er zit echter 1 bug in en die zou ik er graag uit willen hebben. Wanneer ik een aantal cellen selecteer, en hier de inhoud van wis krijg ik een bericht van vba met de melding: typen komen niet met elkaar overeen.
Ik heb geprobeerd en geprobeerd, maar het is niet gelukt. Zou iemand de oplossing in de code weten?



Verkorte code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = 0 Or Len(Trim$(Target.Value)) = 0 And Not Intersect(Target, Range("D19")) Is Nothing Then
Select Case Target
Case Range("D19")
Target.Value = "Vul hier de arbeid per charge in minuten in."

End Select
Target.Characters(5, 4).Font.Color = vbBlue
Target.Characters(5, 4).Font.Underline = True
End If


End Sub
 
Laatst bewerkt:
Het zou zo kunnen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rBereik As Range
    For Each rBereik In Range(Target.Address)
        If rBereik.Value = 0 Or Len(Trim$(rBereik.Value)) = 0 And Not Intersect(rBereik, Range("D19")) Is Nothing Then
        Select Case rBereik
        Case Range("D19")
            rBereik.Value = "Vul hier de arbeid per charge in minuten in."
        
        End Select
        rBereik.Characters(5, 4).Font.Color = vbBlue
        rBereik.Characters(5, 4).Font.Underline = True
        End If
    Next

End Sub

Met vriendelijke groet,


Roncancio
 
Of:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  For each cl in Target.cells
    If cl.value="" and cl.address="$D$19" then
         cl.Value = "Vul hier de arbeid per charge in minuten in."
         With cl.Characters(5, 4).Font
            .Color = vbBlue
            .Underline = True
         End With
    End If
  Next
End Sub
 
Laatst bewerkt:
Of:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  For each cl in Target.cells
    If cl.value="" and cl.address="$D$19" then
         cl.Value = "Vul hier de arbeid per charge in minuten in."
         With cl.Characters(5, 4).Font
            .Color = vbBlue
            .Underline = True
         End With
    End If
  Next
End Sub


Werkt ook, alleen omdat ik dit voor meerdere cellen gebruik is dit een beetje veel werk om opnieuw in te voeren! Wel bedankt:thumb:
 
alleen omdat ik dit voor meerdere cellen gebruik is dit een beetje veel werk
Dat lijkt me een misvatting.
Zet dan eens de cellen hier waarvoor het geldt; dan pas ik die macro wel aan.
 
Dat lijkt me een misvatting.
Zet dan eens de cellen hier waarvoor het geldt; dan pas ik die macro wel aan.

Ja ik snap wat je bedoeld, maar omdat ik de code van Ronancio gebruikte was het een kwestie van 2 dingen knippen en plakken, vanwege de indeling van de code. En omdat er een beetje vertrouwelijke informatie in staat zet ik het liever niet op het forum.. Bedankt voor je aanbod en inzet!
 
Toch nog even open gegooid. Wanneer ik het tabblad beveilig(uiteraard niet de cellen waar de code voor draait) werkt hij niet meer. De tekst komt er nog wel in maar bij de kleur loopt hij vast. Ik krijg deze foutmelding:
Fout 1004:
Door de toepassing of object gedefineerde fout.

Alvast weer bedankt!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan