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
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!
gr joey
Bekijk bijlage voorbeeld.xls
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
Code:
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!
gr joey
Bekijk bijlage voorbeeld.xls
Laatst bewerkt: