Killerclown
Gebruiker
- Lid geworden
- 30 dec 2007
- Berichten
- 181
Goedeavond,
Ik heb in excel een formulier gemaakt met textboxes waar ik barcodes kan inscannen. (zie afbeelding)
Als deze gescand zijn en ik de startknop heb ingedrukt, gaat onderstaande code gaan zoeken of de barcodes ook voorkomen in de excel.
Zodra deze gevonden zijn, kleurt de cel lichtgroen.
Maar ik stoot nu op het volgende probleem waar ik even de oplossing niet voor zie.
Het kan voorvallen dat een barcode 2 of meerdere keren wordt gescand en ook 2 of meerdere keren voorkomt in excel.
De eerste keer dat de code de barcode tegenkomt, kleur de cel lichtgroen.
De volgende keer dat ik dezelfde barcode tegenkomt, zou de cel die lichtgroen is moeten overgeslagen worden en de volgende gezocht worden in excel om dan vervolgens ook te kleuren.
Maar daar loop ik vast.
Kan iemand me op weghelpen?

Ik heb in excel een formulier gemaakt met textboxes waar ik barcodes kan inscannen. (zie afbeelding)
Als deze gescand zijn en ik de startknop heb ingedrukt, gaat onderstaande code gaan zoeken of de barcodes ook voorkomen in de excel.
Zodra deze gevonden zijn, kleurt de cel lichtgroen.
Maar ik stoot nu op het volgende probleem waar ik even de oplossing niet voor zie.
Het kan voorvallen dat een barcode 2 of meerdere keren wordt gescand en ook 2 of meerdere keren voorkomt in excel.
De eerste keer dat de code de barcode tegenkomt, kleur de cel lichtgroen.
De volgende keer dat ik dezelfde barcode tegenkomt, zou de cel die lichtgroen is moeten overgeslagen worden en de volgende gezocht worden in excel om dan vervolgens ook te kleuren.
Maar daar loop ik vast.
Kan iemand me op weghelpen?
Code:
Dim Found As Range
Dim str As String
Dim i As Integer
Dim strB As String
Dim strE As String
For i = 1 To 20
strB = Mid(Controls("TxtBarcode" & i).Value, 2, 13) & "00"
strE = Right(Controls("TxtBarcode" & i).Value, 8)
'STRING B
Set Found = ActiveSheet.Range("C2", Range("C" & Rows.Count).End(xlUp)).Find(strB)
If Found Is Nothing Then
Set Found = ActiveSheet.Range("D2", Range("D" & Rows.Count).End(xlUp)).Find(strB)
If Found Is Nothing Then
Controls("Lbl" & i).Caption = "NOK"
Controls("TxtBarcode" & i).BackColor = RGB(240, 230, 140)
If Controls("TxtBarcode" & i).Value = "" Then Controls("Lbl" & i).Caption = ""
If Controls("TxtBarcode" & i).Value = "" Then Controls("TxtBarcode" & i).BackColor = RGB(255, 255, 255)
Else: Controls("Lbl" & i).Caption = "OK"
Found.Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
Else
Controls("Lbl" & i).Caption = "OK"
Found.Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
'STRING E
Set Found = ActiveSheet.Range("C2", Range("C" & Rows.Count).End(xlUp)).Find(strE)
If Found Is Nothing Then
Set Found = ActiveSheet.Range("D2", Range("D" & Rows.Count).End(xlUp)).Find(strE)
If Found Is Nothing Then
Controls("Lbl" & i).Caption = "NOK"
Controls("TxtBarcode" & i).BackColor = RGB(240, 230, 140)
If Controls("TxtBarcode" & i).Value = "" Then Controls("Lbl" & i).Caption = ""
If Controls("TxtBarcode" & i).Value = "" Then Controls("TxtBarcode" & i).BackColor = RGB(255, 255, 255)
Else: Controls("Lbl" & i).Caption = "OK"
Found.Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
Else
Controls("Lbl" & i).Caption = "OK"
Found.Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
Next i
