Office: (Office 2013) Laufzeitfehler '438'

Helfe beim Thema Laufzeitfehler '438' in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Foren User, ich wollte eigentlich im VBA eine Wenn-Und-Dann-Sonst Funktion schreiben. Habe nach langer suche auch einen Ansatz gefunden,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von lebehrdo, 5. August 2015.

  1. lebehrdo Erfahrener User

    Laufzeitfehler '438'


    Hallo liebe Foren User,

    ich wollte eigentlich im VBA eine Wenn-Und-Dann-Sonst Funktion schreiben. Habe nach langer suche auch einen Ansatz gefunden, nur leider bringt er mir jetzt den Fehler

    "Laufzeitfehler 438: Objekt ünterstützt diese Eigenschaft oder Methode nicht"

    Habe bereits gelesen, dass es an den AddIns liegen kann, dadurch, dass ich selsbt keine eingefügt habe sind ja nur die bereits vorinstallierten vorhanden. Diese sind jedoch auch alle deaktiviert, Habe einfach mal ein Bild davon gemacht und dieses angehänt, ich hoffe das ist so korrekt.

    Es steht folgendes in meinem VBA:

    Sub Profilanzeige()
    If Worksheets("Übersicht").Cell(B27) = "Länge60" And Worksheets("Übersicht").Cell(D27) = "5" And Worksheets("Übersicht").Cell(F27) = "3510 5,0 8" Then
    Worksheets("Übersicht").Cell("$H$31") = "Nr450510000"
    Else
    Worksheets("Übersicht").Cell("$H$31") = ""

    End If
    End Sub


    kann mir vllt irgend jemand helfen???



    Vielen Dank schon einmal im Voraus

    Grüße Dominik

    Laufzeitfehler '438' Übersicht.jpg
     
    Zuletzt bearbeitet: 5. August 2015
    lebehrdo, 5. August 2015
    #1
  2. schatzi Super-Moderator
    Hallo!

    ungetestet:
    Code:
    Sub Profilanzeige()
    With Worksheets("Übersicht")
        If .Range("B27") = "Länge60" And .Range("D27") = "5" And .Range("F27") = "3510 5,0 8" Then
            .Range("H31") = "Nr450510000"
        Else
            .Range("H31") = ""
        End If
    End With
    End Sub
     
    schatzi, 5. August 2015
    #2
  3. Exl121150 Erfahrener User
    Hallo Dominik,

    diese Fehlermeldung ist für mich verständlich, denn:
    1) eine Eigenschaft "Cell" kennt das Worksheet-Objekt nicht, denn diese heißt "Cells"
    2) die Cells-Eigenschaft benötigt 1 bzw. 2 Parameter: um zB. die Zelle F27 anzusprechen, lautet die Eigenschaft .Cells(27,6), also Zeile 27 Spalte 6

    Will man jedoch eine Adressierung, die der in den Arbeitsblattformeln entspricht, muss man die .Range-Eigenschaft verwenden: also um die Zelle F27 anzusprechen, lautet die Eigenschaft dann .Range("F27"), wobei man dann den Parameter als String (also in Anführungszeichen) verwenden muss.

    Beide Eigenschaften/Methoden liefern eigentlich wieder ein Objekt (nämlich das Range-Objekt), das seinerseits wieder mehrere Eigenschaften/Methoden besitzt: Will man den Wert, der sich in einer Zelle befindet, ansprechen, müsste die vollständige Formulierung zB. lauten:
    Worksheets("Übersicht").Range("F27").Value
    Da die Value-Eigenschaft des Range-Objektes die Standard-Eigenschaft dieses Objektes ist, kann man sie auch weglassen - der Compiler ergänzt es automatisch im erzeugten Code, ohne zu protestieren.

    Da du in deinem Code stets nur Zellen aus dem Arbeitsblatt "Übersicht" verwendest, gibt es eine weitere Abkürzungsmöglichkeit in VBA, indem man den betreffenden VBA-Code in einen WITH-Block einbettet. Im Blockinneren braucht man dann das Objekt, das auf das Schlüsselwort WITH folgt, nur mehr in abgekürzter Form als Punkt vor der betreffenden Eigenschaft/Methode anzuführen, zB. statt
    Worksheets("Übersicht").Range("F27")=""
    kann man schreiben:
    With Worksheets("Übersicht")
    .Range("F27")=""
    End With

    Passt man deinen Code korrekt an, erhält man folgenden VBA-Code:
    Code:
    Sub Profilanzeige()
      With Worksheets("Übersicht")
        If .Range("B27") = "Länge60" And .Range("D27") = "5" And .Range("F27") = "3510 5,0 8" Then
          .Range("$H$31") = "Nr450510000"
        Else
          .Range("$H$31") = ""
        End If
      End With
    End Sub
    
     
    Zuletzt bearbeitet: 5. August 2015
    Exl121150, 5. August 2015
    #3
  4. lebehrdo Erfahrener User

    Laufzeitfehler '438'

    Hei,

    vielen Dank für die vielen und schnellen Antworten.

    Ich werde das umgehend testen und euch dann Rückmeldung geben.


    Grüße

    Dominik
     
    lebehrdo, 5. August 2015
    #4
  5. lebehrdo Erfahrener User
    Vieeeeeelen Dank funktioniert einwand frei.

    Ich kann dieses Forum echt nur weiter empfehlen
     
    lebehrdo, 5. August 2015
    #5
  6. lebehrdo Erfahrener User
    Hallo nochmal,

    ich hätte da noch eine ergänzende Frage, im oben genannten Problem können die Zellen B27, D27, F27 verändert werden.

    Sobald dann eine der Zellen verändert werden soll das oben beschriebene Makro automatisch nocheinmal gestartet werden, sodass die Zelle H31 die neu generierte Nummer anzeigt.

    Kann mir da vllt jemand helfen?


    Danke schon mal
     
    lebehrdo, 14. August 2015
    #6
  7. lebehrdo Erfahrener User
    habe mal folgendes probiert, was aber nicht funktioniert.


    'Makro automatisch aktuallisieren'

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Adress = "$B$27" Or Target.Adress = "$D$27" Or Target.Adress = "$F$27" Then
    Profilanzeige
    End If


    End Sub


    Danke
     
    lebehrdo, 14. August 2015
    #7
  8. Exl121150 Erfahrener User

    Laufzeitfehler '438'

    Hallo Dominik,

    da du uns Helfern nur VBA-Makros vorgestellt hast, können wir nur beurteilen, was wir in diesen Makros sehen. Ich versuche möglichst präzise zu beschreiben, was ich in deinen 2 letzten Postings sehe:

    1)Du hast in ein Code-Modul eines Arbeitsblattes die durch Ereignisse in nur diesem Arbeitsblatt aufrufbare SUB "Worksheet_Change" eingefügt.
    1a) Und zwar wird diese SUB stets dann aufgerufen, wenn in diesem einen Arbeitsblatt eine Zelle ihren Wert ändert.
    1b) Zellen, in denen sich Formeln befinden, und sich deshalb ändern, weil sich ihr Resultat ändert, bewirken keinen Aufruf dieser SUB.
    1c) Dagegen bewirken Zellen, die sich deswegen ändern, weil in sie ein anderer Wert zB. über die Tastatur eingegeben wurde, einen Aufruf dieser SUB.

    2) Diese SUB "Worksheet_Change" besitzt einen Parameter/Argument namens "Target", das als "Range"-Objekt typisiert ist. Über diese Variable wird der Zellbereich, in dem die Wertänderung lt. Punkt 1c) stattgefunden hat, an die SUB übergeben.
    2a) Dort fragst du ab, ob sich die Zelladresse (dieser geänderten Zelle) entweder in "B27" oder "D27" oder ab in "F27" befand.
    2b) Trifft Punkt 2a) zu, so rufst du die SUB "Profilanzeige" auf.
    2c) Trifft Punkt 2a) nicht zu, passiert überhaupt nichts weiter.

    3) Die SUB "Profilanzeige", die in Punkt 2b) aufgerufen wird, bewirkt, dass im Arbeitsblatt "Übersicht" 3 Zellen überprüft werden, ob sie gleichzeitig einen bestimmten Wert besitzen:
    3a) die Zelle Übersicht!B27 muss den Zeichenkettenwert "Länge60" enthalten und
    3b) die Zelle Übersicht!D27 muss den Zeichenkettenwert "5" enthalten und
    3c) die Zelle Übersicht!F27 muss den Zeichenkettenwert "3510 5,0 8" enthalten.
    3d) Treffen die Punkte 3a), 3b) und 3c) gleichzeitig zu, wird in die Zelle Übersicht!H31 der Zeichenkettenwert "Nr450510000" gespeichert.
    3e) Trifft mindestens einer der Punkte 3a), 3b) oder 3c) nicht zu, wird in die Zelle Übersicht!H31 der Zeichenkettenwert "" gespeichert.

    Das ist alles, was geschieht.
    Da du enttäuscht bist von der Funktionsweise deiner Makros, muss in dieser meiner Aufzählung gegenüber deinen Wünschen eine Abweichung bestehen.
     
    Exl121150, 14. August 2015
    #8
  9. lebehrdo Erfahrener User
    Hallo,

    vielen Dank für diese informationen.

    Was ich versucht habe zu erstellen, ist, dass sobald sich die Zelle H31 auf Grund der Abfragen 3a), 3b) und 3c) ändert, die SUB"Worksheet_Change" aufruft.

    Hinter der Bezeichnung Nr450510000 befindet sich eine Grafik, welche dann angezeigt wird.

    Wird 3a), 3b) oder 3c) geändert, ändert sich auch der Wert in H31, hinter diesem geänderten Wert, wie z.B. Nr450510001 befindet sich auch eine Grafik. Damit diese aber angezeigt wird muss die Sub"Worksheet_Change" aktiv werden.



    Ich hoffe ich habe dies genau genug umschreiben können.


    grüße

    Dominik
     
    lebehrdo, 19. August 2015
    #9
Thema:

Laufzeitfehler '438'

Die Seite wird geladen...
  1. Laufzeitfehler '438' - Similar Threads - Laufzeitfehler '438'

  2. VBA:Laufzeitfehler beim Einlesen in Variable

    in Microsoft Excel Hilfe
    VBA:Laufzeitfehler beim Einlesen in Variable: Hallo Excel Freaks, ich habe eine Frage, ein Problem wo ich nicht mehr weiter weis.... In eine Exceldatei kopiere ich mir über Makro auf ein Tabellenblatt von anderen Exceldateien das...
  3. Laufzeitfehler 438 für Set bei Workbook+Worksheet

    in Microsoft Excel Hilfe
    Laufzeitfehler 438 für Set bei Workbook+Worksheet: Hallo Zusammen, ich versuche grade meinen Code etwas übersichtlicher zu gestalten und habe die genutzten Workboks und Worksheets über Set kurzen Variablen zugewiesen. Dabei bin ich aber auf...
  4. laufzeitfehler 438: Objekt unterstützt Eigenschaft Methode nicht

    in Microsoft Excel Hilfe
    laufzeitfehler 438: Objekt unterstützt Eigenschaft Methode nicht: Hallo zusammen, ich habe bei folgendem Code den Laufzeitfehler 438 und komme einfach nicht weiter. Code: If Dir(varname) "" Then Set WB_C = Workbooks.Open(varname) Worksheets(strname).Select...
  5. Problem Laufzeitfehler 438

    in Microsoft Access Hilfe
    Problem Laufzeitfehler 438: Ich erhalte beim Starten meiner Anwendung in Acc2010 einen Laufzeitfehler '438' die Verweise habe ich geprüft, sind auch da und regestriert. was kann ich machen? in der Zeile Me!Gridliste.refrech...
  6. Laufzeitfehler 438 nach Benutzerkonten wechsel

    in Microsoft Excel Hilfe
    Laufzeitfehler 438 nach Benutzerkonten wechsel: Gute Tag, Wir haben hier eine Excel-Tabelle geschickt bekommen, welche für Arbeitszeiten berechnung genutzt werden soll. (Welche Version für die Programmierung genutzt wurde ist mir nicht...
  7. Makro -> Laufzeitfehler 438

    in Microsoft Excel Hilfe
    Makro -> Laufzeitfehler 438: Habe ein Makro, das für Excel 2002 geschrieben wurde. Das hatte mir hier freundlicherweise schon jemand gebastelt. http://www.office-hilfe.com/support/viewtopic.php?p=46570#46570 Das Makro...
  8. Laufzeitfehler 438

    in Microsoft Excel Hilfe
    Laufzeitfehler 438: Man hatte mir freundlicherweise schon geholfen und ich war ganz happy, weil auf meinem PC alles funktioniert. Leider gibt es jetzt auf anderen PCs Probleme, der Laufzeitfehler 438 tritt auf. 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