Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1212to1216
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei öffnen und in Variable schreiben

Datei öffnen und in Variable schreiben
KlausF
Hallo Excel-Freaks,
mache zur Zeit meine ersten Versuche mit VBA.
Der Code ist teilweise mit Recorder, teils aus Forum-Beiträgen "zusammengebastelt".
Dabei habe ich aber 2 Hänger.
1. bei If Projekt kommt LZF 13 "Typen unverträglich"
2. bei Windows(Projekt).Activate kommt LZF 9 "Index außerhalb des gültigen Bereiches"
Hier der Ausschnitt aus dem Code:
Dim Uebersicht As String
Dim Projekt As String
....
....
Projekt = Application.GetOpenFilename("Microsoft Excel-Dateien ,*.*")
If Projekt = False Then Exit Sub
Windows(Uebersicht).Activate
....
....
Windows(Projekt).Activate
....
....
Zum 1.: Die beiden Zeilen zum Datei-Öffnen und zur Prüfung hab' ich so aus einem anderen Code - was ist
daran falsch?
Zum 2.: Die Variable Projekt beinhaltet nun den File-Namen mit kompletten Pfad, das hab ich schon kapiert.
Warum kollidiert das mit der später gewünschten Aktivierung?
Wenn mann im Archiv stöbert oder googelt, findet man tausende Beiträge - immer mit Spezialproblemen; zu den Basics hab' ich bisher nichts passendes gefunden.
Könnt Ihr mir helfen?
Grüße!
Klaus
AW: Datei öffnen und in Variable schreiben
05.05.2011 12:04:53
oberschlumpf
Hi Klaus
1. die Variable Projekt ist als String deklariert (Dim Projekt = String)
In der If-Zeile fragst du aber einen boolschen Wert (True/False) ab.
Versuch für 1. mal:

If Projekt = "" Then Exit Sub

2. Bin mir nicht sicher, aber Windows(Projekt) erwartet nur den Dateinamen und nicht den kompletten Pfad.
Daher müsstest du vor Übergabe der Variablen Projekt an Windows(...) zuerst nur den Dateinamen aus der Variablen ausfiltern.
Das funktioniert mit der Split-Funktion.
Dim lstrSplit As String
lstrSplit = Split(Projekt, "\")
Windows(lstrSplit(UBound(lstrSplit))
Hilfts?
Ciao
Thorsten
Anzeige
AW: Datei öffnen und in Variable schreiben
05.05.2011 12:21:12
KlausF
Hallo Thorsten,
Danke erst mal für Deine Mühe.
Zu 1.: klappt ohne Probs
Zu 2.: die Split-Zeile bringt schon LZF 13 "Typen unverträglich"
und die zweite Zeile danach wird mit "Syntaxfehler" gar nicht erst kompiliert
Viellleicht nur ein Tippfehler?
Danke+Gruß!
Klaus
AW: Datei öffnen und in Variable schreiben
05.05.2011 12:50:06
oberschlumpf
Hi Klaus
Ne Bsp-Datei inkl. dem Code, den du schon hast, wäre schön.
Ciao
Thorsten
AW: Datei öffnen und in Variable schreiben
05.05.2011 13:39:31
KlausF
Hallo Thorsten,
hier die Datei.
https://www.herber.de/bbs/user/74673.xls
Soll eine Übersicht in Listenform werden, für die die Dateien beim Öffnen manuell ausgesucht werden
(zu viele Verzeichnisse, zu viele unterschiedliche Dateinamen) und danach mittels Makro aus dem Blatt "Vertrieb" ausgewählte Eckdaten in die Übersicht kopiert werden.
Also ist mein Problem:
1. Nach Öffnen-Dialog den Dateinamen in Variable zu übergeben und
2. im Makroverlauf öfter wieder zu dieser Datei zu wechseln (Activate).
Fehler beim Dateiöffnen (keine ausgewählt) sowie kein vorhandenes Blatt "Vertrieb" in der geöffneten Datei sollten am Besten abgefangen werden (mit Messagebox?)
Gruß!
Klaus
Anzeige
AW: Datei öffnen und in Variable schreiben
05.05.2011 13:51:22
oberschlumpf
Hi Klaus
Dein Code hakt an dieser Stelle:
Sheets("Vertrieb").Select
Der Grund ist, es existiert in der Datei keine Tabelle mit dem Namen "Vertrieb", sondern nur eine Tabelle mit dem Namen "Tabelle1".
Da ich nicht weiß, ob "Tabelle1" = "Vertrieb" sein soll, oder ob eben eine weitere Tabelle, die "Vertrieb" heißen soll, fehlt, kann ich noch nicht helfen.
Schön wäre, wenn du vorm Zeigen einer Bsp-Datei selbige auch erst mal überprüfst, ob sie denn so weit funktioniert.
Ciao
Thorsten
AW: Datei öffnen und in Variable schreiben
05.05.2011 14:40:26
KlausF
Hallo Thorsten,
Sheets "Vertrieb" existiert in der zu öffnenden Datei!
Von diesem Blatt sollen mit dem Makro dann einige Zelldaten in die Übersichtsliste kopiert werden.
Ich habe beim weiteren googeln was gefunden, wie man den langen Dateinamen (mit Pfad) verkürzen kann, um ihn als Variable für das Aktivieren verwenden zu können.
Bin noch am probieren.
Werde das Ergebnis posten.
Gruß!
Klaus
Anzeige
AW: Datei öffnen und in Variable schreiben
05.05.2011 12:28:08
Reinhard
Hallo Klaus,
Windows() bezieht sich auf eine geöffnete Mappe. nach Getopenfilename ist aber keine Mappe geöffnet worden, das geht mit Open.
If Projekt = "" Then Exit Sub
klappt zwar zunächst, also kein Fehler, aber dann wird probiert "Falsch.xls" zu öffnen wenn du im Dateiwahlmenu auf Abbrechen geklickt hast === Fehler.
probier's mal so
Sub nn()
Dim Projekt As String
Projekt = Application.GetOpenFilename("Microsoft Excel-Dateien ,*.xls*")
If Projekt = "Falsch" Then Exit Sub
Workbooks.Open Projekt
End Sub

Gruß
Reinhard
AW: Datei öffnen und in Variable schreiben
05.05.2011 13:50:01
KlausF
Hallo Reinhard,
Danke für Deine Hilfe.
Ich Depp hab' bisher noch nicht mal geschnallt, das die ausgewählte Datei gar nicht geöffnet wird.
Also die Klippe habe ich nun mit Deiner Hilfe gemeistert.
Bleibt noch die Verwendung des Dateinamens als Variable zum wiederholten Aktivieren der geöffneten Datei als Prob.
Danke+Gruß!
Klaus
Anzeige
Lösung des Problems
05.05.2011 15:32:12
KlausF
Hallo Excelianer,
nun hab' ich für mich die Lösung gefunden - denke ich ;-)))
Das Problem war:
Datei öffnen-Dialog aufrufen, nach Datei öffnen den Dateinamen an eine Variable übergeben,
damit im weiteren Verlauf mehrmals zwischen Quelle- und Zieldatei gewechselt werden kann (mittels Windows(Name).Activate) und letzteres kann nur mit dem Dateinamen ohne Pfad umgehen
Lösung (nur Kern des Codes):
Dim öffnen As Boolean
Dim Projekt As String
...
öffnen = Application.Dialogs(xlDialogOpen).Show
If öffnen = False Then Exit Sub
Projekt = ActiveWorkbook.Name
....
Hat jemand Einwände dagegen?
Gruß!
Klaus
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige