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
    RPP63_neu Erfahrener User

    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
    RPP63_neu Erfahrener User
    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 Erfahrener User
    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. Outlook Problem

    in Microsoft Outlook Hilfe
    Outlook Problem: Hallo zusammen, ich brauche Hilfe bei folgendem Problem. Ich bekomme pro Woche ca. 44 Mails vom immer gleichen Absender, no-reply@deutschepost.de mit immer dem gleichen PDF-Anhang. Die...
  3. Problem bei Fußnote

    in Microsoft Word Hilfe
    Problem bei Fußnote: Hallo zusammen, habe folgendes Problem. Sobald ich eine Fußnote einfüge, erscheint automatisch am Ende der Seite eine Art Überschrift mit der Zahl 1. Hier der Screenshot. Habe schon alles...
  4. Excel found a problem with one or more formula references in this worksheet

    in Microsoft Excel Hilfe
    Excel found a problem with one or more formula references in this worksheet: Liebes Forum, ich habe ein Problem, das viel durch das Internet geistert, aber nirgendwo gibt es eine erfolgreiche Lösung für: "Excel found a problem with one or more formula references in this...
  5. Zählenwenns Problem

    in Microsoft Excel Hilfe
    Zählenwenns Problem: Hallo. Ich möchte zählen wie oft der Name Person 2 vorkommt aber nur dann wenn darüber ein anderer Name steht. Also in C3 sollte 5 mal stehen aber in C4 nichts bzw. 0 Dann in C8 die 2 und in C9...
  6. Problem mit Seitenzahlen/Seitenbeschriftung

    in Microsoft Word Hilfe
    Problem mit Seitenzahlen/Seitenbeschriftung: Hallo, ich schreibe gerade meine Masterarbeit und habe ein kurioses Problem, bei dem ich nicht weiterkomme. Ich habe eine "beidseitige" Vorlage für die Masterarbeit der Universität verwendet. Da...
  7. Data Transform, Problem with delimiter

    in Microsoft Excel Hilfe
    Data Transform, Problem with delimiter: Hello Community, I encounter one problem with excel. When I export table from csv I have a delimiter semicolon, but it doesn't work. I found solution. If I would go to Power Query Editor - Split...
  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