Note: The other languages of the website are Google-translated. Back to English
Inloggen  \/ 
x
or
x
Registreer  \/ 
x

or

Hoe een macro uitvoeren wanneer de celwaarde verandert in Excel?

Normaal gesproken kunnen we in Excel op de F5-toets of de knop Uitvoeren drukken om de VBA-code uit te voeren. Maar heb je ooit geprobeerd de specifieke macrocode uit te voeren wanneer een celwaarde verandert? In dit artikel zal ik enkele snelle trucs introduceren om met deze taak in Excel om te gaan.

Voer een macro uit of bel deze wanneer een specifieke celwaarde verandert met VBA-code

Voer een macro uit of roep deze aan wanneer een celwaarde verandert in een bereik met VBA-code


pijl blauw rechts bel Voer een macro uit of bel deze wanneer een specifieke celwaarde verandert met VBA-code

Om een ​​macrocode uit te voeren door een celwaarde te wijzigen, kan de volgende VBA-code u een plezier doen, doe dit als volgt:

1. Klik met de rechtermuisknop op de bladtab waarop u de macro wilt uitvoeren als de celwaarde verandert, en kies vervolgens Bekijk code vanuit het contextmenu en in het geopende Microsoft Visual Basic voor applicaties venster, kopieer en plak de volgende code in de lege module:

VBA-code: voer een macro uit wanneer de celwaarde verandert:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

doc macro uitvoeren als cel verandert 1

Opmerking:: In de bovenstaande code, A1 is de specifieke cel waarop u de code wilt uitvoeren op basis van, Mijn macro is de macronaam die u wilt uitvoeren. Wijzig ze naar uw behoefte.

2. En sla vervolgens het codevenster op en sluit het, nu, wanneer u de waarde invoert of wijzigt in cel A1, wordt de specifieke code onmiddellijk geactiveerd.


pijl blauw rechts bel Voer een macro uit of roep deze aan wanneer een celwaarde verandert in een bereik met VBA-code

Als u een macro wilt uitvoeren of activeren wanneer een celwaarde in een celbereik verandert, kan de volgende code u helpen.

1. Klik met de rechtermuisknop op de bladtab waarop u de macro wilt uitvoeren als de celwaarde verandert, en kies vervolgens Bekijk code vanuit het contextmenu en in het geopende Microsoft Visual Basic voor applicaties venster, kopieer en plak de volgende code in de lege module:

VBA-code: voer een macro uit wanneer een celwaarde binnen een bereik verandert:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

doc macro uitvoeren als cel verandert 2

Opmerking:: In de bovenstaande code, A1: B100 zijn de specifieke cellen waarop u de code wilt uitvoeren op basis van, Mijn macro is de macronaam die u wilt uitvoeren. Wijzig ze naar uw behoefte.

2. En sla vervolgens het codevenster op en sluit het. Als u nu een waarde invoert of wijzigt in een cel van A1: B100, wordt de specifieke code in één keer uitgevoerd.


Verwijder alle macro's uit meerdere werkmappen

Kutools for Excel's Batch Verwijder alle macro's hulpprogramma kan u helpen om alle macro's uit meerdere werkmappen te verwijderen als u dat nodig hebt. Download en gratis proef Kutools voor Excel nu!

Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!


Gerelateerde artikelen:

Hoe macro automatisch uitvoeren voordat u afdrukt in Excel?

Hoe een macro uitvoeren op basis van de celwaarde in Excel?

Hoe een macro uitvoeren op basis van de geselecteerde waarde in de vervolgkeuzelijst in Excel?

Hoe voer ik een macro uit door op hyperlinks in Excel te klikken?

Hoe voer ik een macro uit wanneer het blad is geselecteerd uit een werkmap?


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken voor u!
officetab onderkant
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Susan K Phillips · 1 years ago
    I am trying to automate 1 workbook (BOM) when another workbook(Parts Status) makes changes. The Parts status file updates every 15 minutes. I need to know how to automate a specific column when these changes occur? Any ideas
  • To post as a guest, your comment is unpublished.
    JayK · 1 years ago
    Hi guys, I am solving the following issue: I want to scrape a title of website when link inserted in column A and put this value to relevant cell (next to it) in column B. The issue seems to be that once I paste the website in column A, the code reruns the entire list from column A2 to "last row" as defined in the code. Is there any way to only modify column B once a single column A is modified? I.e. if Ipaste a link in column A36 I get a title in B36, regardless of whether the cell is in the middle of the used range or at the very bottom. I would like to use this without having to re-run multiple inputs as it currently stands; (i.e. the loop "for i =2 to last row")? Also, I would like to change the below from Modular macro i.e. sub to private sub reacting to change (i.e. intersect function) where the 'target' is any cell from A:A range. Many thanks!


    Sub get_title_header()

    Dim wb As Object
    Dim doc As Object
    Dim sURL As String
    Dim lastrow As Long
    lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row

    For i = 2 To lastrow
    Set wb = CreateObject("internetExplorer.Application")
    sURL = Cells(i, 1)

    wb.navigate sURL
    wb.Visible = False

    While wb.Busy
    DoEvents
    Wend

    ''HTML document
    Set doc = wb.document

    Cells(i, 2) = doc.Title

    On Error GoTo err_clear
    Cells(i, 3) = doc.GetElementsByTagName("h1")(0).innerText
    err_clear:
    If Err <> 0 Then
    Err.Clear
    Resume Next
    End If
    wb.Quit
    Range(Cells(i, 1), Cells(i, 3)).Columns.AutoFit
    Next i

    End Sub




    Thank YOU!




  • To post as a guest, your comment is unpublished.
    roberto · 2 years ago
    Hola buenas tardes
    quisiera saber el codigo para que se active una macro cuando cambia el valor de una celda de una columna, pero este valor cambia por formula,sin que el usuario introduzca ningun valor.
  • To post as a guest, your comment is unpublished.
    DrCartwright · 3 years ago
    The macro that you are calling where do you have this located? I have mine in the Modules folder but when I put any value in any cell of the worksheet I get a Compile error saying:
    Expected variable or procedure, not module.

    Please help.
    • To post as a guest, your comment is unpublished.
      skyyang · 3 years ago
      Hi, DrCartwright,
      Sorry for replying to you so late.
      Yes, as you said, the macro code should be located into the Module, and you need to change the code name to your own name as following screenshot shown:
  • To post as a guest, your comment is unpublished.
    Kevin · 3 years ago
    Hey, useful code. I was thinking if it was possible to insert a ring around the cells that are changed as they are changed? And reset the circles every Monday ?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 years ago
      Hello, Kevin,
      Here is no idea for solving your problem, if you have any good solution, please comment here.
  • To post as a guest, your comment is unpublished.
    Tom · 3 years ago
    Worked great for me! My dilemma is that I want it to be a relative reference macro and there is a difference between hitting enter to save the entry and delete to clear the cell.
  • To post as a guest, your comment is unpublished.
    Andrew Cothliff · 4 years ago
    This worked first time for me using data validation list which displays text based on the list selection.
  • To post as a guest, your comment is unpublished.
    Jach · 4 years ago
    Yeah the description says it should trigger when value changes, but the second code says it's when the value is nothing, and the first one doesn't trigger when a value changes either, but if I press F5 when looking at the code, it wants to trigger MyMacro, but doesn't seem to react to value changes as much as going from nothing to something or opposite.
  • To post as a guest, your comment is unpublished.
    Wayne Hyde · 4 years ago
    This module is not working for me. It says when the VALUE of the cell changes it will execute the code. I find if I TYPE into the cell it works, but if the value of tthe cell is change by a formula, for example a Counta, then it does not execute. Do you have a solution to execute a macro when the VALUE changes through a formula?
    Thanks,
    Wayne
    • To post as a guest, your comment is unpublished.
      Ronnie · 4 years ago
      Same problem as Wayne. Any help much appreciated!
      Thanks

      Ronnie
      • To post as a guest, your comment is unpublished.
        skyyang · 4 years ago
        Hello, guys,

        Yes, the above code is only available when the cell value changes manually, if you need to run a specific macro code automatically when formula result changes with its relative cells change, please visit this article:
        https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
        Please try it, and hope your reply.
        • To post as a guest, your comment is unpublished.
          Felipe · 4 years ago
          It's not working... & I'm changing the cell value manually. Is there any preconfiguration that must be setup?
          • To post as a guest, your comment is unpublished.
            Eugenio · 3 years ago
            Test this in the procedure and use as a parameter


            Private Sub Worksheet_Change (ByVal Target As Range)

            MsgBox Target.Address & "-" e Target.AddressLocal

            End Sub