die methode range ist für das objekt _worksheet fehlgeschlagen

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von WI_Studenten.

    die methode range ist für das objekt _worksheet fehlgeschlagen

    Hallo zusammen,

    ich habe mir das andere Thema zu dem fall angeschaut leider hilft mir das nicht weiter.

    Mein Problem ist folgendes ich habe ein Dropdown-Menü wo ich bestimmte Arten von Arbeit auswählen kann.
    -Planung (Dropdown) 9 ist die Anzahl der Stunden die 300 sind erstmal belanglos

    siehe Bild

    Dann möchte ich wenn Planung ausgewählt wird, die Stunden von Planung die in einem anderen Blatt Stundenübersicht stehen aktualisiert werden.

    Private Sub Worksheet_Change(ByVal Target As Range)

    'Planung
    If Sheets(" Deckblatt").Range("D36") = "Planung" Then
    Sheets(" Deckblatt").Range("E36").Value = Sheets("Stundenzettel").Range("E24").Value
    End If

    End Sub

    Bekomme dann immer eine Fehlermeldeung

    die methode range ist für das objekt _worksheet fehlgeschlagen

    denke das sich das range iwie mit dem Worksheet_Change kollidiert

    wie schreibe ich den Code so um das es nicht mehr zu fehlermeldungen kommt ?

    bin leider in VBA nicht so bewandert

    Danke schonmal
    WI_Student
    Bilder
    • Planung.PNG

      1,33 kB, 473×56, 144 mal angesehen
    • VBA_Range_worksheet_fehlgeschlagen.PNG

      7,06 kB, 477×275, 184 mal angesehen
    • VBA_value_range_fehlgeschlagen.PNG

      6,33 kB, 466×270, 135 mal angesehen
    MFG
    WI_Studenten

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „WI_Studenten“ ()

    Dürfte eine Endlosschleife werden, da du durch deine Änderung das Event wieder aktivierst.
    Teste vll mal am Anfang der Eventprozedur ein
    Application.EnableEvents = False

    und am Ende dann wieder

    Application.EnableEvents = True

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    @xtts02 nein ist mir so reingerutzscht =D

    Danke für die schnelle Antwort
    hat mir sehr geholfen

    jetzt muss ich nur noch die gesamt zeit immer aktuallisierren

    habe es mit "Application.ThisWorkbook.RefreshAll" versucht bewirkt aber nichts

    was gibt es für alternativen?

    bzw gibt es ein großes Befehllexicon aller VBA Befehle ? wo ich nachschauen könnte wenn ich probleme habe

    mfg
    WI_Student
    Bilder
    • Gesamtstunden_VBA.PNG

      2,51 kB, 296×100, 154 mal angesehen
    MFG
    WI_Studenten

    WI_Studenten schrieb:

    Dann möchte ich wenn Planung ausgewählt wird,

    Da würde ich doch das Change-Event der DropdwonBox verwenden und nicht das Event der Zellen.
    Und wenn schon:
    Private Sub Worksheet_Change(ByVal Target As Range) schlägt bei jeder beliebigen Zelländerung zu.
    Dann frage wenigstens ab, ob die relevante Zelle geändert wird, bevor du Aktionen ergreifst.

    Visual Basic-Quellcode

    1. Private Sub Worksheet_Change(ByVal Target As Range)
    2. If Intersect(Target,Range("D36") Is Nothing Then Exit Sub
    3. If Range("D36").Value = "Planung" Then Range("E36").Value = Sheets("Stundenzettel").Range("E24").Value
    4. End Sub


    Noch eleganter ließe sich das mit Excel-Formeln anstatt VBA-Code lösen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --