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

Koppelen artikelen aan een regel, en code sneller laten lopen

Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.183
Code:
Sub VeldenVeranderen()


For I = 4 To Range("A65000").End(xlUp).Row

'Pro-00025 Poiesz Supermarkt B.V.
   If Cells(I, 4) & " " & Cells(I, 6) = "Pro-00025 Klant1" Then
    Cells(I, 1) = "=IF(RC[1]="""","""",WEEKNUM(RC[1],21))" ' weeknummer plaatsen
    Cells(I, 40) = Cells(I, 8) * 12 * 0.3 'kolom AN - 3310001
    Cells(I, 52) = Cells(I, 8) * 12 * 0.03 ' kolom - AZ 3350000
    Cells(I, 121) = Cells(I, 8) * 1 ' kolom DQ - 5400001
    Cells(I, 134) = Cells(I, 8) * 1 ' kolom ED - 9060203
    Cells(I, 178) = Cells(I, 8) * 12 ' kolom FV - Poie5302
    End If

   If Cells(I, 4) & " " & Cells(I, 6) = "Pro-00025 Klant2" Then
    Cells(I, 1) = "=IF(RC[1]="""","""",WEEKNUM(RC[1],21))" ' weeknummer plaatsen
    Cells(I, 40) = Cells(I, 8) * 12 * 0.3 'kolom AN - 3310001
    Cells(I, 52) = Cells(I, 8) * 12 * 0.03 ' kolom - AZ 3350000
    Cells(I, 118) = Cells(I, 8) * 12 ' kolom DN - 5300006
    Cells(I, 121) = Cells(I, 8) * 1 ' kolom DQ - 5400001
    Cells(I, 134) = Cells(I, 8) * 1 ' kolom ED - 9060203
    End If


   If Cells(I, 4) & " " & Cells(I, 6) = "Pro-00032 Klant3" Then
    Cells(I, 1) = "=IF(RC[1]="""","""",WEEKNUM(RC[1],21))" ' weeknummer plaatsen
    Cells(I, 40) = Cells(I, 8) * 9 * 0.5 'kolom AN - 3310001
    Cells(I, 52) = Cells(I, 8) * 9 * 0.03 ' kolom - AZ 3350000
    Cells(I, 118) = Cells(I, 8) * 9 ' kolom DN - 5300006
    Cells(I, 121) = Cells(I, 8) * 1 ' kolom DQ - 5400001
    Cells(I, 135) = Cells(I, 8) * 1 ' kolom ED - 9060204
    End If

   If Cells(I, 4) & " " & Cells(I, 6) = "Pro-00055 Klant4" Then
    Cells(I, 1) = "=IF(RC[1]="""","""",WEEKNUM(RC[1],21))" ' weeknummer plaatsen
    Cells(I, 40) = Cells(I, 8) * 9 * 0.5 'kolom AN - 3310001
    Cells(I, 52) = Cells(I, 8) * 9 * 0.03 ' kolom - AZ 3350000
    Cells(I, 121) = Cells(I, 8) * 1 ' kolom DQ - 5400001
    Cells(I, 135) = Cells(I, 8) * 1 ' kolom ED - 9060204
    Cells(I, 153) = Cells(I, 8) * 9 ' kolom EW - Coop5305
    End If
    
Next I
End Sub

Beste,

Ik gebruik bovenstaande code om per productie artikel (kolom D) gekoppeld aan een klant (Kolom F) de artikelen toe te voegen die nodig zijn voor die productie en zo dan een weekplanning te maken met materialen die er voor nodig zijn.
De variable (kolom H) is de aantal die elke keer anders is.
In het voorbeeld zie je de uitkomst die de code als resultaat geeft per artikel omdat per productie het aantal dat erin gaat verschillend is. in mijn voorbeeld 12 en 9 stuks wat alleen te vinden is in de code
Zo ver zo goed.

Enkel in mijn orgineel bestand gaan we nu al komen op 700 regels en worden er per week meer, die hij moet doorlopen met ruim 300 varieties
Hoe kan ik de code vereenvoudige zodat deze niet zo traag wordt!

Groet Henk
 

Bijlagen

  • Helpmij - Koppelen meerdere artikelen VBA.xlsm
    19,5 KB · Weergaven: 13
Laatst bewerkt:
op het eerste zicht is uw code traag omdat je iedere keer gans uw blad laat herberekenen.
 
Dank voor je snelle reactie.
Hoe zou ik dan kunnen bepalen welke range hij moet pakken, om niet het gehele document te herberekenen.
Als er een andere opzet voor nodig is sta ik hier natuurlijk voor open.

Henk
 
code iets aangepast

Beste,

Ik heb de code aangepast naar minder regels, en hij is idd nu een stuk sneller
Code:
For I = 4 To Range("A65000").End(xlUp).Row
aangepast naar
Code:
For I = 4 To Range("A10000").End(xlUp).Row

Nu heb ik 25 varieties die hij moet berekenen, ik moet dit uitbreiden naar 300 verschillende varieties.
Is er dan iets anders dat ik dan moet gebruiken, om de code net zo snel te laten lopen.
Alvast dank voor de aangeboden alternatieven.

ps.

Is het mogelijk om met bv lastrow te werken, zodat hij enkel de gevulde cellen neem in kolom A
Henk
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan