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

 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

Hinweis: 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

Hinweis: 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?


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
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!
officetab unten
Kommentare (18)
Bewertet 5 aus 5 · 1 Bewertungen
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, wie wäre es, wenn Sie ein Makro ausführen möchten, das auf zwei Zellen basiert? Eine Zelle ist textbasiert und die andere Zelle hat numerische Werte? Dann möchten Sie ein Makro aufrufen, wenn die beiden Zellen genau das anzeigen, was Sie möchten, wie "JA" für die erste Zelle und 1 für die zweite Zelle, wenn nicht, würde ein Pop-Box mit der Aufschrift "Nicht gefunden" angezeigt.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Voraussetzung:
Basierend auf der Auswahl
Es wird eine Dropdown-Liste für die folgenden drei Eigenschaften der gleichen Dimension wie unten angezeigt.
Und es wird drei abgeleitete Zellen geben, die von den Zellen abgeleitet werden (G46, G47 und G48)

Szenario:
Wenn ich einen Wert aus der Kostenstellen-Dropdown-Liste auswähle, sollte die von der Kostenstelle abgeleitete Zelle (K46) mit einem Wert gefüllt werden, der aus der Kostenstellen-Dropdown-Liste (H46) ausgewählt wurde, und die anderen beiden abgeleiteten Zellen (K47 und k48) sollten leer werden.

Wenn ich in ähnlicher Weise einen Wert aus der Dropdown-Liste des Budgetmanagers auswähle, sollte die abgeleitete Zelle des Budgetmanagers mit dem Wert gefüllt werden, der aus der Dropdownliste des Budgetmanagers (H47) ausgewählt wurde, und die anderen beiden abgeleiteten Zellen (K45 und k48) sollten leer werden.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich arbeite mit Ergebnisanalyse. In diesem Fall lauten die Daten in Excel wie folgt: Name, Untername, Crade. Jetzt möchte ich die Nummern aller bestandenen oder erfolgreichen Kandidaten aus dem Ergebnis finden. Wie kann ich es bekommen. Weil ich 6 verschiedene Themen und ihre Ergebnisse in einem einzigen Excel-Blatt habe. Wenn der Student in einem Fach durchgefallen ist, ist er kein erfolgreicher Student. Wie entfernen Sie ihren Namen in allen Fächern.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Bitte korrigieren Sie den Code für dasselbe Arbeitsblatt.
ERSTER CODE FUNKTIONIERT PERFEKT
Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
If Not Intersect(Target, Range("D1")) ist nichts, dann
Wählen Sie den Fallbereich("D1")
Fall "0.5": Hälfte
Fall "1": Eins
Fall "1.25": OneTwentyFive
End Select
End If
End Sub

ZWEITER CODE FUNKTIONIERT NICHT (bitte korrigieren Sie die untenstehenden Angaben)
Private Sub Change (ByVal Target As Range)
If Not Intersect(Target, Range("D2")) ist nichts, dann
Wählen Sie den Fallbereich("D2")
Fall "9.53": neunkommafünfdrei
End Select
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Olá, quero fazer o seguinte:
Na Celula A1, assim que ela estiver preenchida passe para a celula de baixo, no caso A2.
Eu uso um leitor de codigo de barras para cadastrar produtos, e ele lê os numeros automaticos, ai tenho que ficar apertando ENTER para ir para celula de baixo.

Danke!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hola, una consulta, como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Gustav
Um Ihr Problem zu lösen, wenden Sie bitte den folgenden Code an:
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

Bitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Guten Tag,
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.

Vielen Dank im Voraus
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Gilles,
Sie sollten a . einfügen Drehknopf (ActiveX-Steuerelement) zuerst, und dann rechtsklicken Sie darauf, wählen Sie Code anzeigen, kopieren Sie dann den folgenden Code und fügen Sie ihn zwischen den vorhandenen Skripten ein.
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

Bitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hi!

Ich bin sehr neu in VBA und habe diese Lösung für ein Excel-Blatt ausprobiert, das ich habe. Ich habe im Grunde nur eine lange Liste in Excel, in der Sie in Spalte T Ja oder Nein eingeben sollten, und ich möchte, dass bei Eingabe von Ja ein Makro ausgeführt wird ... Ich habe viele verschiedene Möglichkeiten ausprobiert, den Bereich zu definieren, aber nichts funktioniert.

Sub worksheet_change(ByVal target As Range)

Ziel setzen = Range("T:T")
Wenn target.Value = "Yes" Then
Makro1 aufrufen
End If

End Sub

Ich hebe dieses Problem hervor (Laufzeitfehler-Typ-Konflikt): If target.Value = "Yes" Then

Kann jemand helfen?

Viele Grüße, Isabella
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Westergaard
Vielleicht kann Ihnen der folgende VBA-Code helfen: (Hinweis: Bitte ändern Sie den Namen der Macro1 zu Ihrem eigenen Codenamen)
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

Bitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank! Jetzt funktioniert es :)
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
So ändern Sie diese Codebasis auf dem Formelberechnungsergebnis der Zelle A1
Sub Worksheet_Calculate()
Bitte helfen

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Wenn Target.Cells.Count > 1, dann Exit Sub
If IsNumeric(Target) And Target.Address = "$A$1" Then
Wählen Sie Fall-Zielwert aus
Fall 10 bis 50: Makro1
Fall ist> 50: Macro2
End Select
End If
End Sub
Bewertet 5 aus 5
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo FG,
Damit der Code in Formelzellen funktioniert, wenden Sie bitte den folgenden Code an:
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

Bitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
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 ist ein 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
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Guten Morgen,
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.

Komm 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?

Vielen Dank
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Guten Morgen,
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.

Wie kann ich tun?
Riesco a far funzionare il tutto se inserisco in A1 manualmente un valore (in questo caso vero o falso).

Danke
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Carlo,
Tatsächlich kann der zweite Code in diesem Artikel Ihr Problem lösen.
Hinweis: Sie müssen nur den Text im Code in True und False ändern und den Codenamen in Ihren eigenen ändern.
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 


Bitte versuchen Sie es erneut, danke!
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL