Office: worksheet_change alternative bei Zellen mit Formeln

Helfe beim Thema worksheet_change alternative bei Zellen mit Formeln in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, Vorneweg: ich habe eine sehr spezifische Frage, aber leider kein Fachwissen auf dem Gebiet VBA. An den Punkt an dem ich jetzt stehe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Efwe1986, 8. Januar 2017.

  1. worksheet_change alternative bei Zellen mit Formeln


    Hallo zusammen,

    Vorneweg:
    ich habe eine sehr spezifische Frage, aber leider kein Fachwissen auf dem Gebiet VBA. An den Punkt an dem ich jetzt stehe bin ich mit viel Hilfe und trial&error gelangt. Ausfürliche und einfache Erklärungen wüsste ich sehr zu schätzen. *Smilie

    Ich habe mir eine worksheet_change funktion zusammengebastelt bei der ein Feld A1 ausgelesen wird. in diesem Feld A1 können (nur) die Werte 1,2,3 stehen. Bei 1 soll in einem Feld B1 eine Liste mit 2 Auswahlmöglichkeiten kommen. Bei 2 und 3 soll das Feld B1 leer bleiben. So weit so gut.

    Nun soll ich das Prizip auf eine Arbeitsmappe anwenden, in der der Wert in A1 (wieder nur 1,2 oder 3) von einer verschachteleten Wenn-Formel errechnet wird, die mit mehreren variablen Schwellenwerten arbeitet.

    Die normale worksheet_change funktion funktioniert nur bei manuellen Änderungen in A1.

    Meine Frage: Gibt es eine Möglichkeit die worksheet_change funktion zu modifizieren? Oder eine praktikable Alternative?

    Vielen Dank für Eure Ideen und beste Grüße

    Fabian

    :)
     
    Efwe1986, 8. Januar 2017
    #1
  2. Hallo Fabian,

    da könnte das Ereignis 'Worksheet_Calculate' helfen.

    Gruß
    Aloys
     
    aloys78, 10. Januar 2017
    #2
  3. Hallo Aloys,

    danke für die schnelle Antwort.

    ich stelle mal den Code rein, den ich mir zusammengestümpert habe und der nur funktioniert wenn A1 keine Formel enthält:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address "$A$1" Then Exit Sub
    If Range("A1").Value = "1" Then
    With Range("B1").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="Auswahl1,Auswahl2"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
    End With
    Else: Range("B1").Value = ""
    Range("B1").Validation.Delete
    End If
    End Sub

    wie würde das mit "Worksheet_Calculate" funktionieren?

    Gruß Fabian
     
    Efwe1986, 10. Januar 2017
    #3
  4. worksheet_change alternative bei Zellen mit Formeln

    Hallo Fabian,

    wenn möglich, dann überwache die Zellen auf Änderung, die Grundlage für die Formel in A1 sind.

    Das Calculate-Ereignis wäre hier nicht mein Favorit.

    Grüße
    EarlFred
     
    EarlFred, 10. Januar 2017
    #4
  5. Nachtrag: Beispiel
    Die Formel in A1 verweist auf C1:C10 (z. B. "=Summe(C1:C10)"):
    Code:
    Bei externen Bezügen wird das allerdings schlecht handhabbar.

    Grüße
    EarlFred
     
    EarlFred, 10. Januar 2017
    #5
  6. Hallo EarlFred,

    Das Feld A1 bezieht seine Werte aus einem Feld C1 auf dem gleichen Tabellenblatt, welches wiederum seinen Wert aus einem Feld Q1 auf einem 2. Tabellenblatt in der gleichen Arbeitsmappe bezieht, welches seinen Wert aus der Differenz von 2 weiteren Feldern (H1-O1) von Tabellenblatt 2 erhält. Zu guter Letzt wird der Wert von H1 händisch eingetragen und der von O1 ist wieder die Summe aus 2 weiteren Feldern und das ganze aufzudröseln würde noch etwas dauern.

    lässt sich mit dem Feld C1 etwas anfangen?

    Gruß Fabian
     
    Efwe1986, 10. Januar 2017
    #6
  7. Hallo Fabian,

    da trifft doch das gleiche zu: Der angezeigte Wert wird per Formel verändert, löst also das Change-Ereignis nicht aus.

    Du musst an die Zelle ran, die von Hand geändert wird - nur die löst das Change-Ereignis aus. Aber ehrlicherweise kann ich Deiner Beschreibung dahin nicht folgen.

    Grüße
    EarlFred
     
    EarlFred, 10. Januar 2017
    #7
  8. worksheet_change alternative bei Zellen mit Formeln

    Hallo EarlFred,

    Wenn ich dich richtig verstanden habe wolltest du einzelne Felder überwachen. Das Problem dabei ist, dass nur in die wenigsten Felder etwas händisch eingetragen wird, die meisten Werte errechnen sich mit Formeln oder sind schlicht statisch.

    Danke für deine Hilfe. Die Erkenntnis, dass man in eine Sackgasse läuft ist auch ein Ergebnis.

    Gruß Fabian
     
    Efwe1986, 10. Januar 2017
    #8
  9. Hallo Fabian,

    wer redet von Sackgasse?

    Du kannst freilich auch mit dem Calculate-Ereignis arbeiten, dann aber nicht gezielt Zellen überwachen, sondern nur das Blatt komplett - das Makro wird also häufige arbeiten, als Du eigentlich brauchst.

    Der Umbau ist auch nicht so schwer:
    Code:
    dblOldValue soll dafür sorgen, dass das Makro bei der ersten Prüfung abbricht, wenn das Blatt neu berechnet wird und A1 dabei = 1 bleibt.

    Den Wert könntest Du ergänzend beim Öffnen des Workbooks erstmalig belegen.

    Grüße
    EarlFred
     
    EarlFred, 11. Januar 2017
    #9
  10. Jetzt packst du mich aber bei der Neugier.

    Habe deinen Code versucht. Kriege eine Fehlermeldung: Laufzeitfehler '13' Typen unverträglich.

    nach debuggen ist die Zeile

    If Me.Range("E26").Value = "Antrag auf zusätzliche Mobilitätsmittel" And dblOldValue "Antrag auf zusätzliche Mobilitätsmittel" Then

    markiert.

    und es erscheint kein Dropdown auch beim richtigen Wert.

    Gruß Fabian
     
    Efwe1986, 11. Januar 2017
    #10
  11. Hallo Fabian,

    Du sprachst von Zahlen, daher nahm ich als Typ Double. Wenn die Variable auch Text aufnehmen können soll, nimm Variant.

    Grüße
    EarlFred
     
    EarlFred, 11. Januar 2017
    #11
  12. Das ist schon mal vielversprechend.

    Dropdown erscheint beim richtigen Wert. Kann man es jetzt noch schaffen, dass sowohl Dropdown, als auch der Wert aus dem Dropdown in H26 wieder verschwinden wenn sich der Wert in E26 wieder ändert?

    Gruß Fabian
     
    Efwe1986, 11. Januar 2017
    #12
  13. worksheet_change alternative bei Zellen mit Formeln

    Hallo zusammen,

    Schamloser selbst bump

    Noch mal alles in einem Post:

    folgenden Code habe ich dank der tollen Hilfe von EarlFred in meine Arbeitsmappe eingebunden:

    Code:
    damit erscheint ein Drop down Menu in Zelle H26 wenn der Wert in Zelle E26 sich zu "Antrag auf zusätzliche Mobilitätsmittel" ändert. bei allen anderen Werten in E26 nicht. Das ist schon mal super.
    Allerdings bleiben sowohl das Dropdown Menu als auch der letzte Wert, der aus diesem ausgewählt wurde stehen, auch wenn sich der Wert in E26 ändert. Ist es noch möglich die Dropdown List
    1.) zu resetten, wenn sich der Wert in E26 ändert?
    2.) ganz verschwinden zu lassen, wenn er sich zu etwas anderem als "Antrag auf zusätzliche Mobilitätsmittel" ändert?

    Beste Grüße Fabian
     
    Efwe1986, 12. Januar 2017
    #13
  14. Hallo Fabian,

    fällt Dir das wirklich nicht selbst auf?
    Wenn Du die Zellbezüge im einen Codeteil änderst - was muss dann wohl mit den Bezüge im anderen Teil passieren?
    Code:
    Grüße
    EarlFred
     
    EarlFred, 12. Januar 2017
    #14
  15. Hallo EarlFred,

    das war wahrlich keine Meisterleistung von mir. Und ich will lieber gar nicht erst sagen wie lange ich vor meinem und deinem neuen Code gesessen habe bevor mir der Unterschied aufgefallen ist...

    Ich danke dir für deine Hilfe und Geduld.

    Es funktioniert.

    Wenn ich den Code jetzt auf mehrere Zellen ausdehnen möchte:
    also E26:E29
    und H26:H29
    aber so, dass E26 weiterhin nur mit H26
    und E27 nur mit H27 korrespondiert und so weiter.
    kann ich den Code dann einfach Copy Pasten und die Zellbezüge anpassen?
     
    Efwe1986, 12. Januar 2017
    #15
Thema:

worksheet_change alternative bei Zellen mit Formeln

Die Seite wird geladen...
  1. worksheet_change alternative bei Zellen mit Formeln - Similar Threads - worksheet_change alternative Zellen

  2. Problem mit Private Sub Worksheet_Change

    in Microsoft Excel Hilfe
    Problem mit Private Sub Worksheet_Change: Hallo, ich komme nicht weiter mit meiner Worksheet_Change. Ich muss sagen, ich bin kein VB Profi - eher Laie mit Grundverständnis in Coding. Was möchte ich (Erwartung): 1. Wenn eine gewisse Zelle...
  3. 2x Worksheet_Change(ByVal Target As Range)

    in Microsoft Excel Hilfe
    2x Worksheet_Change(ByVal Target As Range): Hallo zusammen, ich bin VBA-Anfänger und habe die ersten Codes erstellt. Nun möchte ich 2 von Ihnen, welche einzeln funktionieren, zusammenfügen, so dass beide entsprechend durchgeführt werden....
  4. VBA - Fehler beim Kompilieren (Mehrdeutiger Name - Worksheet_Change)

    in Microsoft Excel Hilfe
    VBA - Fehler beim Kompilieren (Mehrdeutiger Name - Worksheet_Change): Hallo, ich komm leider nicht weiter. Habe 2 Makros die einzeln super Funktionieren, aber leider nicht zusammen. Vielleicht kann jemand helfen. Danke. Option Explicit Sub Datum() Private Sub...
  5. Worksheet_Change über mehrere Tabellenblätter

    in Microsoft Excel Hilfe
    Worksheet_Change über mehrere Tabellenblätter: Hallo zusammen, ich habe folgendes Problem: Sobald in Tabelle 2 in Zelle A1 der Wert "2" und in Zelle A2 der Wert "1" stehen, soll in Tabelle 1 Zelle A1 der Text "Ziel erreicht" eingeblendet...
  6. 2x Private Sub Worksheet_Change(ByVal Target As Range)

    in Microsoft Excel Hilfe
    2x Private Sub Worksheet_Change(ByVal Target As Range): Hallo Zusammen, ich habe hier zwei funktionierende Markos, die ich gerne in einem Worksheet parallel laufen lassen würde. Kann mir einer weiterhelfen und sagen wie ich diese zusammenführe?...
  7. VBA Autoform einfärben

    in Microsoft Excel Hilfe
    VBA Autoform einfärben: Hallo zusammen, ich brauche dringend eure Hilfe. Habe schon überall nach einer Lösung gesucht, aber komme nicht zum richtigen Ergebnis. Ich habe zwei verschiedene Arbeitsblätter in meiner...
  8. Worksheet_Change auf bestimmte Zeilen beschränken

    in Microsoft Excel Hilfe
    Worksheet_Change auf bestimmte Zeilen beschränken: Liebe Forums-Nutzer, ich haben eine Funktion die mir sowohl die Eingabe als brutto wie als netto erlaubt. Mein Problem ist, dass ich es nicht auf bestimmte Zeilen beschränkt bekomme. Der Code...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden