Office: (Office 365) Problem mit Private Sub Worksheet_Change

Helfe beim Thema Problem mit Private Sub Worksheet_Change in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; 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... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Clamsy, 17. August 2023.

  1. Clamsy User

    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 "F3" leer ist, dann soll die Formel : =XVERWEIS(VERWEIS($A$1;'Kalkulation(intern)'!$A$4:$C$56)-4;'Allgemeine Daten'!$C$3:$C$68;'Kalkulation(intern)'!$I$3:$I$68;""Fehlt"") angewendet werden.
    2. Der Anwender kann aber die Zelle F3 manuell überschreiben mit "wasauchimmer"
    3. Wenn der Anwender die Zelle F3 wieder leer (löscht) dann soll somit VB wieder die Formel verwenden.

    Aktuelles Coding:
    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Set rng = Me.Range("F3") ' Die Zielzelle F3

    ' Überprüfen, ob die geänderte Zelle die Zielzelle ist
    If Not Intersect(Target, rng) Is Nothing Then
    Application.EnableEvents = False ' Ereignisse vorübergehend deaktivieren

    ' Überprüfen, ob die Zielzelle leer ist
    If rng.Value = "" Then
    ' Die Formel in die Zielzelle einfügen
    rng.Formula = "=XVERWEIS(VERWEIS($A$1;'Kalkulation(intern)'!$A$4:$C$56)-4;'Allgemeine Daten'!$C$3:$C$68;'Kalkulation(intern)'!$I$3:$I$68;""Fehlt"")"
    End If

    Application.EnableEvents = True ' Ereignisse wieder aktivieren
    End If
    End Sub

    Fehlerverhalten:
    - bei der unter Erwartung 1 geschilderten Formel erhalte ich den Laufzeitfehler 1004 Fehler der Methode Formula des Objekts Range
    - Trage ich anstelle meiner komplexeren Formel eine Simple Formel ein, z.b. =SUMME(3+4) dann erhalte ich in der Tabelle meine Formel, aber leider fehlerhaft, in der Zelle F3 erschein nach dem leeren =@SUMME(3+4). Wo kommt denn nun diese @ Zeichen im Formeleditor her? In der Zelle werden mir nur #NAME? angezeigt.
    - Wenn ich noch simpler werde und als rng.Formula = "=Q6" eintrage, dann funktioniert alles wie gewünscht. In Q6 steht einfach nur ein Mustertext "text" und der wird mir angezeigt, und im Formeleditor steht =Q6 drin.
     
  2. Klaus-Dieter Erfahrener User
    Hallo Clamsy,

    warum willst du mit einem Makro Formeln in ein Tabellenblatt schreiben? Die Berechnungen kannst du doch gleich mit VBA durchführen.
     
    Klaus-Dieter, 17. August 2023
    #2
  3. Clamsy User
    Sorry, aber ich verstehe deine Frage nicht. Wie gesagt ich bin kein VBA Profi. Ich will ja eigentlich gar nichts berechnen.

    Aktuell macht die XVERWEIS Formel eines, diese Formel vergleicht innerhalb der Zelle F3 ob das Datum einer gewählten Kalenderwoche (in diesem Fall der Zelle F3 der Montag -4, dabei nutzt er Kalkulation intern) ein Arbeitsfreier Tag ist, welcher in der Tabelle Allgemeine Daten vom Anwender Definiert wurde.

    Die ganze Formel soll dann noch in einem weiteren Schritt um ein oder zwei Wenn Abfragen erweitert werden (siehe in der XVERWEIS Formel mein Platzhalter "Fehlt". Aber so weit bin ich noch nicht dass ich das einbauen könnte.

    VBA ist für mich zwar nicht ganz neu, aber hier fehlen mir fundamentale Grundinformationen. Bis dato habe ich nur selbst darin etwas herumgewurschtelt und keinerlei Kurse zu VBA belegt. Sollte ich mal machen, aber dafür brauche ich das VBA viel viel zu wenig, dass sich das lohnen würde.
     
  4. RPP63_neu hat Ahnung

    Problem mit Private Sub Worksheet_Change

    Moin!
    Wenn Du eine deutsche Formel eintragen willst, musst Du die .FormulaLocal-Eigenschaft setzen.

    Gruß Ralf
     
    RPP63_neu, 18. August 2023
    #4
  5. RPP63_neu hat Ahnung
    Zu spät zum ergänzen, daher neuer Beitrag:
    Warum setzt Du nicht einfach einen Blattschutz?
     
    RPP63_neu, 18. August 2023
    #5
  6. Clamsy User
    Danke für den Hinweis mit local. Werde ich ausprobieren, bin jetzt nur auf Geschäftsreise und komme nicht an meinen privaten pc.

    auf deine Frage, warum kein Blattschutz? Könnte ich machen, aber dann wäre die Zelle ja nicht überschreibbar was ja gewünscht ist.

    aber das mit local probiere ich.
     
  7. Klaus-Dieter Erfahrener User
    Hallo Clamsy,

    Die Formel: =XVERWEIS(VERWEIS($A$1;'Kalkulation(intern)'!$A$4:$C$56)-4;'Allgemeine Daten'!$C$3:$C$68;'Kalkulation(intern)'!$I$3:$I$68;"Fehlt") in die Zelle F3 geschrieben und führt dort eine Aktion durch, wenn diese vorher keinen Inhalt hat. Wenn der Nutzer die Formel mit irgend einem Inhalt überschreibt, passiert nichts. Ist das gewollt? Wenn nicht würde es reichen, einen Blattschutz zu installieren, wie es Ralf ja schon vorgeschlagen hat. Denn Formel oder irgend etwas in der Zelle F3, ist für mich nicht nachvollziehbar. Wie auch immer, die Aktion(en) der Formel könnte man auch per VBA durchführen und nur das Ergebnis in die Zelle F3 schreiben, das war mein Ansatz unter #2.
     
    Klaus-Dieter, 18. August 2023
    #7
  8. Clamsy User

    Problem mit Private Sub Worksheet_Change

    Hallo Klaus-Dieter,

    ja das ist genau so gewollt. Ein Blattschutz würde die Zelle schützen, dann kann man aber manuell nichts eintragen. Daher scheidet der Blattschutz aus.
    Wenn manuell nichts in diese Zelle eingetragen wird, dann soll per "default" die Formel gelten. Wenn der Anwender auch nur ein X oder J/N oder irgendwas einträgt in diese Zelle, dann soll die Formel nicht gelten, was ja dann auch nicht mehr geht, weil der Anwender die in dieser Zelle hinterlegte Formel überschrieben hat mit seiner manuellen Eingabe. Löscht aber der Anwender den Inhalt seiner manuellen Eingabe, also das X oder J/N oder irgendwas was vorher drin gestanden hat, dann ist ja der Zelleninhalt = "" und wenn der Zelleninhalt ="" ist, dann soll Excel hier per VBA die eigentliche Formel wieder eintragen.

    Genau diesen Effekt wünscht man sich.

    Ich bin jetzt nach Hause gekommen, ich werde heute Abend mal den Hinweis von RPP_63 anschauen und probieren.
     
  9. Clamsy User
    Hallo @RPP63_neu ,
    vielen Dank für die Tipp mit der Deutschen Formel und der Englischen Variante. Komischerweise hat das mit .FormulaLocal irgendwie nicht funktioniert. Warum auch immer.
    Ich habe jetzt in meiner Formel XVERWEIS zu XLOOKUP und VERWEIS zu LOOKUP geändert und es funktioniert jetzt.

    Super. Vielen lieben Dank für den Hinweis... Dann kann ich jetzt weiter machen
     
  10. HKindler
    HKindler hat Ahnung
    Hi,

    ein Tipp für die Zukunft: Wenn du nicht weißt, wie die Formel in VBAisch lautet: Trage sie einfach händisch in die Zelle ein und lese sie dann im Direkt-Fenster mit ?Range("F3").FormulaLocal oder einer anderen .Formulaxxx aus. Dann weißt du gleich, was du angeben musst. Du musst nur "-Zeichen drum herum setzen und berücksichtigen, dass eventuelle "-Zeichen inerhalb der Formel verdoppelt werden müssen.
     
    HKindler, 21. August 2023
    #10
Thema:

Problem mit Private Sub Worksheet_Change

Die Seite wird geladen...
  1. Problem mit Private Sub Worksheet_Change - Similar Threads - Problem Private Sub

  2. Problem mit COUNTIFS

    in Microsoft Excel Hilfe
    Problem mit COUNTIFS: Hallo allerseits Ich habe in Spalte B den Monat (bspw. "August"), in Spalte D immer zwei Verkehrsmittel mit / getrennt (bspw. "Auto / Zug" oder bspw. "Zug / Zug"...). In Spalte J soll gezählt...
  3. RGP-Problem: #WERT!

    in Microsoft Excel Hilfe
    RGP-Problem: #WERT!: Guten Tag allerseits, Habe ein paar Daten, für die ich einen quadratischen Trend berechnen möchte. Die RGP-Funktion liefert nur den Fehler #WERT!. Wenn ich hingegen für die gleichen Daten in einem...
  4. Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben

    in Microsoft Excel Hilfe
    Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben: Hallo zusammen, ich arbeite gerade an einer Vereinfachung für Bestellungen. Ich habe es hingekriegt, dass Kontrollkästchen an zu wählen sind und dann bestimmte Informationen kopiert werden. Jetzt...
  5. Problem im Code für Mehrfachauswahl in Dropdownliste

    in Microsoft Excel Hilfe
    Problem im Code für Mehrfachauswahl in Dropdownliste: Hallo beisammen, ich soll für meinen Stiefvater eine Tabelle über seine Bestandskunden und deren Produkte erstellen und bin dabei nun auf folgendes Problem gestoßen: Ich brauche in mehreren...
  6. benötige Hilfe bei Problem Feiertag und bestimmte Menge auf anderen Tag verschieben

    in Microsoft Excel Hilfe
    benötige Hilfe bei Problem Feiertag und bestimmte Menge auf anderen Tag verschieben: Hallo liebe Gemeinde, bei folgenden 2 Problemstellungen komme ich nicht zurecht. angenommen: 1. ich muss jeden Tag eine Menge von 1 Stück erbringen, außer an einem Feiertag, dann soll dieses...
  7. Wenn-Formel Problem

    in Microsoft Excel Hilfe
    Wenn-Formel Problem: Hallo, das hier ist meine Erste Frage in diesem Forum, also entschuldigt meine Schreibweise und falls es nicht so verständlich ist. folgende Situation: ich habe eine Tabelle, in der links...
  8. Problem: Gleicher Account für Privat und Organisation

    in Microsoft Teams Hilfe
    Problem: Gleicher Account für Privat und Organisation: Hallo, ich habe Probleme, weil ich mit der gleichen EMail sowohl "Privat" als auch in einer "Organisation" eingetragen bin. Wenn ich beispielsweise zu Teams von extern eingeladen werden, kann...
  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