Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Fehlermeldung Objekt erforderlich, bei ...

VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 12:18:05
Peter
... Einfügen eines Sheets aus anzugebender Datei.
Hallo geliebtes und hilfreiches Forum,
Ich hoffe ihr könnt mir mal wieder aus der Patche helfen. Bei dem u.a. Code kommt es zu unten angegebenr Fehlermeldung. Vieleicht hat jemand einen Rat für mich. Danke vorab !

Private Sub CommandButton1_Click()
'Eingabe Objektnummer = 1 bis 10'
swert = ActiveSheet.Range("a300")
'Eingabe Planjahr = 1 bis 10 - 2 bis 3'
awert = ActiveSheet.Range("b300")
Dim wks As Worksheet
If awert = 1 Then
' Hier erfolg immer Fehlermeldung Objekt erforderlich , auch bei den anderen Abfragen '
Set wks = swert ' Sheetname = 1'
Else
If awert = 2 Then
Set wks = swert & " - 2. Planjahr" ' Sheetname = 2 - 2. Planjahr (Bsp.) '
Else
If awert = 3 Then
Set wks = swert & " - 3. Planjahr" ' Sheetname = 2 - 3. Planjahr (Bsp.)'
End If
End If
End If
' Öffnendes Fenster , Dateiname wird angegeben '
Dim var As Variant
Dim sFiles As String
sFiles = "Objektbeurteilungen (*.xls), *.xls, "
sFiles = sFiles & "Objektbeurteilungen (*.xls), *.xls, "
sFiles = sFiles & "Objektbeurteilungen (*.xls), *.xls"
On Error Resume Next
' Hier soll er den Dateinamen, mit dem zu öffnenden Sheet kombinieren und einfügen '
var = Application.GetOpenFilename(sFiles) & wks
Sheets("Rechnung").Select
Sheets.Add Type:=var
wks.Select
End Sub

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 12:22:51
Josef
Hallo Peter!
Du willst einer Objektvariablen einen Wert zuweisen!
So sollte es gehn.

Set wks = Sheets(swert) ' Sheetname = 1'

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 12:29:26
Peter
Danke erstmal für die wirklich prompte Antwort. Aber...
Die Fehlermeldung ist zwar weck, allerdings fügt er auch kein Sheet ein !
Vieleicht kannst noch mla kurz über den Code schauen, Danke.
mfg
Anzeige
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 13:22:59
Josef
Hallo Peter!
Bin mir nicht ganz klarw, was der Code Machen soll!
Du weist zuerst der Variablen wks ein eine Tabelle zu! &lt -klar
Dann wählst du über den Dialog eine Exceldatei! &lt -klar
Dann willst du aus der gewählten Datei das Sheet "Rechnung" kopieren
und in deine Mappe einfügen? &lt -nicht klar
Wozu benötigst du wks? &lt -nicht klar
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 13:32:49
Peter
Servus,
Ich will nicht das Sheet Rechnung kopieren, sondern das in wks deklarierte und anschließend in meine Mappe einfügen.
Zur Erklärung in einem Userform wird vorher abgefragt welche Objektnummer und welches Planjahr er einfügen soll.
Objekte gib es 1 bis 10 (der Sheet aus der anderen Datei heisst dann auch 1,2,3,4,usw.).
Planjahre gibt es von einem bis zum dritten (Sheetname bei Objekt 1 / 2 Planjahr wäre demnach 1 - 2. Planjahr).
Danke.
mfg
Anzeige
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 13:55:32
Josef
Hallo Peter!
Nun sind alle Klarheiten beseitigt;-)
Ich würde das Problem anders lösen!
Zuerst würde ich die Datei mit "GetOpenFilename" auswählen.
Dann würde ich die Datei im Hintergrund öffnen und alle
Tabellenblätter in eine Listbox einlesen.
Aus der Listbox wählt man dann das gewünschte Blattt aus und
kopiert es in die Mappe.
Anschliessend wird die zuvor geöffnete Datei wieder geschlossen.
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 14:12:34
Peter
Erstmal Danke, hört sich vernünftig an.
Nur... hab ich ehrlich gesagt keinerlei ahnung wie ich das anstellen soll.
Ich versuch mich mal in der faq, wenn du aberspontan ne Lösung hättest wäre ich auch nicht abgeneigt ;)
mfg
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 14:40:33
Peter
Hab mir den unteren Code mal selber zusammengebastelt, aber leider funktioniert er nicht. Er fragt zwar nach der zu öffnenden Datei, zeigt aber danach weder die listbox noch fügt er einen Sheet ein.
Ich weiß ich werde langsam lästig, aber wenn du nochmal drüberschauen könntest. Danke

Private Sub CommandButton6_Click()
Dim var As Variant
Dim sFiles As String
sFiles = "Objektbeurteilungen (*.xls), *.xls, "
sFiles = sFiles & "Objektbeurteilungen (*.xls), *.xls, "
sFiles = sFiles & "Objektbeurteilungen (*.xls), *.xls"
On Error Resume Next
var = Application.GetOpenFilename(sFiles)
Worksheets(firstWks.Value).Select
Dim wks As Worksheet
firstWks.Clear
For Each wks In Worksheets
If wks.Name <> "Tabelle1" Then
firstWks.AddItem wks.Name
End If
Next wks
End Sub

Anzeige
AW: VBA Fehlermeldung Objekt erforderlich, bei ...
26.02.2005 14:43:52
Josef
Hallo Peter!
Hab dir mal schnell was zum weiterbasteln erstellt!
https://www.herber.de/bbs/user/18854.xls
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Ich kann mich gar nicht genug bedanken
26.02.2005 14:47:09
Peter
Danke, Danke, Danke !
Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Fehlermeldung „Objekt erforderlich“ beheben


Schritt-für-Schritt-Anleitung

  1. Code anpassen: Stelle sicher, dass du der Objektvariablen wks ein gültiges Worksheet zuweist. Der Fehler „VBA Objekt erforderlich“ tritt auf, wenn du versuchst, einen Wert zuzuweisen, der kein gültiges Objekt ist. Ersetze in deinem Code:

    Set wks = Sheets(swert) ' Setzt das Worksheet basierend auf dem Namen in swert
  2. Dateiauswahl implementieren: Verwende Application.GetOpenFilename, um die Excel-Datei auszuwählen, aus der du das Sheet einfügen möchtest. Achte darauf, den Dateinamen korrekt zu kombinieren:

    var = Application.GetOpenFilename(sFiles)
  3. Sheet einfügen: Achte darauf, das Sheet mit dem richtigen Befehl hinzuzufügen. Verwende:

    Sheets.Add Type:=var
  4. Fehlerbehandlung: Setze On Error Resume Next nur dann, wenn du sicher bist, dass du den Fehler ignorieren möchtest. Ansonsten ist es besser, die Fehlerbehandlung klar zu gestalten.


Häufige Fehler und Lösungen

  • Fehler „Objekt erforderlich“: Dieser Fehler tritt auf, wenn du versuchst, eine Variable zu setzen, die kein gültiges Objekt ist. Überprüfe die Zuweisungen in deinem Code.

  • Fehler beim Kompilieren: Wenn du an dieser Stelle eine Fehlermeldung erhältst, überprüfe, ob alle Variablen korrekt deklariert sind und ob die Objekte existieren.

  • Sheet wird nicht hinzugefügt: Stelle sicher, dass die Datei, die du öffnest, tatsächlich das gewünschte Worksheet enthält und dass der Name korrekt ist.


Alternative Methoden

  • Verwendung einer ListBox: Statt die Sheets direkt auszuwählen, kannst du eine ListBox verwenden, um die verfügbaren Sheets aus der ausgewählten Datei anzuzeigen. Dies erleichtert die Auswahl und minimiert Fehler.

  • Datei im Hintergrund öffnen: Öffne die Datei zuerst im Hintergrund, bevor du die Sheets in die ListBox lädst. So kannst du sicherstellen, dass die Sheets geladen werden:

    Dim wb As Workbook
    Set wb = Workbooks.Open(var)

Praktische Beispiele

Hier ist ein Beispiel, wie du eine ListBox zur Auswahl eines Sheets verwenden kannst:

Private Sub CommandButton1_Click()
    Dim var As Variant
    Dim wb As Workbook
    Dim wks As Worksheet
    Dim sFiles As String

    sFiles = "Excel-Dateien (*.xls), *.xls"
    var = Application.GetOpenFilename(sFiles)
    If var <> False Then
        Set wb = Workbooks.Open(var)
        For Each wks In wb.Worksheets
            ' Hier fügst du die Sheetnamen zur ListBox hinzu
            Me.ListBox1.AddItem wks.Name
        Next wks
        wb.Close False
    End If
End Sub

Tipps für Profis

  • Verwende Option Explicit: Setze am Anfang deines Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler wie „VBA Objekt erforderlich“ zu vermeiden.

  • Dokumentation: Halte deine Codes gut dokumentiert, um späteres Debugging zu erleichtern.

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung, damit du bei Problemen schnell die Ursache finden kannst.


FAQ: Häufige Fragen

1. Was bedeutet „VBA Objekt erforderlich“?
Diese Fehlermeldung tritt auf, wenn du versuchst, auf ein Objekt zuzugreifen, das nicht existiert oder nicht korrekt zugewiesen wurde.

2. Wie kann ich den Fehler „Fehler beim Kompilieren: Objekt erforderlich“ beheben?
Überprüfe, ob die Objektvariablen korrekt deklariert sind und ob sie gültige Objekte zugewiesen bekommen.

3. Was ist ein „VBA Runtime Error 52“?
Das ist ein Laufzeitfehler, der oft durch ungültige Dateipfade oder beim Zugriff auf nicht existierende Objekte verursacht wird.

4. Wie kann ich sicherstellen, dass meine Variablen korrekt sind?
Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies reduziert die Wahrscheinlichkeit von Tippfehlern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige