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

Bepaalde letters omzetten naar HOOFDLETTERS

Status
Niet open voor verdere reacties.
Leo,
Ik heb aan jouw code toegevoegd dat als een cel een "d" of een "D" bevat de cel rood wordt gekleurd.
Nu zou ik graag aan nog een paar letters/combinaties celkleuren willen toekennen maar ik kom er maar niet uit. Dus b.v. als de cel een "k" of "K" bevat dat hij dan geel wordt of bij nog een letter/combinatie de cel blauw enz.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
         Application.EnableEvents = False
    If Not Intersect(Target, Range("H5:AI60")) Is Nothing And Target.Count = 1 Then
        Target.Value = ChCase(Target, "abcdfghjklmnopqrstuvwxyz") 'e en i ontbreken!
    End If
        Application.EnableEvents = True
End Sub
_________________________________________________________________________

Function ChCase(c As Range, Optional sAlleenDeze As String = "abcdefghijklmnopqrstuvwxyz") As String
Dim sRegel As String, sRegelNw As String, sLetter As String, sLetterNw As String
Dim i As Integer
        sRegel = c.Value
    For i = 1 To Len(sRegel)
                sLetter = Mid(sRegel, i, 1)
            If InStr(1, sAlleenDeze, sLetter) > 0 And ActiveCell.Value = "d" Or ActiveCell.Value = "D" Then
                       ActiveCell.Interior.ColorIndex = 3
                With ActiveCell.Font
                       .FontStyle = "Normal"
                End With
                        sLetterNw = UCase(sLetter)
            Else:
                        sLetterNw = sLetter
            End If
                   sRegelNw = sRegelNw & sLetterNw
    Next i
            ChCase = sRegelNw
End Function

Ik hoop dat je me nog een keer op weg kunt helpen.:o
 
Laatst bewerkt:
Tsarevitsj,
Ik hoop dat je me nog een keer op weg kunt helpen
..Tuurlijk!

Wat ff héél belangrijk is, is dat een functie geen aanpassingen kan maken in je worksheet. Het geeft namelijk alleen een resultaat terug. Om iets te veranderen in je sheet (dus het werkelijke 'doen'), zal je een 'sub' moeten gebruiken.
Ik zie dat je het kleuren van die hele regels uit je Change_event hebt gehaald. In dat geval kan je WEL met de kleur van je actieve cel (Target) werken.
Vraag dmv een Select Case uit wat de value is van je Target. Een klein voorbeeldje uit de losse pols...
Code:
Select Case Ucase(Target.Value)
Case "D"
          Target.Interior.ColorIndex = 3
           Target.Font.FontStyle = "Normal"
Case "K"
          Target.Interior.ColorIndex = 6
           Target.Font.FontStyle = "Bold"
End Select
Dit kan je uitaard allemaal korter maken door met With...End With te werken en ipv bij iedere 'case' je interior en fontstyle op te geven, gebruik te maken van een variabele die je na je select dan in die 2 regels plaatst.
Ik heb met Ucase(Target.Value) gewerkt omdat je dan niet apart op je kleine- en hoofdletter hoofdletter hoeft te testen (hoewel dat bij jouw codes wel 'ns ernstig nodig zou kunnen zijn).
Probeer d'r maar 'ns mee te stoeien en bij problemen horen we 't wel weer! :D

Groet, Leo
 
Tsja Leo, na 2 dagen knokken, een lichte zenuwtic in mijn gezicht, enigszins tot waanzin gedreven, wees mijn vrouw mij erop dat ik een paar happen uit het bureaublad had genomen. :D

Het Select.Case inbakken ging dus niet goed, of het kleurde wel in maar de letters verdwenen, andersom gebeurde ook of er gebeurde niets of alles kwam dubbel in een cel.
Ik heb nu dus maar een Sub toegevoegd aan jouw code die de “Activecell” inleest en kleurt en dat gaat goed en vooral snel. Wel een beetje veel code moeten schrijven want er zijn 97 letter/cijfer combinaties en dat x 2 maar het werkt.
Het zal ongetwijfeld via de door jouw voorgestelde manier “beter” werken want minder code met hetzelfde resultaat is altijd beter heb ik hier geleerd.
Ik wil je hierbij nogmaals bedanken voor je hulp, suggesties en wijze raad en misschien kan ik in de toekomst nog eens "misbruik" ;) van je maken :thumb:
 
Tsarevitsj,
Tsja Leo, na 2 dagen knokken, een lichte zenuwtic in mijn gezicht, enigszins tot waanzin gedreven, wees mijn vrouw mij erop dat ik een paar happen uit het bureaublad had genomen.:D
Tja, 't leven van een 'programmeur' gaat niet over rozen...:D:D:D

Als je code nu werkt 'zoals 't werkt', moet je er lekker niets meer aan doen! Blijf vooral door oefenen met VBA en kijk over een x aantal maanden weer 'ns naar deze sheet. Wellicht is je kennis dan vergroot en lukt het wel om de boel te verkorten.

Voor wat betreft 'het toekomstig misbruik'. Vooral problemen blijven aankaarten hier op Helpmij.nl. Ik en andere helpers helpen graag.

Wil je de topic nog ff op opgelost zetten?

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan