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

Hulp gevraagd bij aanpassen VBA code

Status
Niet open voor verdere reacties.

joeyverveer

Gebruiker
Lid geworden
18 jan 2011
Berichten
20
Ik heb problemen met het aanpassen van volgende Vba code.
Heb het geprobeerd met een If else statement, maar helaas is me kennis te weinig en te ver weggezakt.

Ik heb voor de winkel een weekoverzichtje gemaakt waar we administratieve dingen bijhouden van die week.
Zo ook de krasloten die in de verkoop gaan (activatie).
Deze kunnen worden gescant in tabblad "Krasloten" waarna hij de waardes uit tabblad "Data" haalt.
Dit ging goed tot spelnr "100" kwam, bij spelnr "100" bestond de scancode uit meer dan 12 cijfers en diende de eerste 3cijfers (digits) als sleutel (spelnr).
Bij minder als 12 cijferreeks als scancode diende de eerst 2cijfers als sleutel (spelnr).
Nu is er een nieuw pakket met scancode beginnende met 01 waarbij het spelnr "1" dient te zijn.
Deze scancode bestaat uit een cijferreeks van 11cijfers waarbij enkel het EERSTE cijfer als sleutel (spelnr) fungeert.

bestaande VBA

Private Sub Worksheet_Change(ByVal Target As Range)
Dim spelnr As Integer, i As Integer
If Target.Count > 1 Then Exit Sub
If Target.Row > 4 And Target.Column = 1 Then
On Error GoTo fout:
spelnr = IIf(Len(Target) > 12, Left(Target, 3), Left(Target, 2))
i = Application.WorksheetFunction.Match(spelnr, Sheets("Data").Range("A2:A" & Sheets("Data").Cells(Rows.Count, "A").End(xlUp).Row), 0)
Target.Offset(0, 1).Value = spelnr
Target.Offset(0, 2).Value = IIf(Len(Target) > 12, Mid(Target, 4, 6), Mid(Target, 3, 6))
Target.Offset(0, 3).Value = Sheets("Data").Cells(1 + i, 2).Value
Target.Offset(0, 4).Value = Sheets("Data").Cells(1 + i, 3).Value
Target.Offset(0, 5).Value = Date
Exit Sub
fout:
MsgBox "Er is een spelnummer gescand wat nog niet in de lijst staat"
End If
End Sub

enkele voorbeelden van scancodes
011098420509 <------- spelnr 1, 11cijfers totaal <!>
011098430010 <------- spelnr 1, 11cijfers totaal <!>
01111168640250 <------- spelnr 111, 13cijfers totaal <werkt>
01171072571203 <------- spelnr 117, 13cijfers totaal <werkt>
01091234380251 <------- spelnr 109, 13cijfers totaal <werkt>
961485450503 <------- spelnr 96, 12cijfers totaal <werkt>


Kortom uitzonderings regel voor een reeks van kleiner dan 12 cijferreeks, sleutel is 1e getal


Alvast mijn hartelijke dank!

enkele voorbeelden van scancodes
011098420509 <------- spelnr 1, 11cijfers totaal <!>
011098430010 <------- spelnr 1, 11cijfers totaal <!>
01111168640250 <------- spelnr 111, 13cijfers totaal <werkt>
01171072571203 <------- spelnr 117, 13cijfers totaal <werkt>
01091234380251 <------- spelnr 109, 13cijfers totaal <werkt>
961485450503 <------- spelnr 96, 12cijfers totaal <werkt>

scancode spelnr pakketnr
011098420509--------> 11098420509 1 109842
011098430010--------> 11098430010 1 109843
01111168640250-----> 1111168640250 111 116864
01171072571203-----> 1171072571203 117 107257
01091234380251-----> 1091234380251 109 123438
961485450503--------> 961485450503 96 148545


ter verduidelijking

gr joey

Bekijk bijlage 195021
 

Bijlagen

Gewoon bij je eerste vraag blijven, dubbel plaatsen is onzinnig en overbodig. http://www.helpmij.nl/forum/showthread.php/792111-Hulp-nodig-bij-aanpassen-VBA-code
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan