Direkt zum Inhalt

 Wie führe ich ein Makro basierend auf dem Zellenwert in Excel aus?

Angenommen, ich habe mehrere Makrocodes in meiner Arbeitsmappe, und jetzt möchte ich diese Codes basierend auf dem Zellenwert ausführen. In diesem Artikel werde ich auf verschiedene Situationen eingehen, die bei der täglichen Arbeit mit Excel bei Ihrer täglichen Arbeit auftreten können.

Führen Sie ein Makro aus oder lösen Sie es aus, wenn der Zellenwert mit VBA-Code größer oder kleiner als ein bestimmter Wert ist

Führen Sie ein Makro aus oder lösen Sie es aus, wenn der Zellenwert einem bestimmten Text mit VBA-Code entspricht


Pfeil blau rechte Blase Führen Sie ein Makro aus oder lösen Sie es aus, wenn der Zellenwert mit VBA-Code größer oder kleiner als ein bestimmter Wert ist

Wenn der Wert in Zelle A1 beispielsweise zwischen 10 und 50 liegt, führen Sie Makro1 aus, und wenn der Wert größer als 50 ist, führen Sie Makro2 aus. Um diesen Job in Excel zu lösen, wenden Sie bitte den folgenden VBA-Code an.

1. Klicken Sie mit der rechten Maustaste auf die Registerkarte Blatt, auf der Sie das Makro basierend auf einem Zellenwert ausführen möchten, und wählen Sie dann aus Code anzeigen aus dem Kontextmenü und im geöffneten Microsoft Visual Basic für Anwendungen Kopieren Sie im Fenster den folgenden Code und fügen Sie ihn in das leere Modul ein:

VBA-Code: Führen Sie ein Makro aus, wenn der Zellenwert größer oder kleiner als:

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 Makro basierend auf Zellenwert 1 ausführen

Note: Im obigen Code:

A1 ist die Zelle, die den spezifischen Wert enthält, auf dem das Makro ausgeführt werden soll;

Fall 10 bis 50: Makro1: bedeutet, wenn der Wert zwischen 10 und 50 liegt, führen Sie Macro1 aus;

Fall ist> 50: Macro2: Wenn der Wert größer als 50 ist, führen Sie Macro2 aus.

Bitte ändern Sie diese Makronamen und -kriterien nach Ihren Wünschen. Sie können auch weitere Kriterien hinzufügen Gehäuse Skripte.

2. Speichern und schließen Sie dann dieses Codefenster. Wenn der von Ihnen in Zelle A10 eingegebene Wert zwischen 50 und 1 liegt, wird Makro1 ausgelöst. Wenn der eingegebene Wert größer als 50 ist, wird Makro2 ausgeführt.


Pfeil blau rechte Blase Führen Sie ein Makro aus oder lösen Sie es aus, wenn der Zellenwert einem bestimmten Text mit VBA-Code entspricht

Wenn Sie das Makro basierend auf einem bestimmten Text in einer Zelle auslösen möchten, um beispielsweise das Makro1 auszuführen, wenn der Text "Löschen" eingegeben wird, und das Makro2 auszuführen, wenn der Text "Einfügen" eingegeben wird. Der folgende Code kann Ihnen einen Gefallen tun.

1. Klicken Sie mit der rechten Maustaste auf das Blatt, auf dem Sie das Makro basierend auf dem Zellenwert ausführen möchten, und wählen Sie dann Code anzeigen aus dem Kontextmenü und im geöffneten Microsoft Visual Basic für Anwendungen Kopieren Sie im Fenster den folgenden Code und fügen Sie ihn in das leere Modul ein:

VBA-Code: Makro ausführen, wenn Zellenwert ein bestimmter Text ist

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 Makro basierend auf Zellenwert 2 ausführen

Note: Im obigen Code “Löschen" und "Insert”Sind die Zellentexte, auf denen Sie Makros ausführen möchten, und Macro1 und Macro2 sind die Makros, die Sie basierend auf Text ausführen möchten. Bitte ändern Sie sie nach Ihren Wünschen.

2. Speichern Sie dann diesen Code und schließen Sie das Fenster. Wenn Sie nun den Text „Löschen“ in Zelle A1 eingeben, wird Makro1 ausgelöst. Wenn der Text „Einfügen“ eingegeben wird, wird Makro2 ausgeführt.


In Verbindung stehende Artikel:

Wie führe ich ein Makro aus, wenn sich der Zellenwert in Excel ändert?

Wie führe ich ein Makro automatisch aus, bevor ich in Excel drucke?

Wie führe ich ein Makro basierend auf dem Wert aus, der aus der Dropdown-Liste in Excel ausgewählt wurde?

Wie führe ich ein Makro aus, indem ich in Excel auf Hyperlinks klicke?

Wie führe ich ein Makro aus, wenn ein Blatt aus einer Arbeitsmappe ausgewählt wird?

Beste Office-Produktivitätstools

Beliebte Funktionen: Suchen, markieren oder identifizieren Sie Duplikate   |  Leere Zeilen löschen   |  Kombinieren Sie Spalten oder Zellen, ohne Daten zu verlieren   |   Runde ohne Formel ...
Super-Lookup: VLookup mit mehreren Kriterien    VLookup mit mehreren Werten  |   VLookup über mehrere Blätter hinweg   |   Unscharfe Suche ....
Erweiterte Dropdown-Liste: Erstellen Sie schnell eine Dropdown-Liste   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Fügen Sie eine bestimmte Anzahl von Spalten hinzu  |  Spalten verschieben  |  Schalten Sie den Sichtbarkeitsstatus ausgeblendeter Spalten um  |  Vergleichen Sie Bereiche und Spalten ...
Ausgewählte Funktionen: Rasterfokus   |  Designansicht   |   Große Formelleiste    Arbeitsmappen- und Blattmanager   |  Ressourcen (Autotext)   |  Datumsauswahl   |  Arbeitsblätter kombinieren   |  Zellen verschlüsseln/entschlüsseln    Senden Sie E-Mails nach Liste   |  Superfilter   |   Spezialfilter (Filter fett/kursiv/durchgestrichen...) ...
Top 15 Toolsets12 Text Tools (Text hinzufügen, Zeichen entfernen, ...)   |   50+ Chart Typen (Gantt-Diagramm, ...)   |   40+ Praktisch Formeln (Berechnen Sie das Alter basierend auf dem Geburtstag, ...)   |   19 Einfügen Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...)   |   12 Umwandlung (Conversion) Tools (Zahlen zu Wörtern, Currency Conversion, ...)   |   7 Zusammenführen & Teilen Tools (Erweiterte Zeilen kombinieren, Zellen teilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen ...

kte tab 201905


Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
Comments (19)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Hallo,

ich bräuchte dafür ein Makro,

ich kann dieses Problem nicht alleine lösen, wäre super wenn mir jemand helfen könnte.

In M1 steht die Zahl 5, jetzt soll der Bereich von A83 bis A683 auf die Zahl 5 geprüft werden, sollte z.B. A111 die Zahl 5 enthalten, dann soll C111 + 1 ( wenn in C111 23 steht dann soll da 24 stehen). Genau so wenn in A444 eine 5 steht, dann soll C444 + 1 ( wenn C444 = 99 dann 100).
Immer wenn der Wert mit M1 übereinstimmt, dann soll diese Zelle in Spalte C immer wieder + 1 zählen. Also 23 +1 dann 24 + 1 dann 25 +1 usw usw.


Vielleicht kann mir da jemand helfen,

Vielen Dank im vorraus.

LG Stfan
This comment was minimized by the moderator on the site
Buongiorno,
vorrei eseguire una macro quando una in una cella viene inserito un controllo "if" o se viene inserita una data e non un 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.

Come posso fare?
Riesco a far funzionare il tutto se inserisco in A1 manualmente un valore (in questo caso vero o falso).

Grazie
This comment was minimized by the moderator on the site
Hello, Carlo,
In fact the second code in this article can solve your problem.
Note: You just need to change the text to True and False into the code, and change the code name to your own.
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 


Please try again, thank you!
This comment was minimized by the moderator on the site
Buongiorno,
ho provato il listato che permette di richiamare 2 macro al cambio del valore di una cella, se quel cambio deriva da una funzione "se" non funziona, se digito i valori (vero o falso) funziona.

Come posso ovviare?
Eventualmente come potrei evitare di utilizzare il condizionale sulla cella e far verificare al listato se la cella che deve far avviare le macro è compilata o meno?

grazie
This comment was minimized by the moderator on the site
Ciao skyyang. Spero tu possa aiutarmi. Ho un programmino in vba che basandosi su variazioni di prezzo di una 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 un intervallo temporale impostato all'apertura del foglio elettronico. L'algoritmo da me sviluppato fa si che nelle colonne: "BH" e "BI" vengano visualizzati i prezzi di acquisto e di vendita, ma solo quando soddisfatte le condizioni date, altrimenti le celle non restituiscono nessun valore. Quello di cui avrei bisogno è di un avviso sonoro .wav che mi avvisi quando viene restituito un valore, di acquisto o di vendita, in modo di non dover fissare lo schermo per 14 ore al giorno. Ho provato a inserire un codice "SoundMe()" trovato on-line, ma suona ogni volta che c'è un nuovo massimo o un nuovo minimo nella riga in cui il programma sta aggiornando i prezzi. Pensi che il problema si possa risolvere? Grazie per l'attenzione
Stefano
This comment was minimized by the moderator on the site
Hi,
How to modify this code base on cell A1 formula calculation result
Sub Worksheet_Calculate()
Please help

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
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello, FG,
To make the code work in formula cells, please apply the below code:
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

Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Thank you very much! It now works :)
This comment was minimized by the moderator on the site
Hi!

Im very new to VBA and I tried this solution for an excel-sheet I have. I basically just have a long list in excel, where you in column T should type Yes or No, and I would like it to, If typed Yes, run a macro... I tried a lot of different ways of defining the range but nothing works.

Sub worksheet_change(ByVal target As Range)

Set target = Range("T:T")
If target.Value = "Yes" Then
Call Macro1
End If

End Sub

I highlights this problem(runtime error- type mismatch): If target.Value = "Yes" Then

Can anybody help?

Best regards, Isabella
This comment was minimized by the moderator on the site
Hello, Westergaard
May be the following VBA code can help you: (Note: Please change the name of the Macro1 to your own code name)
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

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Hello, Gilles,
You should insert a Spin Button (ActiveX Control) first, and then right clcik it, choose View code, then, copy and paste the below code between the existing 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

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Bonjour,
je souhaiterais appliquer cette macro à mon code. Le problème est que la cellule s'incrémente via une toupie et le code ne reconnais pas le changement de valeur de la cellule.
Quand je saisie la valeur manuellement celà fonctionne correctement.

Merci d'avance
This comment was minimized by the moderator on the site
Hola, una consulta, como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
This comment was minimized by the moderator on the site
Hello, Gustavo
To solve your problem, please apply the following code:
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

Please try, hope it can help you!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations