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

keuzelijst en beperkte invoer

Status
Niet open voor verdere reacties.

rostie-rostelli

Gebruiker
Lid geworden
13 okt 2005
Berichten
229
Hallo,

Ik moet in een excel bestand in een reeks van cellen (A1 tot A500) het volgende kunnen doen:
1: een keuzelijst voorzien met vooraf bepaalde gegevens die mogen ingevoerd worden, bij het proberen invoeren van andere gegevens moet er een foutmelding weergegeven worden => dus het mag totaal niet mogelijk zijn andere gegevens in te voeren dan deze uit de keuzelijst.
2: Als een bepaalde waarde uit de keuzelijst al eens gekozen is (vb de waarde van cel A1 en deze word ook gekozen in cel A250) moet er een waarschuwing komen voor deze (dubbele) invoer, maar het moet wel mogelijk zijn deze invoer toe te laten.

Via "data validatie" is het mogelijk om de 2 optie's appart te verwezenlijken, maar spijtig niet allebij !! is er een andere oplossing aub? :rolleyes:

Alvast bedankt, :thumb:
Danny
 
Sorry,

Ik kan van hier op het werk geen bestanden opladen !! :( dit probeer ik deze avond thuis dan te verzenden !!

Alvast bedankt,
Danny
 
Vraag 1: datavalidatie
Vraag 2: onderstaande code

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If WorksheetFunction.CountIf(Range("A1:A250"), Target.Value) > 1 Then
    MsgBox "Deze waarde heb je al eerder gebruikt!", vbExclamation, "Waarde al gebruikt"
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio,

Dit script werkt perfect !! mijn dank hiervoor !! maar nog een klein vraagje, zou het ook mogelijk zijn om in het berichtje die verschijnt ook een knop "cancel" te plaatsen om de ingevoerde waarde niet te aanvaarden?
Dus "OK" = invoer aanvaarden en "Cancel" = invoer niet aanvaarden.

PS: de knop "cancel" mag ook een andere naam hebben hoor.

Nogmaals mijn dank,
Danny
 
Zo iets?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If WorksheetFunction.CountIf(Range("A1:A250"), Target.Value) > 1 Then
    OPM = MsgBox("Deze waarde heb je al eerder gebruikt!" & vbNewLine & "Wil je deze nieuwe waarde behouden?", vbExclamation + vbYesNo, "Waarde al gebruikt")
    If OPM = vbNo Then Target.Value = ""
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio,

Dit script werkt perfect zoals ik het zou willen, :thumb: nog 1 klein vraagje, :rolleyes: is dit ook mogelijk met niet aan elkaar sluitende groepen van cellen? vb A1 tot A250 en ook D1 tot D150 en G10 tot I50 enz...

Dit zou handig zijn om weten om in de toekomst bij andere bestanden te gebruiken die ik nog wil maken.

Nogmaals mijn beste dank voor de snelle hulp en misschien tot nog eens...! :D

Danny
 
Met onderstaande formule wordt er gekeken in de gehele kolom, ongeacht welke kolom.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If WorksheetFunction.CountIf(Range(Cells(1, Target.Column), Cells(Rows.Count, Target.Column)), Target.Value) > 1 Then
    OPM = MsgBox("Deze waarde heb je al eerder gebruikt!" & vbNewLine & "Wil je deze nieuwe waarde behouden?", vbExclamation + vbYesNo, "Waarde al gebruikt")
    If OPM = vbNo Then Target.Value = ""
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan