Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Typ Variant oder Objekt

Forumthread: Typ Variant oder Objekt

Typ Variant oder Objekt
28.10.2002 16:09:59
Kurt
Fehler beim Kompilieren:
Funktionsaufruf auf der linken Seite der Zuweisung muß dem Typ Variant oder Object zurückgeben.

FormatPercent(Sheets("Übersicht").Range("D26"), [0]) = ActiveSheet.OLEObjects("Combobox61")

Mein letzter verzweifelter Versuch scheint nun auch gescheitert zu sein. Sagt euch die oben genannte Fehlermeldung im bezug auf meine Zeile etwas ?

Gruß Kurt

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Typ Variant oder Objekt
28.10.2002 16:13:31
Michael Scheffler
Aber ja doch - wie kannst Du einer Formatanweisung ein Objekt zuweisen?

Wenn schon, dann erfolgen Objektzuweisungen mit Set. Was willst Du damit erreichen?

Re: Typ Variant oder Objekt
28.10.2002 16:23:03
Kurt
Ich will damit erreichen, daß er meine Prozentwerte, die in ComboBoxen stehen, nicht immer als Text automatisch umformatiert.

Gruß Kurt

Anzeige
Re: Typ Variant oder Objekt
28.10.2002 16:41:23
Michael Scheffler
Na dann sollte es doch wohl so ähnlich heißen:

Cell.Value = Format(OLEObjekt.Value)

Re: Typ Variant oder Objekt
28.10.2002 16:51:11
Kurt
Nur habe ich das und ca 10 andere Möglichkeiten schon versucht nur funktioniert alles nicht, da Excel stur auf sein Textformat besteht. Da kann man machen was man will. Makros schreiben, den Wert mit 1 multiplizieren, Zellen formatieren; nichts erzielt den gewünschten Erfolg.

Gruß Kurt (mittlerweile ein entnervter Kurt)

Anzeige
Re: Typ Variant oder Objekt
29.10.2002 09:38:05
Michael Scheffler
Hallo,

auch das ist klar, Du musst natürlich die Zelle voher formatieren, Du kannst nicht mit der linken Seite einer Anweisung das machen, was Du mit der rechten machen willst. In zwei Schritten wirds was.

Re: Typ Variant oder Objekt
29.10.2002 12:22:04
Kurt
Ich habe die Zielzellen das Format Prozent zugewiesen. Excel erkennt es auch, denn wenn ich doppelklicke auf eine der Zielzellen und sie anschließend verlasse,ändert sich das Format von Text in Prozent. Und das ganz ohne Makro, nur wäre es eben schön wenn er automatisch Prozent in die Zielzellen einträgt.

Irgendetwas schein ich nicht zu verstehen.
Gruß Kurt

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Typ Variant oder Objekt in Excel richtig verwenden


Schritt-für-Schritt-Anleitung

  1. Zellen formatieren: Stelle sicher, dass die Zielzellen, in die Du die Prozentwerte eintragen möchtest, im Format "Prozent" formatiert sind. Dies kannst Du über das Menü "Start" > "Zahlenformat" erreichen.

  2. Verwende die richtige Syntax: Anstatt direkt den Wert einer ComboBox zuzuweisen, solltest Du die Zelle in zwei Schritten ansprechen. Der korrekte Befehl könnte wie folgt aussehen:

    Cell.Value = Format(OLEObjekt.Value)
  3. Objektzuweisung mit Set: Wenn Du mit Objekten arbeitest, musst Du sicherstellen, dass Du Set verwendest. Zum Beispiel:

    Set myComboBox = ActiveSheet.OLEObjects("ComboBox61")
  4. Fehlerüberprüfung: Überprüfe, ob die ComboBox tatsächlich den erwarteten Wert liefert und ob der Wert in der richtigen Form vorliegt.


Häufige Fehler und Lösungen

  • Fehlermeldung "Typ Variant oder Objekt": Diese Fehlermeldung tritt häufig auf, wenn Du versuchst, einem Objekt einen Wert zuzuweisen, ohne Set zu verwenden. Stelle sicher, dass Du die richtige Syntax verwendest.

  • Werte werden als Text formatiert: Wenn Excel die Werte in der ComboBox als Text interpretiert, kann es helfen, die Zelle vorher zu formatieren und dann den Wert mit Val() oder CDbl() in einen Zahlentyp zu konvertieren.


Alternative Methoden

Eine Möglichkeit, um sicherzustellen, dass Werte in den Zielzellen als Prozentwerte erkannt werden, ist die Verwendung von Makros. Du könntest ein einfaches Makro schreiben, das die Werte nach dem Eintragen in die Zelle konvertiert. Beispiel:

Sub ConvertToPercentage()
    Dim cell As Range
    For Each cell In Selection
        If IsNumeric(cell.Value) Then
            cell.Value = cell.Value / 100
            cell.NumberFormat = "0.00%"
        End If
    Next cell
End Sub

Praktische Beispiele

Angenommen, Du hast eine ComboBox mit verschiedenen Prozentwerten und möchtest diese in eine Tabellenzelle übertragen. Hier ist ein Beispiel, wie Du dies umsetzen kannst:

Sub UpdatePercentage()
    Dim myComboBox As OLEObject
    Set myComboBox = ActiveSheet.OLEObjects("ComboBox61")

    If IsNumeric(myComboBox.Object.Value) Then
        ActiveSheet.Range("D26").Value = Format(myComboBox.Object.Value / 100, "0.00%")
    Else
        MsgBox "Bitte wählen Sie einen gültigen Prozentwert aus."
    End If
End Sub

Tipps für Profis

  • Verwende Option Explicit: Um sicherzustellen, dass Du keine Variablen vergisst, ist es eine gute Praxis, Option Explicit am Anfang Deiner Module zu verwenden.

  • Debugging: Nutze die Debugging-Tools in Excel, um den Code Schritt für Schritt zu überprüfen und festzustellen, wo das Problem liegt.

  • Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung, um Deine Makros robuster zu machen. Ein Beispiel wäre die Verwendung von On Error Resume Next.


FAQ: Häufige Fragen

1. Warum wird mein Wert immer noch als Text angezeigt?
Stelle sicher, dass die Zelle im richtigen Format ist und versuche, den Wert mit Val() zu konvertieren.

2. Wie kann ich die ComboBox zurücksetzen?
Um die ComboBox zurückzusetzen, kannst Du den folgenden Befehl verwenden:

ComboBox1.Value = ""

3. Gibt es eine Möglichkeit, die Formatierung global zu ändern?
Ja, Du kannst in den Excel-Optionen unter "Erweitert" die Standardformatierung für Zellen ändern.

4. Was mache ich, wenn Excel nicht reagiert?
Speichere Deine Arbeit und starte Excel neu. Möglicherweise gibt es ein Problem mit einem aktiven Makro.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige