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

Opgelost Macro loopt vast (maar niet altijd)

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

serpent xx

Gebruiker
Lid geworden
2 mei 2008
Berichten
201
In een Excelbestand loopt de macro (ListRows.Add) vast indien men te snel deze achter elkaar uitvoert. Het vreemde is dat dit bestand niet gewijzigd is en jaren goed gewerkt heeft. Sinds afgelopen week niet meer. Als voorbeeld heb ik 2 testbestanden bijgevoegd. De betreffende macro zorgt ervoor dat, als men in de onderste cel in kolom A van de tabel komt, automatisch een regel wordt bijgevoegd met de instellingen van de vorige regel.
Als men in het "fout"-bestand in kolom A met een pijl te snel naar onder gaat, loopt de macro vast. Doet men dit langzaam, dan gaat het wel goed. In het "goed" bestand heb ik de formule, die meegekopieerd wordt naar de volgende regel bij het automatisch toevoegen van een regel, weggelaten. Dan gaat het wel goed.
Zou het te maken kunnen hebben met een update van Excel aangezien dit altijd goed gewerkt heeft? Weet iemand een oplossing?
 

Bijlagen

waar staat de macro
zie enkel dit meer niet
Code:
Public myBool As Boolean
 
Macro staat bij blad 1(Sheet-A) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ListObjects(1)
If Target.Address = .DataBodyRange(.ListRows.Count, 1).Address And Target.Count = 1 Then
Application.EnableEvents = False
Me.Unprotect "pass"
.ListRows.Add
.DataBodyRange(.ListRows.Count, 8).Locked = True
.DataBodyRange(.ListRows.Count, 1).Resize(, 17).Locked = False
Protect "pass", , , , , , , , , , , , , , -1
Application.EnableEvents = True
Sheets("sheet-A").Protect DrawingObjects:=False, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, Password:="pass"
End If
End With

End Sub
 
Waarom daarvoor een macro?
De tabel word automatisch uitgebreid als je onder de laatste lijn nieuwe gegevens invult.
 
Het betreft een beveiligd werkblad waarin het de bedoeling is dat er automatisch iedere keer een nieuwe rij met dezelfde formules wordt toegeveoegd bij het bereiken van de laatste rij.
 
Geen idee, er staan ook geen formules in beide bestanden, maar onderstaande coderegels helpen je niet om kolom H om te blokkeren.
Code:
.DataBodyRange(.ListRows.Count, 8).Locked = True
.DataBodyRange(.ListRows.Count, 1).Resize(, 17).Locked = False

Deze twee regels omdraaien zou beter werken.

edit, in kolom B toch een formule gevonden.
 
In het "fout"bestand loopt die vast; in het "goed" bestand loopt die niet vast, maar hier kopieert die geen formules. Wat mij niet duidelijk is waarom die bij het kopiëren van formules vastloopt bij het te snel uitvoeren van de macro. Zeer vreemd aangezien dit ook altijd gewerkt heeft.
 
Het kan de berekeningen niet aan van de formule.
Hierbij schakel je de calculatie uit en weer in.

Zo loopt het goed door hier.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ListObjects(1)
  If Target.Address = .DataBodyRange(.ListRows.Count, 1).Address And Target.Count = 1 Then
   Application.Calculation = xlCalculationManual
    Unprotect "pass"
    Application.EnableEvents = False
     .ListRows.Add
     .DataBodyRange(.ListRows.Count, 1).Resize(, 17).Locked = False
     .DataBodyRange(.ListRows.Count, 8).Locked = True
    Application.EnableEvents = True
   Protect DrawingObjects:=False, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, Password:="pass"
  Application.Calculation = xlCalculationAutomatic
 End If
End With
End Sub
 
Met de aanpassing van HSV loopt het bij mij ook goed door. Ik zie ook de formule verschijnen in B7, wel met foutieve verwijzingen maar dat heeft wellicht te maken met de foute verwijzing van de naam "artikel". Maar ik ben er nog niet achter waar die kolomformule vandaan gekopieerd wordt, maar dat kan HSV mij vast wel vertellen.
 
Wat dacht je van een tabel en intelligentie.
 
Harry, je oplossing lijkt idd te werken. Toppie en bedankt hiervoor!👍
Ik blijf het wel vreemd vinden dat het altijd gewerkt heeft en nu opeens niet meer.
 
Hoe meer formules des te zwaarder je pc het krijgt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan