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

Invoer en zoeken unieke gegevens...

Status
Niet open voor verdere reacties.

joost82

Gebruiker
Lid geworden
2 okt 2008
Berichten
8
Beste Mensen,

Ik probeer een werkblad te bouwen voor inventarisbeheer (hoeveel stoelen hebben we, waar staan ze, staan ze nog op de goede plek e.d.).

Elk object heeft een uniek nummer, d.m.v. een barcode. De barcodescanner zet het nummer automatisch in zel A1, het volgende in A2 etc.

Inmiddels heb ik Excel d.m.v. validatie zover gekregen dat ieder barcodenummer maar 1 keer in de lijst mag voorkomen. Scan je hem tochj twee keer, dan weigert die de invoer.

Nu wil ik nog het volgende. Eigenlijk wil in niet dat die de invoer van een duplicaat weigert, maar dat die autmatisch naar de cel springt waar de barcode instaat, zodat ik kan kijken of bijvoorbeeld de stoel nog op de juiste plek staat. Dit kan natuurlijk ook via handmatig zoeken, maar dat kost mij enorm veel tijd.
En als de code nog niet in het systeem staat, dan moet die automatisch doorspringen naar een lege cel, laten we zeggen cel A3 zodat ik daar de kleur, plek, merk e.d. in kan voeren van de betreffende stoel.

Heb e.e.a. al geprobeerd in Macro's, maar aar snap ik ook lang niet alles van.

Alvast hartelijk dank voor de assistentie! :thumb:

Groets,

Joost
 
Een voorbeeldje (zonder gevoelige info) plaatsen met hoe het nu al werkt zal een oplossing sneller dichterbij brengen. Anders zal het toch gokwerk worden.
 
Hier heb ik even een voorbeeldje van mijn bestand ingevoegd. Kolom A is voor de eerste pakweg 30 cellen gevalideerd op zo'n manier dat hier enkel unieke data kunnen worden ingevoerd.
Uiteindelijk wil ik dit zo hebben dat ik stel in A18 sta en een barcode met nummer 10003 scan dat deze dan geen foutmelding geeft maar automatisch doorspringt naar regel A5 schiet zodat ik kan zien wat voor opject hoort bij code 10003.

Ik hoop dat dit mogelijk is in Excel...:thumb:

Grazie,

Jozef
 
Beste joost82 ;)

Waarom gebruik je niet VERT.ZOEKEN om je gegevens op te halen.

Want in alle cellen staat er wel iets.

Groetjes Danny. :thumb:
 
Laatst bewerkt:
Volgens mij staat die er in toch? Zo neit dan zet ik hem erop.
 
Beste joost82 ;)

Ik heb in cel A2 een gegevenslijst gemaakt zodat je een code kan kiezen, waarbij hij de objecten ernaast weergeeft.

Groetjes Danny. :thumb:
 

Bijlagen

Ha Danny,

Elke keer denk ik weer handig te zijn met Excel, maar dat blijkt dan toch weer tegen te vallen:confused:

Heb geprobeerd te begrijpen wat ik kan met Vert. zoeken. Maar daar kom ik niet gans uit.

En wat jij precies veranderd hebt in mijn excelblad snap ik ook niet helemaal, of helemaal niet. Kan ik daarmee wat ik graag wil?

Groet,
\
Joost
 
Beste joost82 ;)

Als je op cel A2 klikt dan zie je een lijst die openschuift, hier kan je dan je code kiezen.
Met VERT.ZOEKEN geeft hij dan objecten ernaast weer.
Ik hoopte dat je hier iets mee kon doen. :confused:

Wat jij wil in cel A18 een code scannen en dan naar de cel gaan waar de code staat, dit zal dan met VBA moeten gebeuren.

Groetjes Danny. :thumb:
 
Joost,

Jouw valideren en de wens om naar de "dubbele" regel te springen werken elkaar een beetje tegen.
'Valideren' doe je binnen het werkblad en het geconditioneerd springen naar een bepaalde regel dat zal je met VBA moeten oplossen.

Dus 'valideren' loslaten en dat aan VBA overlaten. Daardoor kaje je ook 'springen' naar de bewuste regel.

"Tijd": ik ben aan het rusten maa zalkijken of ik iets in elkaar ka draaien.

Je hoort

Wim
 
Oké, moest even wachten op het eten dus!..
In de bijlage heb ik het valideren van kolom A verwijderd maar dat opgevangen in de macro.
In de macro kan je keizen of je naar het bestaande record gaat of dat je dat niet wilt.

Succes

Wim
 

Bijlagen

Beste WimenBeer ;)

Dit ziet er prima uit enkel als je 10015 typt dan vind hij deze niet ook al staat hij in de lijst.

Groetjes Danny. :thumb:
 
Beste WimenBeer ;)

Dit ziet er prima uit enkel als je 10015 typt dan vind hij deze niet ook al staat hij in de lijst.

Groetjes Danny. :thumb:

Bij mij wel.
Je moet de nieuwe data wel direct op de eerst volgende regel plaatsen

Wim
 
Beste Wim, zonder afbreuk te doen aan je inspanningen toch een kleine opmerking. Het is aan te raden om de rijen te tellen van onder naar boven omdat bij een lege cel ergens in je bereik in de A-kolom (om welke reden dan ook) jouw macro geen juist resultaat meer geeft. Daarom een kleine aanpassing mijnentwege die m.i. afrekent met dit probleem.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lRij As Long
    lRij = Range[COLOR="Red"]("A65536").End(xlUp).[/COLOR]Row - 1
    
    For Each c In Range("A3:A" & lRij)
        If Target.Value = c.Value [COLOR="red"]And c.Value <> ""[/COLOR] Then
            If MsgBox("Barcode al aanwezig." & Chr(10) & "Wilt u de gegevens zien?", vbOKCancel, "Gevonden Barcode") = vbOK Then
                Target.ClearContents
                c.Activate
            Else
                Target.ClearContents
                Exit Sub
            End If
        Else
            lRij = lRij + 1
        End If
    Next c
End Sub

Mvg

Rudi
 
Beste Wim, zonder afbreuk te doen aan je inspanningen toch een kleine opmerking. Het is aan te raden om de rijen te tellen van onder naar boven omdat bij een lege cel ergens in je bereik in de A-kolom (om welke reden dan ook) jouw macro geen juist resultaat meer geeft. Daarom een kleine aanpassing mijnentwege die m.i. afrekent met dit probleem.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lRij As Long
    lRij = Range[COLOR="Red"]("A65536").End(xlUp).[/COLOR]Row - 1
    
    For Each c In Range("A3:A" & lRij)
        If Target.Value = c.Value [COLOR="red"]And c.Value <> ""[/COLOR] Then
            If MsgBox("Barcode al aanwezig." & Chr(10) & "Wilt u de gegevens zien?", vbOKCancel, "Gevonden Barcode") = vbOK Then
                Target.ClearContents
                c.Activate
            Else
                Target.ClearContents
                Exit Sub
            End If
        Else
            lRij = lRij + 1
        End If
    Next c
End Sub

Mvg

Rudi

Rudi, ben ik helemaal met je eens, maar hier was het in probleemstelling niet noodzakelijk.
Maar je hebj wel gelijk.

Alleen je toevoeging
Code:
        If Target.Value = c.Value [COLOR="red"]And c.Value <> ""[/COLOR] Then
Gaat alleen maar op als er met een Target.Value = "" wordt gezocht. Want als er een waarde in staat dan is de eerste conditie voldoende.


Wim
 
Wim, de tweede toevoeging was nodig omdat mocht er een lege cel in je bereik zitten je dan in een oneindige loop terecht komt.

Mvg

Rudi
 
Heren (en dames ?),

Allemaal hartelijk dank voor jullie inspanningen tot zover. Het is een mooi werkblad geworden.

Wel merk ik het volgende: stel dat ik item 10010 scan. Dan komt het scherm "bestaat al wilt u het inzien" naar voren geplopt. Heel mooi allemaal. Dan kom ik op regel 10010 terecht. Als ik dan naar de volgende barcode loop om die in te scannen met bijvoorbeeld nummer 10016 dan werkt alles niet zo lekker meer, dan wordt barcioe 10010 automatisch overgeschreven door nummer 10016.

Kan hier nog iets aan veranderd worden?
 
Beste joost82 ;)

Wel merk ik het volgende: stel dat ik item 10010 scan. Dan komt het scherm "bestaat al wilt u het inzien" naar voren geplopt. Heel mooi allemaal. Dan kom ik op regel 10010 terecht. Als ik dan naar de volgende barcode loop om die in te scannen met bijvoorbeeld nummer 10016 dan werkt alles niet zo lekker meer, dan wordt barcioe 10010 automatisch overgeschreven door nummer 10016.

Kan hier nog iets aan veranderd worden?

Als je naar volgende barcode wil gaan, moet je eerst cel A18 activeren.
Tenzij je op de knop Annuleren klikt, dan kan je de volgende code in geven.

Groetjes DannY. :thumb:
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan