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

2 opdrachten in vba met elkaar combineren

Status
Niet open voor verdere reacties.

CasperEx

Gebruiker
Lid geworden
3 dec 2013
Berichten
78
Beste helpers

Een vraag (zie bestand)

Ik probeer het volgende

Als in het bestand in het gele gebied een "b" wordt geselecteerd (validatie/lijst) verschijnt automatisch een boodschap (met dank aan jullie eerdere hulp)

In vba is een "kleine b" gedefinieerd en in mijn validatielijst dus ook. Dat gaat prima
Ook het (buiten de lijst om dus) typen van een "kleine b" levert keurig de boodschap op, ook dat gaat dus prima

Maar...Ik kan ook een "grote B" typen. Dit wordt door de validatielijst niet tegengehouden. En dan werkt de boodschap via de macro niet meer

Al zoekende naar de oplossing hoe "een grote B" tegen te houden kwam ik een stukje macrotekst tegen die iedere "grote letter" automatisch in "een kleine letter" omzet. "Grote B" werd dus (getest) keurig een "kleine b"

Maar nu nog het combineren van de 2 stukjes: Typ ik een "grote B" dan zet het eerste stukje dit om in "een kleine B" En het idee is dat een "kleine B" vervolgens door het tweede stukje wordt herkend en de boodschap op het scherm projecteert

Of denk ik veel te ingewikkeld?

Beide "stukjes" staan in het bestand in de vba omgeving

Graag jullie hulp en alvast weer hartstikke bedankt
 

Bijlagen

Die Worksheet_Change routine mag maar 1x voor komen. Maak er eens dit van:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:A5")) Is Nothing Or Selection.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If LCase(Target.Value) = "b" Then
        Target.Value = LCase(Target.Value)
        MsgBox "Let op: is een b", vbOKOnly
    End If
    Application.EnableEvents = True
End Sub
 
Laatst bewerkt:
Da's niet zo heel moeilijk om te combineren:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("a1:a5")) Is Nothing Or Selection.Count > 1 Then Exit Sub
    If Target.Column = 1 Then
        If StrConv(Target.Value, vbLowerCase) = "b" Then MsgBox "Let op: is een b", vbOKOnly
    End If
End Sub
 
Even voor de goede orde... Een b = een B...
Wat is daar zo erg aan? Of gebruik je verderop nog wel het onderscheid tussen hoofdletters en kleine letters???
 
Allemaal weer hartstikke bedankt voor het meedenken !!Fijn dat op dit forum zo snel hulp beschikbaar is !!

Edmoor, jouw oplossing is het geworden, doet precies waar ik naar op zoek was
OctaFish, De "grote B" blijft staan maar ik vind ook jouw oplossing interessant.

In ieder geval van jullie beiden weer wat over vba geleerd, Top !!
 
Verwijder al die overbodige code.
Validatie is maar 1 keer nodig.
Gebruik de juiste validatie:

Source= a;b

Maar zoals Ginger aangaf: voor de uitvoering van een macro maakt het niet uit.

Kun je die vervolgmacro hier plaatsen ?
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan