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

Excel loopt vast bij macro

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.076
Besturingssysteem
Wndows 11
Office versie
2016
Hallo

Gisteren heb ik een macro gekregen die perfect werkt, nu heb ik daar een uitbreiding in gemaakt maar nu loopt Excel vast en sluit af.
Het groene deel loopt zonder het rode deel goed.
Ik weet dat het in het rode deel zit maar ik heb dit deel vaker gebruikt en dan loopt het wel goed.

Code:
Private Sub row2()
[COLOR="#FF0000"]    If Range("E2") = Chr(254) Then
    Range("F2") = Range("D2")
    Range("D2").ClearContents
    Else
    Range("D2") = Range("F2")
    Range("F2").ClearContents
    End If[/COLOR]

[COLOR="#00FF00"]    If Range("E2") = Chr(254) And Range("G2") = Chr(254) Then
       CommandButton1.BackColor = vbGreen
    Else
       CommandButton1.BackColor = vbRed
    End If[/COLOR]
    End Sub

Waardoor loopt het nu vast?????
 

Bijlagen

  • 2022-02-27_09h11_50.jpg
    2022-02-27_09h11_50.jpg
    20,7 KB · Weergaven: 20
Die code is niets verkeerd aan.
Zit er op 1 van de cellen D2, E2 en/of F2 soms nog een macro via de _Change gebeurtenis wordt gestart?
 
Goedemorgen Ed

Ja dat klopt er is een _Change
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
row2
row3
End Sub
 
Wijzig dat dan eens in dit:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    row2
    row3
    Application.EnableEvents = True
End Sub
 
Excel loopt nu niet vast, het rode deel loopt 1 keer
Code:
    If Range("E2") = Chr(254) Then
    Range("F2") = Range("D2")
    Range("D2").ClearContents
    Else
    Range("D2") = Range("F2")
    Range("F2").ClearContents
    End If
Daarna kan ik in de cellen niets meer invullen, het 2 deel groen blijft werken
 
Dan moet je in dee _Change controleren of het geactiveerd is door 1 van de cellen in de range D2:F3.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2:F3")) Is Nothing Then
        Application.EnableEvents = False
        row2
        row3
        Application.EnableEvents = True
    End If
End Sub
 
Ja nu werkt het perfect :thumb::thumb::thumb:

Super
Dank je wel Ed
 
Zo zie je ook dat het tonen van alleen een stukje code vaak niet voldoende is om de oorzaak van een probleem te achterhalen.
De code die je plaatste raakte door die _Change in een loop en dan loopt Excel vast.
Met die Application.EnableEvents = False voorkom je dat.
 
Maar aan de code zelf is ook nog wel iets te sleutelen:

1 regel is voloende ipv 7 rode regels

Code:
cells(2,6+2*(cells(2,5)=chr(254))).cut cells(2,6+2*(cells(2,5)<>chr(254)))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan