Macro / VBA en Excel lopen vast in office 2007

Status
Niet open voor verdere reacties.

Chicky87

Gebruiker
Lid geworden
29 jul 2008
Berichten
14
Hallo,

Als ik een macro run in office 2007 die ik in office 97/2003 gemaakt heb loopt VBA en excel vast. Ik krijg geen foutmeldingen, maar hij reageert gewoon niet meer. Ik kan ook niet meer op pauze of stop klikken. Als ik deze macro draai op een pc met office 2003 loopt hij wel prima!

Dit is ��n van de 2 subs die vastloopt:

Code:
'determine number of lines
r = 1
Do Until Sheets("data").Cells(r, 1) = ""
    r = r + 1
Loop

'Clear and update Demand sheet
Sheets("Demand").Range(Sheets("Demand").Cells(4, 1), Sheets("Demand").Cells(6000, 159)).ClearContents
Sheets("Demand").Range("A3:FC3").AutoFill Destination:=Sheets("Demand").Range(Sheets("Demand").Cells(3, 1), Sheets("Demand").Cells(r, 159)), Type:=xlFillDefault

'Clear and update inventory sheet
Sheets("Inventory").Range(Sheets("Inventory").Cells(4, 1), Sheets("Inventory").Cells(6000, 159)).ClearContents
Sheets("Inventory").Range("A3:I3").AutoFill Destination:=Sheets("Inventory").Range(Sheets("Inventory").Cells(3, 1), Sheets("Inventory").Cells(r, 9)), Type:=xlFillDefault
Sheets("Inventory").Range(Sheets("Inventory").Cells(3, 10), Sheets("Inventory").Cells(r, 159)).ClearContents

For k = 3 To r
For weeknr = 1 To 150

If Sheets("Batch effect").Cells(4, 5).Value = 0 Then
    Sheets("Inventory").Cells(k, weeknr + 9) = 0 'bij move rate 0, invetories zijn 0
Else
    'Als demand week i > voorraad week i-1 dan
    If Sheets("Demand").Cells(k, weeknr + 9).Value > Sheets("Inventory").Cells(k, weeknr + 8).Value Then
        For n = (weeknr - Sheets("Inventory").Cells(k, 6).Value) To weeknr
        'voorraad = voorraad reeds aanwezig + EOQ
        Sheets("Inventory").Cells(k, n + 9).Value = Sheets("Inventory").Cells(k, 9).Value + Sheets("Inventory").Cells(k, n + 9).Value
        Next n
    End If
    'voorraad week i = voorraad week i-1 - demand week i
    Sheets("Inventory").Cells(k, weeknr + 9).Value = Sheets("Inventory").Cells(k, weeknr + 8).Value - Sheets("Demand").Cells(k, weeknr + 9).Value
End If

Next weeknr
Next k
End Sub

Eerste deel werkt prima (clear contents en rijen tellen), maar het vullen van de sheet loopt vast. Als ik met breaks werk onderaan bij 'next k' en 'next weeknr' lijkt hij alles wel goed te doen. Hij loopt de weken door tot 150, en daarna neemt hij de volgende k en begint weer bij weeknr 1.

Hoe kan het in godsnaam dat hij in 2007 vastloopt, maar in 2003 wel goed loopt??!

Groet, Hilde
 
Hij loopt de weken door tot 150, en daarna neemt hij de volgende k en begint weer bij weeknr 1

Dit klopt want dat staat in de macro:
Code:
For k = 3 To r
   For weeknr = 1 To 150

dus eerst voor k=3 worden 150 weeknr gedaan, vervolgens 150 weeknr's voor k=4 enz tot r

Wat is de waarde in r als je aan deze loops begint?

Ron
 
Dat is inderdaad ook de bedoeling, en daarom snap ik niet waarom hij toch vastloopt als ik de breaks weghaal.

r is het aantal regels die hij in het eerste loopje bepaalt. In de huidige file is deze 564.
 
Inderdaad, lastig probleem. Ik heb zelf 2003 en als ik jouw macro laad dan zie ik geen rare dingen. Wellicht kan je een voorbeeld, ontdaan van alle gevoelige informatie, hier plaatsen voor de kenners met 2007/2010

Ron
 
Hoi Ron,

Ik heb een voorbeeld bestandje gemaakt, maar ik kan als bijlage maar max 100kb laden. Als ik alle bladen verwijder dan zit ik al op 50kb, dus dat krijg ik nooit voor mekaar. Kan ik op een andere manier een bestand uploaden? Of wat doe ik verkeerd?

Dankjewel voor je hulp in ieder geval!

Hilde
 
Voorbeeld bestandje met macro

Bekijk bijlage Exposure Model example for forum.zip

Zie bijlage voor een zeer ingekrimpd voorbeeldje. Uiteraard heb ik alle gevoelige info er uit gehaald. Ik heb hem opgeslagen als binary workbook (en daarna als zip) om hem kleiner te maken, dus misschien dat je m eerst moet opslaan als normaal xls? Weet niet of dat nodig is.

Hopelijk kan iemand er achterkomen wat er misgaat.

Hilde
 
Bij mij gaat hij al mis op het eerste statement dus ik denk dat mijn 2003 niet goed met de binary xlsb om kan gaan.

Iemand anders!

Ron
 
Bij mij hetzelfde; bij compileren geeft-ie ook aan dat Commandbutton1 ontbreekt, en stopt ie gelijk met compileren.
 
Het blijkt dat de macro gewoon prima werkt bij een kleine data lijst, maar bij veel data loopt hij dus vast. Dit is erg vreemd, want als ik exact dezelfde data met macro draai op een oude excel versie loopt hij prima! Hoe dit kan is mij een raadsel. Behalve uiterlijk en opmaak zie ik de voordelen van het office 2007 pakket dus niet bepaald.

Volgens mij is hier niet echt een oplossing voor, behalve een pc met oud office pakket gebruiken voor deze macro. Ik zal daarom dit topic sluiten. Dank voor de moeite!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan