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

Dubbele data niet toestaan in 1 kolom

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

Spex

Gebruiker
Lid geworden
23 jan 2007
Berichten
7
Op het kantoor moeten we de dubbele waarden in 1 kolom zien te markeren zonder extra kolommen toe te voegen. Kan iemand me uitleggen hoe ik dit voor elkaar krijg?

bijv.:

Kolom A
10
2
5
7

Wanneer er nu een weer 2 toegevoegd wordt, is het de bedoeling dat Excel duidelijk aangeeft dat deze waarde al eerder in de kolom is opgenomen (het liefst mbv een "message box").

Alvast bedankt!
Marcel Spek
 
Dank!


Grote dank voor het snelle antwoord. We zijn er meteen mee aan de slag gegaan. Het blijkt nu echter dat waarden die in de cellen geplakt worden, niet worden weergegeven alszijnde dubbel in de kolom.

Kun je me hier ook nog mee helpen?

Thanks!
Marcel
 
Hoi,

Validatie werkt alleen voor handmatige invoer.
Als je veel waarden kopieert en dan dubbele waarden wilt tegenhouden, dan zul je met VBA moeten werken. Kost Wigi wat meer tijd.:-)

Richard
 
Grote dank voor het snelle antwoord. We zijn er meteen mee aan de slag gegaan. Het blijkt nu echter dat waarden die in de cellen geplakt worden, niet worden weergegeven alszijnde dubbel in de kolom.

Kun je me hier ook nog mee helpen?

Thanks!
Marcel

Inderdaad Richard

dat kun je niet tegenhouden...

Je zal met VBA een Worksheet_Change Event moeten schrijven.
 
Excel-leek vergeleken met Richard en jou

Wederom bedankt voor jullie antwoord! Ik heb het bericht aan iedereen van de afdeling laten lezen maar niemand kan mij vertellen hoe met VBA een "Worksheet_Change Event" te schrijven. Kun je ons een voorbeeld doen toekomen zodat wij dit aan kunnen passen voor ons sheet? Bij ons betreft het de dubbele waarden in kolom G.

Groeten,
Marcel Spex
 
Zie hier dan, heb het ondertussen voor iedereen van de afdeling geschreven:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 7 And Not IsEmpty(Target) Then
        If WorksheetFunction.CountIf(Columns(7), Target) > 1 Then
            MsgBox "Dit komt al eens voor."
            Application.DisplayAlerts = False
            Target.ClearContents
            Application.DisplayAlerts = False
            Target.Select
        End If
    End If
End Sub

Dit is de VBA code die je nodig hebt.

Wigi
 
Dank!

Held! Weet niet hoe je het doet maar we kunnen hier iig weer een stap verder!

Eén dingetje nog: :confused:

Wanneer we hele lijnen knippen/plakken vanuit een ander sheet, werkt het niet. We willen het liefst dat lijnen met data X in Kolom G getoetst worden op een eventuele dubbele waarde in diezelfde kolom G wanneer we hele lijnen plakken.

Hopelijk de laatste keer dat ik je hiermee lastig moet vallen...

Groeten,
Marcel
 
Dat wordt heel lastig Marcel. Straks doe ik zeker nog een poging, maar ik denk het eigenlijk niet. Als het lukt bij mij (of iemand anders) hebben we nog wel iets tegoed van jou... :D
 
Hahahaa

Ik zal m'n collega (die ik probeer te helpen maar te ******erig is om hulp te vragen...) 's vragend aankijken wat 'ie ervoor over heeft!! Met z'n hoevelen zit je daar dan?? :)

Groeten,
Marcel
 
Met z'n hoevelen zit je daar dan?? :)

Allemaal eenzaten... :shocked: De volledige winst is voor 1 persoon ;)

Wat ik tot nu toe al geprobeerd heb is op niets uitgedraaid. Maar van opgeven hebben we nog niet gehoord.
 
Spex

ik heb goed en slecht nieuws voor jou... Laten we met het goede nieuws beginnen: ik heb de code klaar gespeeld. En nog performant ook. Ik heb het getest. De code kan ook de situatie aan dat je meerdere rijen plakt naar blad 1. Als er dubbelen staan in kolom G, gaat Excel die hele rij afketsen. Als het geen dubbele is, blijf ie gewoon staan.

Hier is 'ie dan:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngChangedRange As Range
    
    Dim rng1EnkeleCel As Range
    
    Set rngChangedRange = Intersect(Target, Columns(7))
    
    If Not rngChangedRange Is Nothing Then
        
        For Each rng1EnkeleCel In rngChangedRange
            
            If Not IsEmpty(rng1EnkeleCel) Then
                
                If rng1EnkeleCel.Column = 7 Then
                    
                    If WorksheetFunction.CountIf(Columns(7), rng1EnkeleCel) > 1 Then
                        
                        MsgBox "Deze waarde al eens voor in kolom G."
                        
                        Application.EnableEvents = False
                        
                        rng1EnkeleCel.EntireRow.ClearContents
                        
                        Application.EnableEvents = True
                        
                        rng1EnkeleCel.Select
                    
                    End If
                
                End If
                
            End If
            
        Next rng1EnkeleCel
        
    End If
    
End Sub

Slecht nieuws... Ja ga maar eens met de pet rond :D Praktische gegevens staan in de Excel sectie op mijn site. (Die trouwens binnenkort een veel mooiere layout krijgt en meer Excel materiaal, maar dat terzijde).

Wigi
 
Laatst bewerkt:
Wigi for President!

Wat een ongelooflijke held ben je!!
Zal m'n collega('s) 's lief aankijken... :thumb:

Groeten,
Marcel
 
@ Niels1973, heb je een vraag open dan a.u.b. een eigen topic. Het is niet netjes en overzichtelijk om in andermans topic een vraag stellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan