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

Als dan functie

  • Onderwerp starter Onderwerp starter rcmb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

rcmb

Gebruiker
Lid geworden
23 dec 2016
Berichten
141
Ik heb een spreadsheet met een aantal lijsten waarvan ik graag zou willen dat( omdat uitzonderingen maar slechts weinig voorkomen) er een standaardwaarde komt te staan zodra ik een waarde transactie selecteer. Anders blijft de regel leeg.Bekijk bijlage test trans.xlsm

Als ik veld a30 kies voor transactie dat hij dan in veld c30 automatisch invult NEWT en in L30 NL. Dus als A30 is transactie dan C30 NEWT en C30 NL
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("A29:A36,H29:H36,J29:K36")) Is Nothing Or Target.Count > 1 Then Exit Sub
  Application.EnableEvents = False
  Select Case Target.Column
    Case 1
      If Target = "Transactie" Then
        Target.Offset(, 2) = "NEWT"
        Target.Offset(, 11) = "NL"
      End If
    Case Else
      If Target <> "" Then Target = Cells(Range("F17:F23").Find(Target.Value).Row, 2)
   End Select
  Application.EnableEvents = True
End Sub
 
Dank je, moet ik hem gewoon in de programmacode toevoegen in de worksheet. Hij werkt niet bij mij.

Het gaat dus niet met voorwaardelijke opmaak?
 
Laatst bewerkt:
Mij lijk het dat je de bestaande code moet vervangen door de nieuwe.
 
Als je de validatie hebt weggehaald, moet je 'transactie' wel zo schrijven als in de code.
Code:
If Target = "Transactie"

anders gebruik je..
Code:
If lcase(Target) = "transactie"
 
Laatst bewerkt:
Beste Harry, dat is een goede, hij moet namelijk in hoofdletters. Ik heb het aangepast

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("A29:A36,H29:H36,J29:K36")) Is Nothing Or Target.Count > 1 Then Exit Sub
  Application.EnableEvents = False
  Select Case Target.Column
    Case 1
      If Target = "TRANSACTIE" Then
        Target.Offset(, 2) = "NEWT"
        Target.Offset(, 11) = "NL"
      End If
    Case Else
      If Target <> "" Then Target = Cells(Range("F17:F23").Find(Target.Value).Row, 2)
   End Select
  Application.EnableEvents = True
End Sub
Maar als ik in a30 transactie selecteer gebeurt er niets
 
Laatst bewerkt:
In je laatst geplaatste bestand is je validatie weg in A30.
Klopt dat?,...zo niet staat het daar ook in hoofdletters geschreven?
 
De validatie mis ik daar, maar maakt niet uit(excel versie verschil ws.).
Als je C30 op "CANC" zet, en je vult in A30 "TRANSACTIE" in werkt het toch prima?
C30 wordt hier "NEWT".

Of staat 'enableevents' op false?
Code:
sub t()
application.enableevents = true
end sub
 
ik neem aan dat je een de laatste versie test trans 2 bedoeld. daar is volgens mij validatie aan. Heb a30 voor TRANSACTIE gekozen maar met de andere velden gebeurt niets.
 
Laatst bewerkt:
Code:
 Target.Offset(, [COLOR=#ff0000]8[/COLOR]) = "NL"
 
Nee, dit zijn simpele codes die in elk versie werken.

Als je A30 veranderd in "TRANSACTIE" veranderd er niets?

Draai onderstaande code eens en probeer het opnieuw.
Code:
sub t()
application.enableevents = true
end sub

Nb.
L = kolom 12
Offset(,11) vanaf kolom A = kolom L
 
Laatst bewerkt:
nee er gebeurt niets, als ik transactie selecteer
 
Laatst bewerkt:
Nee, niet aan de code prutsen, gewoon de onderste laten draaien, en opnieuw testen.
 
ik ben niet zo'n expert maar als ik op programmacode weergeven klik. en vervolgens op het driehoekje sub-gebruikerformulier uitvoeren gaat er een macro t open. als ik dan op uitvoeren klik, sluit het macro formulier. Als ik vervolgens naat de sheet ga en a30 wil veranderen krijg ik een foutmelding 1004 tijdens runtime methode range van object_worksheet is mislukt. als ik vervolgens klik op de fout opsporen klik wordt de vetgedrukte regel geel.
 
Code:
[COLOR=#333333]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR]
[B][B]If Intersect(Target, Range("A29:A36,H29:H36,J29:K36")) Is Nothing Or Target.Count > 1 Then Exit Su[/B]b
Application.EnableEvents =[COLOR=#ff0000] False[/COLOR][/B]
 
ik zal er morgen op de zaak nog wel even aan gaan werken, krijg nu allemaal foutmeldingen dus ben bang dat er iets in het geheugen zit. Ik begrijp dat het bij u wel werkt?
Hoewel ik niet van opgeven hou
 
Ik weet niet of er meer wensen zijn in de code, maar de code werkt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan