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

Mit Excel(VBA)programmierung eine Datei öffnen

Forumthread: Mit Excel(VBA)programmierung eine Datei öffnen

Mit Excel(VBA)programmierung eine Datei öffnen
11.07.2002 17:08:17
Sebastian
Dieser Code kann jede *.xls Datei öffnen, aber nicht die, die es öffnen soll.
Excel sagt dann immer:
"Kann Datensatz ... nicht lesen!" Weiterhin jeden Fehler anzeigen?"
Er gibt dann nur eine Spalte von 4 aus.

ICH HOFFE ES KANN MIR JEMAND SAGEN, woran das liegt.

Der Code lautet:
Public OQOneu As String

Public Sub Dateiauswaehlen()

If MsgBox("Sind Sie sicher, dass Sie neue Daten importieren möchten?", vbYesNo) = vbYes Then
OQOneu = Application.GetOpenFilename("Excel-Dateien, *.xls", , "Bitte Datei angeben")
Call Dateioeffnen
Else
MsgBox "Sie haben sich entschlossen, keine Daten zu importieren!", vbInformation
End If
End Sub

Public Sub Dateioeffnen()

Workbooks.open OQOneu, , yes


End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mit Excel(VBA)programmierung eine Datei öffnen
11.07.2002 18:30:25
Dieter Klemke
Hallo Sebastian,
dein Code funktioniert bei mir reibungslos (Excel 2000).
Welchen Wert hat den der Parameter yes?
Kannst du den nicht weglassen.
Läßt sich die in Rede stehende Arbeitsmappe manuell öffnen?
MfG
Dieter
Re: Mit Excel(VBA)programmierung eine Datei öffnen
11.07.2002 18:58:34
Sebastian
Die Datei lässt sich manuell reibungslos öffnen!
Öffne ich eine andere Datei, funktioniert es reibungslos mit VBA
Anzeige
Re: Mit Excel(VBA)programmierung eine Datei öffnen
11.07.2002 20:51:34
Dieter Klemke
Hallo Sebastian,
ich schlage zur Problemvereinfachung das folgende Testprogramm vor:

Unter "C:\Verzeichnis\DeineDatei.xls" den kompletten Pfad und Dateinamen.
Wenn das funktioniert, müßte dein erstes Programm auch klappen.
MfG
Dieter
Re: Mit Excel(VBA)programmierung eine Datei öffnen
12.07.2002 10:03:38
Sebastian
Tut mir leid, aber so funktioniert es auch nicht!
Wenn ich sie manuell öffne, dann klappt es.
Aber so wie du es beschrieben hast auch nicht.
Anzeige
Re: Mit Excel(VBA)programmierung eine Datei öffnen
13.07.2002 10:21:26
Dieter Klemke
Hallo Sebastian,
da fällt mir auch nichts mehr ein.
Kannst du mir die Datei - ggfs. mit anonymisierten Daten - per eMail schicken? Meine Adresse
Dieter.Klemke@t-online.de
MfG
Dieter
Re: Mit Excel(VBA)programmierung eine Datei öffnen
15.07.2002 08:39:07
Sebastian
Vielen Dank Dieter für deine Hilfe! Aber ich habe das Problem gelöst.
Ich habe zufällig die Datei neu abgespeichert und dabei bemerkt, dass es nicht wirklich eine Excel-Arbeitsmappe war sondern etwas anderes. Jetzt habe ich sie als Excel-Arbeitsmappe abgespeichert und alles funktioniert. Vielen DAnk nochmal!
Anzeige
Vergleichen, hinzufügen, dazurechnen ...
15.07.2002 08:41:38
Sebastian
Hallo Dieter! Vielleicht kannst du mir ja auch hierbei helfen.

Ich möchte gerne dass ich via VBA folgedes machen:
Ich habe eine Arbeistmappe "Gesamt", dann habe ich eine Arbeitsmappe, diin Excel paralell geöffnet ist. (Diese Datei kommt jede Woche neu)
Nun möchte ich aus der Datei, die jede Woche kommt die Datensätze mit der Gesamt-Arbeitsmappe vergleichen.
Das bedeutet:
VBA soll gucken, existiert die Kundennummer schon?
- Dann addiere die Bestellanzahl aus der wöchentlichen Mappe mit denen aus der Gesamtmappe zusammen und schreibe sie in dass Feld, wo die Bestellanzahl in der Gesamtmappe der Kundennummer steht.
- Dann addiere auch die Bestellsumme aus der wöchentlichen Mappe mit denen aus der Gesamtmappe zusammen und schreibe sie in dass Feld, wo die Bestellsumme in der Gesamtmappe der Kundennummer steht.

So, existiert die Kundennummer noch nicht, füge den Datensatz ans Ende der ganzen Datensätze hinzu.

So sieht der Code, den ich bisher habe aus:

Dim ZAEHLER As Integer

Public Sub Vergleichen()
MsgBox "Die Vergleichung läuft!"


Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For x = 1 To Zeilenanzahl

For ZAEHLER = 6 To Selection.End(xlDown).Select
If Workbooks("oqo_gesamt").Sheets("oqo").Cells(ZAEHLER, 2).Value <> Workbooks(OQOneu).Sheets("oqo").Cells(ZAEHLER - 1, 2).Value Then

ElseIf Workbooks("oqo_gesamt").Sheets("oqo").Cells(ZAEHLER, 2).Value <> Workbooks(OQOneu).Sheets("oqo").Cells(ZAEHLER - 1, 2).Value Then


End If
Next
Next x

End Sub

Anzeige
Vergleichen, hinzufügen, dazurechnen ...
15.07.2002 08:48:20
Sebastian
Hallo Dieter! Vielleicht kannst du mir ja auch hierbei helfen.

Ich möchte gerne dass ich via VBA folgedes machen:
Ich habe eine Arbeistmappe "Gesamt", dann habe ich eine Arbeitsmappe, diin Excel paralell geöffnet ist. (Diese Datei kommt jede Woche neu)
Nun möchte ich aus der Datei, die jede Woche kommt die Datensätze mit der Gesamt-Arbeitsmappe vergleichen.
Das bedeutet:
VBA soll gucken, existiert die Kundennummer schon?
- Dann addiere die Bestellanzahl aus der wöchentlichen Mappe mit denen aus der Gesamtmappe zusammen und schreibe sie in dass Feld, wo die Bestellanzahl in der Gesamtmappe der Kundennummer steht.
- Dann addiere auch die Bestellsumme aus der wöchentlichen Mappe mit denen aus der Gesamtmappe zusammen und schreibe sie in dass Feld, wo die Bestellsumme in der Gesamtmappe der Kundennummer steht.

So, existiert die Kundennummer noch nicht, füge den Datensatz ans Ende der ganzen Datensätze hinzu.

So sieht der Code, den ich bisher habe aus:

Dim ZAEHLER As Integer

Public Sub Vergleichen()
MsgBox "Die Vergleichung läuft!"


Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For x = 1 To Zeilenanzahl

For ZAEHLER = 6 To Selection.End(xlDown).Select
If Workbooks("oqo_gesamt").Sheets("oqo").Cells(ZAEHLER, 2).Value <> Workbooks(OQOneu).Sheets("oqo").Cells(ZAEHLER - 1, 2).Value Then

ElseIf Workbooks("oqo_gesamt").Sheets("oqo").Cells(ZAEHLER, 2).Value <> Workbooks(OQOneu).Sheets("oqo").Cells(ZAEHLER - 1, 2).Value Then


End If
Next
Next x

End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mit Excel VBA eine Datei öffnen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei)", gehe auf Einfügen und wähle Modul.
  3. Code eingeben: Füge den folgenden Code in das Modul ein:
Public OQOneu As String

Public Sub Dateiauswaehlen()
    If MsgBox("Sind Sie sicher, dass Sie neue Daten importieren möchten?", vbYesNo) = vbYes Then
        OQOneu = Application.GetOpenFilename("Excel-Dateien, *.xls", , "Bitte Datei angeben")
        Call Dateioeffnen
    Else
        MsgBox "Sie haben sich entschlossen, keine Daten zu importieren!", vbInformation
    End If
End Sub

Public Sub Dateioeffnen()
    Workbooks.Open OQOneu
End Sub
  1. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle Dateiauswaehlen und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Excel kann Datei nicht lesen: Stelle sicher, dass die Datei tatsächlich eine Excel-Arbeitsmappe ist. Manchmal kann es vorkommen, dass die Datei in einem anderen Format vorliegt.
  • Parameter 'yes' nicht definiert: Im ursprünglichen Code von Sebastian wurde yes verwendet, was zu einem Fehler führt. Entferne diesen Parameter, um die Funktionalität zu gewährleisten.
  • Datei lässt sich manuell öffnen: Wenn die Datei manuell geöffnet werden kann, aber nicht über VBA, könnte es an den Berechtigungen oder dem Dateiformat liegen.

Alternative Methoden

  • Datei mit Pfad öffnen: Anstatt die Datei über einen Dialog auszuwählen, kannst Du den vollständigen Pfad angeben:
Workbooks.Open "C:\Verzeichnis\DeineDatei.xls"
  • Excel VBA andere Datei öffnen: Du kannst auch mehrere Dateien nacheinander öffnen, indem Du die Workbooks.Open-Methode mehrfach verwendest.

Praktische Beispiele

  • Dateien mit Filter öffnen: Du kannst den Dialog so anpassen, dass nur bestimmte Dateiformate angezeigt werden:
OQOneu = Application.GetOpenFilename("Excel-Dateien, *.xls; *.xlsx", , "Bitte Datei angeben")
  • Sub-Dateien öffnen: Wenn Du eine Sub-Datei öffnen möchtest, kannst Du die Methode wie folgt anpassen:
Public Sub SubDateiOeffnen()
    Dim SubDatei As String
    SubDatei = "C:\Verzeichnis\SubDatei.xls"
    Workbooks.Open SubDatei
End Sub

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass Dein Code robust ist:
On Error Resume Next
Workbooks.Open OQOneu
If Err.Number <> 0 Then
    MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
    Err.Clear
End If
On Error GoTo 0
  • Automatisierung: Wenn Du regelmäßig Dateien importierst, kannst Du die Routine automatisieren, indem Du das Makro beim Öffnen der Arbeitsmappe ausführst.

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Datei mit VBA öffnen? Verwende die Workbooks.Open-Methode, um eine Excel-Datei über VBA zu öffnen.

2. Was tun, wenn ich die Datei nicht über VBA öffnen kann? Überprüfe das Dateiformat und stelle sicher, dass es sich um eine gültige Excel-Arbeitsmappe handelt.

3. Kann ich eine Datei ohne Benutzerinteraktion öffnen? Ja, indem Du den vollständigen Pfad der Datei direkt im Code angibst, kannst Du die Benutzerinteraktion vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige