Office: (Office 2016) Worksheet_Change auf bestimmte Zeilen beschränken

Helfe beim Thema Worksheet_Change auf bestimmte Zeilen beschränken in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; 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... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Fliesenfachgeschaeft, 29. Mai 2018.

  1. 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 soll nur in den Zeilen:

    15,17,19 und 30 angewendet werden.


    Wahrscheinlich gar nicht schwer, aber ich bekomme es nicht hin. Vielen Dank schon mal für Eure Hilfe.

    Herzliche Grüße
    Sebastian
     
    Fliesenfachgeschaeft, 29. Mai 2018
    #1
  2. lupo1
    lupo1 Tutorial Guru
    Äußeres IF drumrum:

    If Target.Row = 15 Or Target.Row = 17 Or Target.Row = 19 Or Target.Row = 30 Then
    ::
    End If
     
    lupo1, 29. Mai 2018
    #2
  3. Beverly
    Beverly Erfahrener User
    Hi Sebastian,

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Row
            Case 15, 17, 19, 30
                If Target.Column = 9 Then
                    Target.Offset(0, 1).Value = Target.Value * 1.19
                ElseIf Target.Column = 12 Then
                    Target.Offset(0, -3).Value = Target.Value / 1.19
                End If
        End Select
    End Sub
    
    
    Bis später,
    Karin
     
    Beverly, 29. Mai 2018
    #3
  4. Worksheet_Change auf bestimmte Zeilen beschränken

    Heyyy Karin,

    vielen Dank. Das klappt wunderbar. Ich habe aber nun ein Problem, vielleicht kannst Du mir nochmal helfen es zu lösen.
    Die Tabelle enthält netto, brutto und "in % von UPE". Ich habe den Code noch um ein weiteres Kriterium geöffnet, so dass ich auch den Prozentwert eingeben kann und sich der Rest berechnet. Dies lasse ich aber nur in einer Zeile (17) zu.

    Nun habe ich aber das Problem, dass ich sobald es eine nachträgliche UPE Änderung gibt (Zeile 15), der Prozentwert in Zeile 17 (der ja abhängig ist von der UPE in Zeile 15 nicht mit ändert. Ich probiere mich jetzt seit Stunden dies zu lösen, bekomme es aber nicht hin. Hier mein aktueller Stand:
    Aber weder bekomme ich es damit hin noch weiß ich wie ich es in den obigen Code integriere, dass es in einem Ablauf durchläuft. Ich würde gerne eine Prüfung einbauen (Wenn Zelle L15 sich ändert, dann rechne L17 / L15.

    Ich hoffe dass dies geht...

    Danke und herzliche Grüße
    Sebastian
     
    Zuletzt bearbeitet: 30. Mai 2018
    Fliesenfachgeschaeft, 29. Mai 2018
    #4
  5. Beverly
    Beverly Erfahrener User
    Hi Sebastian,

    was hat der untere Code mit dem oberen zu tun? Im Tabellenblatt kann es doch nur 1 Change-Ereignis geben und nicht 2. Außerdem bezieht sich der untere Code ausschließlich auf Zelle L15 und nicht auf Zeile 15.

    Bis später,
    Karin
     
    Beverly, 30. Mai 2018
    #5
  6. Hallo Karin,

    sorry war im Urlaub.

    Mit nachfolgendem Bild kann ich vielleicht besser deutlich machen was ich möchte:
    Worksheet_Change auf bestimmte Zeilen beschränken Excel_Screenshot.JPG

    Ich habe den Code wie folgt integriert, allerdings ist da ein Fehler drin und es stürzt ab:
    Die Herausforderung dass ich in Zeile 17 sowohl nett, brutto und auch in % eingeben kann. Das habe ich noch hinbekommen, allerdings stürzt mir aufgrund eines Fehlers jetzt immer Excel ab. Das Problem (und da habe ich mit dem obigen Code rumprobiert: Wenn ich nachdem ich in Zeile 17 einen Wert eingegeben habe und dann den Wert in Zeile 15 (UPE, darauf referieren die %-Werte) ändere, bleibt der Prozentwert gleich und stimmt dann nicht mehr. Und da möchte ich einen Befehl integrieren, der quasi sagt (Wenn in Zeile 15 etwas geändert wird, dann rechne L17/L15.)

    Ich hoffe ich konnte es verständlich beschreiben.

    Danke und liebe Grüße
     
    Fliesenfachgeschaeft, 7. Juni 2018
    #6
  7. Beverly
    Beverly Erfahrener User
    Hi,

    also ich würde den Code so schreiben:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Row
            Case 17
                If Target.Column = 13 Then
                    Target.Offset(0, -4).Value = Target.Value * Range("I16")
                ElseIf Target.Column = 9 Then
                    Target.Offset(0, 1).Value = Target.Value * 1.19
                ElseIf Target.Column = 12 Then
                    Target.Offset(0, 1).Value = Target.Value / Range("L16")
                End If
            Case 15, 19, 30
                If Target.Column = 9 Then
                    Target.Offset(0, 1).Value = Target.Value * 1.19
                ElseIf Target.Column = 12 Then
                    Target.Offset(0, -3).Value = Target.Value / 1.19
                End If
            End Select
    End Sub
    
    

    Testen kann ich ihn nicht da mir deine Mappe nicht vorliegt.

    Noch ein Hinweis: benutze zum Posten von strukturiertem Code das "#"-Zeichen über dem Antwortfenster.


    Bis später,
    Karin
     
    Beverly, 7. Juni 2018
    #7
  8. Worksheet_Change auf bestimmte Zeilen beschränken

    Hi,

    super vielen Dank. Hast Du eine Idee wie ich es nun integriert bekommen, dass sobald sich der Wert in Zelle L15 ändert die Zelle M17 neu berechnet wird (L17/L15)?

    LG
     
    Fliesenfachgeschaeft, 7. Juni 2018
    #8
  9. Beverly
    Beverly Erfahrener User
    Hi,

    ergänze einfach am Anfang oder am Ende des bisherigen Codes diese Zeile

    Code:
        If Target.Cells(1).Address(False, False) = "L15" Then Range("M17") = Range("L17") / Target.Cells(1).Value
    
    
    Bis späer,
    Karin
     
    Beverly, 8. Juni 2018
    #9
  10. Das hat jetzt geklappt.

    Vielen herzlichen Dank für die Unterstützung.
     
    Fliesenfachgeschaeft, 13. Juni 2018
    #10
  11. Hallo Karin,

    ich habe den folgenden Code in der Datei eingefügt.

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Select Case Target.Row
            Case 17
                If Target.Column = 13 Then
                    Target.Offset(0, -4).Value = Target.Value * Range("I16")
                ElseIf Target.Column = 9 Then
                    Target.Offset(0, 1).Value = Target.Value * 1.19
                ElseIf Target.Column = 12 Then
                    Target.Offset(0, 1).Value = Target.Value / Range("L16")
                End If
            Case 15, 19, 30
                If Target.Column = 9 Then
                    Target.Offset(0, 1).Value = Target.Value * 1.19
                ElseIf Target.Column = 12 Then
                    Target.Offset(0, -3).Value = Target.Value / 1.19
                End If
            End Select
        If Target.Cells(1).Address(False, False) = "L15" Then Range("L17") = Range("M17") * Target.Cells(1).Value
    End Sub
    
    Der funktioniert auch. Allerdings stürzt die gesamte Datei unregelmäßig ab und gibt folgende Fehlermeldung aus:
    Worksheet_Change auf bestimmte Zeilen beschränken Absturz.JPG

    Ich bin mit meinem Latein am Ende. Woran kann das liegen? Kann man das heilen?

    Danke
    Sebastian

    P.S. die Raute gibt es leider nicht ;))
     
    Fliesenfachgeschaeft, 2. Juli 2018
    #11
  12. Beverly
    Beverly Erfahrener User
    Hi Sebastian,

    und welche Codezeile wird dabei markiert?


    Doch, das Zeichen "#" gibt es schon - du musst auf den Schalter "Erweitert" unter dem Antwortfenster klicken um zu den erweiterten Optionen zu gelangen.

    Bis später,
    Karin
     
    Beverly, 3. Juli 2018
    #12
  13. Worksheet_Change auf bestimmte Zeilen beschränken

    Hallo Karin,

    das mit der Raute habe ich doch noch gefunden ;))

    Es kommt das angezeigte Fenster und sobald ich auf Debuggen klicke, geht das Fenster auf und bevor es was anzeigt stürzt Excel ab. Daher sehe ich leider keine Markierung.

    • Habe gerade mal im VBA Fenster den Code des Objektes aufgemacht und dann funktioniert es.
    • Außerdem funktioniert es wenn Blattschutz raus ist (Objekte bearbeiten und Szenarios bearbeiten sind da aber ohnehin freigegeben.

    Vielleicht ist das ein Hinweis, der hilft. Bin echt ratlos. Versuche jetzt nochmal ein einer leeren Datei das ganze zu auszuführen ob das selbe Problem besteht.

    Danke und Grüße
    Sebastian
     
    Fliesenfachgeschaeft, 3. Juli 2018
    #13
  14. Also ich habe eine neue Datei mit dem selben Aufbau erstelle, aber nur ein Arbeitsblatt. Es gab keine Probleme.

    Dann habe ich in meiner Datei einfach ein neues Arbeitsblatt erstellt und alle neu verknüpft und es funktionierte. Nach einiger weiterer Bearbeitung plötzlich wieder diese Abstürze. Ich kann mir einfach keinen Reim drauf machen. Habe es rauf und runter getestet. Es passiert auch sowohl bei Nutzung der "Tab" Taste als auch bei "Enter". Völlig ohne einen nachvollziehbaren Bezug. Hast Du eine Idee was ich noch probieren kann?

    Was mir auch noch aufgefallen ist: Kann man es integrieren, dass wenn man eine "0" eingibt das ganz nicht in den Debug Modus geht? Da entsteht dann ein Fehler.

    Herzliche Grüße
    Sebastian
     
    Fliesenfachgeschaeft, 3. Juli 2018
    #14
  15. Beverly
    Beverly Erfahrener User
    Hi Sebastian,

    wenn der Fehler nur bei gesetztem Blattschutz auftritt, dann musst du den Blattschutz zu Beginn des Codes aufheben:

    Code:
    ActiveSheet.Unprotect Password:="DeinPW"
    Den Zusatz Password selbstverständlich nur, wenn du ein Passwort verwendest.

    Am Ende des Codes musst du dann das Blatt wieder schützen - wie der Code dafür aussieht kannst du mit dem Makrorekorder aufzeichnen.

    Bis später,
    Karin
     
    Beverly, 3. Juli 2018
    #15
Thema:

Worksheet_Change auf bestimmte Zeilen beschränken

Die Seite wird geladen...
  1. Worksheet_Change auf bestimmte Zeilen beschränken - Similar Threads - Worksheet_Change bestimmte Zeilen

  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. VBA - Fehler beim Kompilieren (Mehrdeutiger Name - Worksheet_Change)

    in Microsoft Excel Hilfe
    VBA - Fehler beim Kompilieren (Mehrdeutiger Name - Worksheet_Change): Hallo Zusammen, wer kann mir helfen? Ich möchte/muss die nachfolgenden Codes irgendwie Zusammenführen weil die Prüfung augenscheinlich so nicht funktioniert. Ansich der selbe Code mit...
  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