Note: The other languages of the website are Google-translated. Back to English

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

Stel dat ik meerdere macrocodes in mijn werkmap heb en nu wil ik deze codes uitvoeren op basis van de celwaarde. In dit artikel zal ik ingaan op verschillende situaties die u kunt tegenkomen in uw dagelijkse werk bij het gebruik van Excel.

Voer de macro uit of activeer deze als de celwaarde groter of kleiner is dan een specifieke waarde met VBA-code

Voer de macro uit of activeer deze als de celwaarde gelijk is aan specifieke tekst met VBA-code


pijl blauw rechts bel Voer de macro uit of activeer deze als de celwaarde groter of kleiner is dan een specifieke waarde met VBA-code

Als de waarde in cel A1 bijvoorbeeld tussen 10 en 50 ligt, voert u macro1 uit en als de waarde groter is dan 50, voert u macro2 uit. Om deze klus in Excel op te lossen, past u de volgende VBA-code toe.

1. Klik met de rechtermuisknop op de bladtab waarop u de macro wilt uitvoeren op basis van een celwaarde 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 als de celwaarde groter of kleiner is dan:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

doc voer macro uit op basis van celwaarde 1

Opmerking:: In de bovenstaande code:

A1 is de cel die de specifieke waarde bevat waarop u de macro wilt uitvoeren;

Geval 10 tot 50: Macro1: het betekent dat als de waarde tussen 10 en 50 ligt, Macro1 wordt uitgevoerd;

Geval is> 50: Macro2: dit betekent dat als de waarde groter is dan 50, Macro2 wordt uitgevoerd.

Wijzig deze macronamen en criteria naar uw behoefte, en u kunt ook meer criteria toevoegen volgens de SITUATIE scripts.

2. Sla vervolgens dit codevenster op en sluit het. Als de waarde die u invoert tussen 10 en 50 ligt in cel A1, wordt Macro1 geactiveerd, als de ingevoerde waarde groter is dan 50, wordt Macro2 uitgevoerd.


pijl blauw rechts bel Voer de macro uit of activeer deze als de celwaarde gelijk is aan specifieke tekst met VBA-code

Als u de macro wilt activeren op basis van specifieke tekst in een cel, bijvoorbeeld om macro1 uit te voeren als de tekst "Verwijderen" is ingevoerd, en macro2 uit te voeren als de tekst "Invoegen" is getypt. De volgende code kan je een plezier doen.

1. Klik met de rechtermuisknop op het blad waarop u de macro wilt uitvoeren op basis van de celwaarde 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 macro uit als celwaarde een specifieke tekst is

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

doc voer macro uit op basis van celwaarde 2

Opmerking:: In de bovenstaande code, "Verwijder"En"Invoegen”Zijn de celteksten waarop u macro's wilt uitvoeren op basis van, en Macro1 en Macro2 zijn de macro's die u wilt uitvoeren op basis van tekst. Wijzig ze naar uw behoefte.

2. Sla vervolgens deze code op en sluit het venster. Als u nu de tekst "Verwijderen" invoert in cel A1, wordt macro1 geactiveerd, als de tekst "Invoegen" wordt ingevoerd, wordt macro2 uitgevoerd.


Gerelateerde artikelen:

Hoe een macro uitvoeren wanneer de celwaarde verandert in Excel?

Hoe macro automatisch uitvoeren voordat u afdrukt 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-2021 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Volledige functies Gratis proefperiode van 30 dagen. 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 honderden muisklikken voor u elke dag!
officetab onderkant
Heb je vragen? Stel ze hier. (18)
Rated 5 uit 5 · 1 ratings
Deze opmerking is gemaakt door de moderator op de site
Hallo, hoe zit het als u een macro wilt uitvoeren op basis van twee cellen? De ene cel is op tekst gebaseerd en de andere cel heeft numerieke waarden? Dan zou je een macro willen aanroepen als de twee cellen precies laten zien wat je wilt, zoals "JA" voor de eerste cel en 1 voor de tweede cel, als dat niet het geval is, verschijnt er een pop-box met de tekst "Niet gevonden".
Deze opmerking is gemaakt door de moderator op de site
Eis:
Op basis van de selectie
Er zal een vervolgkeuzelijst zijn voor de volgende drie eigenschappen van dezelfde dimensie als hieronder.
En er zullen drie afgeleide cellen zijn die zullen worden afgeleid van de cellen (G46, G47 en G48)

