Voor mijn werk ben ik bezig met een script om een EAN code te controleren en als deze aan een bepaalde voorwaarde voldoet te wijzigen. Ik loop hier op vast.
Ik heb verschillende scripts geprobeerd zoals select case en if then etc.
In het onderstaande script is de code die ik nu gebruik en deze voldoet wel alleen op één of andere manier blijven waardes voorkomen.
Als ik bijvoorbeeld if len(range("b" &i)) = 6 then rows(i).delete en ik run de code. Dan blijven er waardes tussen staand die nog steeds 6 teken hebben???
De code die ik nu gebruik en dus niet helemaal werkt is:
Ik heb verschillende scripts geprobeerd zoals select case en if then etc.
In het onderstaande script is de code die ik nu gebruik en deze voldoet wel alleen op één of andere manier blijven waardes voorkomen.
Als ik bijvoorbeeld if len(range("b" &i)) = 6 then rows(i).delete en ik run de code. Dan blijven er waardes tussen staand die nog steeds 6 teken hebben???
De code die ik nu gebruik en dus niet helemaal werkt is:
Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Application.ScreenUpdating = False
For i = 2 To Range("b2", Range("b2").End(xlDown)).Count + 1
If Len(Range("b" & i)) = 13 Then
Range("b" & i) = "*0" & Range("b" & i)
End If
If Len(Range("b" & i)) = 12 Then
Range("b" & i).Value = "*00" & Range("b" & i)
End If
If Len(Range("b" & i)) = 11 Then
Range("b" & i) = "*000" & Range("b" & i)
End If
If Len(Range("b" & i)) = 10 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 9 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 8 And Left(Range("b" & i), 1) <> 2 Then
Range("b" & i) = "*000000" & Range("b" & i)
End If
If Len(Range("b" & i)) = 8 And Left(Range("b" & i), 1) = 2 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 7 And Left(Range("b" & i), 1) = 2 Then
Rows(i).Delete
End If
Select Case Len(Range("b" & i)) = 7
Case (Left(Range("b" & i), 2) <> 21 Or 23)
Rows(i).Delete
Case (Left(Range("b" & i), 2) = 21 Or 23)
Range("b" & i).Value = "*0" & Left(Range("b" & i), 6) & (Left(Range("b" & i), 1) * 3) _
+ (Right(Left(Range("b" & i), 2), 1) * 1) _
+ (Right(Left(Range("b" & i), 3), 1) * 3) _
+ (Right(Left(Range("b" & i), 4), 1) * 1) _
+ (Right(Left(Range("b" & i), 5), 1) * 3) _
+ (Right(Left(Range("b" & i), 6), 1) * 1) _
+ (Right(Range("b" & i), 1) * 3) _
- (Left(Range("b" & i), 1) * 3) _
+ (Right(Left(Range("b" & i), 2), 1) * 1) _
+ (Right(Left(Range("b" & i), 3), 1) * 3) _
+ (Right(Left(Range("b" & i), 4), 1) * 1) _
+ (Right(Left(Range("b" & i), 5), 1) * 3) _
+ (Right(Left(Range("b" & i), 6), 1) * 1) _
+ (Right(Range("b" & i), 1) * 3) & "000000"
End Select
If Len(Range("b" & i)) = 14 Then
Range("b" & i).Value = "*" & Range("b" & i).Value
End If
If Len(Range("b" & i)) = 6 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 5 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 4 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 3 Then
Rows(i).Delete
End If
If Len(Range("b" & i)) = 2 Then
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub