Voor een opdracht moet ik een groot aantal gegevens sorteren. Het gaat om een herontwerp van een fabriek. Relevante gegevens staan in een database, hieruit heb ik een tabel gekopieerd naar Excel. Reden hiervoor is dat ik wel eens eerder met Macro's en Excel gewerkt heb, maar nog nooit met Access.
Uit een tabel met alle productiegegevens heb ik alle producten gehaald, met daarachter het totale volume van dat artikelnummer en de routing langs de machines.
Hierna wil ik alle producten met een volume van bijvoorbeeld 50 of groter naar sheet2 kopieren (met de routing en alle andere gegevens erbij, zeg maar de hele rij). Hier komt het probleem, Excel geeft een "Overloop" error. Op OK klikken en verder gebeurt er niets.
Hier is de code van de macro:
Sub Selectie_relevante_producten()
'kopieren producten boven volumedrempel
Dim C As Integer
Dim P As Integer
Dim kolom As Integer
C = 2
P = 2
While P < 1863
If Worksheets("sheet1").Cells(P, 7).Value > 50 Then
kolom = 2
While kolom < 10
Worksheets("sheet2").Cells(C, kolom).Value = Worksheets("sheet1").Cells(P, (kolom + 4)).Value
kolom = kolom + 1
Wend
P = P + 1
End If
C = C + 1
Wend
End Sub
Probleem is dus de overloop error, deze komt uit het if statement. Deze heb ik namelijk verwijderd (met het commentaar teken ervoor) en dan kopieert Excel alle gegevens naar blad 2, dus zoals bedacht. Het automatisch niet kopieren van een record met een te laag volume is zo niet mogelijk.
handmatig selecteren op volume en dan alles onder de 50 verwijderen kan ook, maar ik denk dat ik ergens een dom foutje maak waardoor dit niet werkt.
Wie heeft een idee waar dit fout gaat?
Uit een tabel met alle productiegegevens heb ik alle producten gehaald, met daarachter het totale volume van dat artikelnummer en de routing langs de machines.
Hierna wil ik alle producten met een volume van bijvoorbeeld 50 of groter naar sheet2 kopieren (met de routing en alle andere gegevens erbij, zeg maar de hele rij). Hier komt het probleem, Excel geeft een "Overloop" error. Op OK klikken en verder gebeurt er niets.
Hier is de code van de macro:
Sub Selectie_relevante_producten()
'kopieren producten boven volumedrempel
Dim C As Integer
Dim P As Integer
Dim kolom As Integer
C = 2
P = 2
While P < 1863
If Worksheets("sheet1").Cells(P, 7).Value > 50 Then
kolom = 2
While kolom < 10
Worksheets("sheet2").Cells(C, kolom).Value = Worksheets("sheet1").Cells(P, (kolom + 4)).Value
kolom = kolom + 1
Wend
P = P + 1
End If
C = C + 1
Wend
End Sub
Probleem is dus de overloop error, deze komt uit het if statement. Deze heb ik namelijk verwijderd (met het commentaar teken ervoor) en dan kopieert Excel alle gegevens naar blad 2, dus zoals bedacht. Het automatisch niet kopieren van een record met een te laag volume is zo niet mogelijk.
handmatig selecteren op volume en dan alles onder de 50 verwijderen kan ook, maar ik denk dat ik ergens een dom foutje maak waardoor dit niet werkt.
Wie heeft een idee waar dit fout gaat?