Scenario:
Als ik een waarde uit de vervolgkeuzelijst kostenplaats selecteer, moet de afgeleide cel van de kostenplaats (K46) worden gevuld met de waarde die is geselecteerd uit de vervolgkeuzelijst kostenplaats (H46) en moeten de andere twee afgeleide cellen (K47 en k48) leeg worden.

Evenzo, als ik een waarde selecteer uit de vervolgkeuzelijst Budgetmanager, moet de afgeleide cel van de Budgetmanager worden gevuld met de waarde die is geselecteerd in de vervolgkeuzelijst Budgetmanager (H47) en moeten de andere twee afgeleide cellen (K45 en k48) leeg worden.
Deze opmerking is gemaakt door de moderator op de site
Ik werk met resultaatanalyse. In dit geval zullen de gegevens in de Excel er als volgt uitzien Naam, Subnaam, Crade. Nu wil ik de nummers van alle geslaagde of succesvolle kandidaten uit het resultaat vinden. Hoe kan ik het krijgen. Omdat ik 6 verschillende onderwerpen heb en hun resultaten in één Excel-blad. Als de student in één vak is gezakt, is hij geen succesvolle student. Hoe verwijder je hun naam in alle onderwerpen.
Deze opmerking is gemaakt door de moderator op de site
Corrigeer de code beide voor hetzelfde werkblad.
EERSTE CODE WERKT PERFECT
Particulier subwerkblad_Wijziging (ByVal-doel als bereik)
Als niet snijden (doel, bereik ("D1")) is niets dan
Selecteer Case Range ("D1")
Doos "0.5": Half
Case "1": Een
Case "1.25": OneTwentyFive
End Select
End If
End Sub

TWEEDE CODE WERKT NIET (corrigeer onderstaande)
Privé subwijziging (ByVal-doel als bereik)
Als niet snijden (doel, bereik ("D2")) is niets dan
Selecteer Case Range ("D2")
Case "9.53": negenpuntvijf
End Select
End If
End Sub
Deze opmerking is gemaakt door de moderator op de site
Olá, quero fazer of seguinte:
Na Celula A1, assim que ela estiver preenchida passe para a celula de baixo, geen caso A2.
U kunt de code van de barras para cadastrar produtos, e ele lê os numeros automaticos, ai tenho que ficar apertando ENTER para ir para celula de baixo.

Dank je wel!
Deze opmerking is gemaakt door de moderator op de site
Hola, een consult, como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
Deze opmerking is gemaakt door de moderator op de site
Hallo, Gustavo
Gebruik de volgende code om uw probleem op te lossen:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        If Target.Value > 10 And Target.Value < 50 Then
         macro1
         macro2
        End If
    End If
End Sub

Probeer het alsjeblieft, ik hoop dat het je kan helpen!
Deze opmerking is gemaakt door de moderator op de site
Hallo,
je souhaiterais appliquer cette macro à mon code. Het probleem van de cellules is via een toupie en de code ne reconnais pas de changement de valeur de la cellule.
Quand je saisie la valeur manuellement celà fonctionne correction.

Dank u bij voorbaat
Deze opmerking is gemaakt door de moderator op de site
Hallo, Gilles,
Je moet een invoegen Draaiknop (ActiveX-besturing) eerst, en dan met de rechtermuisknop erop, kies Bekijk code, kopieer en plak vervolgens de onderstaande code tussen de bestaande scripts,
Dim xWSh As Worksheet
Dim xOL As OLEObject
Dim xRg As Range
Set xWSh = Application.ActiveSheet
Set xOL = xWSh.OLEObjects("SpinButton1") 'The name of the spin button
Set xRg = xWSh.Range(xOL.LinkedCell)
If IsNumeric(xRg) And xRg.Address = "$A$1" Then
        Select Case xRg.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
End If

https://www.extendoffice.com/images/stories/comments/comment-skyyang/DOC-RUN-CODE.png

Probeer het alsjeblieft, ik hoop dat het je kan helpen!
Deze opmerking is gemaakt door de moderator op de site
Hi!

Ik ben erg nieuw voor VBA en ik heb deze oplossing geprobeerd voor een Excel-blad dat ik heb. Ik heb eigenlijk gewoon een lange lijst in Excel, waar je in kolom T Ja of Nee moet typen, en ik zou het graag willen, Als je Ja hebt getypt, voer dan een macro uit ... Ik heb veel verschillende manieren geprobeerd om het bereik te definiëren, maar niks werkt.

Sub worksheet_change (ByVal-doel als bereik)

Stel doel = bereik ("T:T")
Als target.Value = "Ja" Dan
Bel Macro1
End If

End Sub

Ik markeer dit probleem (runtime error-type komt niet overeen): If target.Value = "Ja" Dan

Kan iemand helpen?

Met vriendelijke groet, Isabella
Deze opmerking is gemaakt door de moderator op de site
Hallo Westergaard
Mogelijk kan de volgende VBA-code u helpen: (Opmerking: verander de naam van de Macro1 naar uw eigen codenaam)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("T:T")) Is Nothing Then
If Target.Value = "Yes" Then
      Call Macro1
    End If
    End If
End Sub

Probeer het alsjeblieft, ik hoop dat het je kan helpen!
Deze opmerking is gemaakt door de moderator op de site
Heel erg bedankt! Het werkt nu :)
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Hoe deze code te wijzigen op basis van het resultaat van de berekening van de cel A1-formule
Subwerkblad_Berekenen()
Help alstublieft

Private Sub Worksheet_Change (ByVal-doel als Excel.Range)
Als Target.Cells.Count > 1 Sub afsluiten
If IsNumeric(Target) en Target.Address = "$A$1" Dan
Selecteer Case Target.Value
Geval 10 tot 50: Macro1
Geval is> 50: Macro2
End Select
End If
End Sub
Rated 5 uit 5
Deze opmerking is gemaakt door de moderator op de site
Hallo, FG,
Pas de onderstaande code toe om de code in formulecellen te laten werken:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    ElseIf (Not Intersect(Range("$A$1"), Target.Dependents) Is Nothing) Then
        Set Rg = Intersect(Range("$A$1"), Target.Dependents)(1)
        Select Case Rg.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    End If
End Sub

Probeer het alsjeblieft, ik hoop dat het je kan helpen!
Deze opmerking is gemaakt door de moderator op de site
Ciao skyyang. Spero tu posa aiutarmi. Ho un programmemino in vba che basandosi su variazioni di prezzo di a cella (E1), collegata in DDE con una piattaforma di trading di borsa, fissa i prezzi: Massimo, Minimo, Apertura, Chiusura, per poi passare alla riga successiva in base a een intervallo temporale impostato all'apertura del foglio elettronico. Algoritmo da me sviluppato fa si ch nelle colonne: "BH" en "BI" vengano visualizzati i prezzi di acquisto e di vendita, ma solo quando soddisfatte le condizioni date, altrimenti le celle non restituiscono nessun valore. Als u uw eigen mening hebt en een avviso sonoro .wav bent, heeft u misschien een waarde teruggekregen, de koop of verkoop, in de modus die niet dover is, is het scherm per 14 of al gegiorno. Als je een codice "SoundMe()" online plaatst, weet je dat je een nieuwe massa of een nieuwe mini-computer kunt gebruiken in een programma dat je kunt gebruiken en prezzi. Heeft u een probleem of kunt u het oplossen? Grazie per l'attenzione
Stephen
Deze opmerking is gemaakt door de moderator op de site
Hallo,
hoe kan ik de lijst weergeven die door richiamare is gemaakt 2 macro al cambio del valore di una cella, se quel cambio deriva da un funzione "se" non funziona, se digito i valori (vero of falso) funziona.

Is het mogelijk?
Uiteindelijk komt het voor dat u gebruik maakt van de huidige stand van zaken en verifieert u al de lijst van de cella of ontwikkelt u veel macro's en compilaties?

grazie
Deze opmerking is gemaakt door de moderator op de site
Hallo,
vorrei eseguire een macro quando een in een cella viene inserito een controllo "if" of se viene inserita een data en niet een numero.

Ad esempio se nella cella A1 inserisco: If(B2=0;vero;falso) e la macro leggendo vero mi nasconde lo sheet2 altrimenti mi scopre la sheet 2.

Hoe kan ik doen?
Riesco is een veel funzionare il tutto se inserisco in A1 manualmente un valore (in questo caso vero of falso).

Dank
Deze opmerking is gemaakt door de moderator op de site
Hallo,
In feite kan de tweede code in dit artikel uw probleem oplossen.
Opmerking:: U hoeft alleen de tekst in True en False in de code te wijzigen en de codenaam in uw eigen naam te wijzigen.
Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "True" Then
 Call Macro1
End If
If target.Value = "False" Then
Call Macro2
End If
End Sub 


Probeer het opnieuw, bedankt!
Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties

Volg ons

Copyright © 2009 - www.extendoffice.com. | Alle rechten voorbehouden. Aangedreven door ExtendOffice. | Sitemap
Microsoft en het Office-logo zijn handelsmerken of gedeponeerde handelsmerken van Microsoft Corporation in de Verenigde Staten en / of andere landen.
Beschermd door Sectigo SSL