Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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
Zellübertragung per "Datei öffnen" Dialog
Sebastian
Hallo zusammen,
folgendes Szenario:
Excel 2000
Ich habe die Excel Datei "C:\Fillmeup.xls" in die verschiedene Zellen aus der Excel Datei "C:\Quelle.xls" importiert werden sollen. Diese Zellen sollen einfach auf dem Tabellenblatt "Tabelle_Fillmeup" in die Spalte H eingetragen werden. Die Zellen der Datei "C:\Quelle.xls" heissen "Quelle1" und "Quelle2",befinden sich auf Tabellenblatt "Tabelle_Quelle" und sind konstant (nicht die Werte, nur die Namen!). Allerdings ist der Dateiname "C:\Quelle.xls" nur einmalig. Daher möchte ich gerne die aktuelle Datei per Dialog "Datei öffnen" auswählen können, aus der die Zellen "Quelle1" und "Quelle2" dann importiert werden.
Ich kann zwar mittlerweile (von Null Wissen angefangen) Daten aus anderen, fest definierten .xls Dateien importieren (allerdings auch nur gane Zeilen) und auch den Dialog "Datei öffnen" starten, bringe das aber leider nicht zusammen.
Ich hänge die beiden Codes mal mit dran, bitte nicht auslachen.
Meine Idee wäre, dass der Dialog nach der Auswahl die Datei nicht öffnet, sondern den Namen für die zweite Schleife definiert.
Kann mir da vielleicht jemand helfen?
Vielen Dank im Voraus!
Code für Dialogbox:
Sub Demo_GetOpenFilename()
Dim varRetVal As Variant
varRetVal = Application.GetOpenFileName( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="EINE Datei zum Öffnen auswählen")
If varRetVal = False Then Exit Sub
On Error Resume Next
Workbooks.Open Filename:=varRetVal
On Error GoTo 0
End Sub

Code für Übertragen von Spalten:
Sub Übertrag()
Dim xlApp As Application
Dim WB As Workbook, Ziel As Range
Set Ziel = ThisWorkbook.Sheets(1).Columns(2)
Set xlApp = New Excel.Application
Set WB = xlApp.Workbooks.Open("C:\Quelle.xls")
Ziel.Value = WB.Sheets(1).Columns("B").Value
Set Ziel = Ziel.Offset(0, 1)
Ziel.Value = WB.Sheets(1).Columns("B").Value
Set Ziel = Ziel.Offset(0, 1)
WB.Close
xlApp.Quit
Set WB = Nothing: Set xlApp = Nothing
Set Ziel = Nothing
End Sub

AW: Zellübertragung per "Datei öffnen" Dialog
16.07.2009 09:17:26
Wolli
Hallo Sebastian, das müsste ganz einfach gehen:
Sub Übertrag()
Dim xlApp As Application
Dim WB As Workbook, Ziel As Range
Dim strRetVal As String
strRetVal = Application.GetOpenFilename(FileFilter:="Excel-Dateien (*.xls; *.xlsx; *.xlsm),*. _
xls; *.xlsx; *.xlsm")
Set Ziel = ThisWorkbook.Sheets(1).Columns(2)
Set xlApp = New Excel.Application
Set WB = xlApp.Workbooks.Open(strRetVal)
Ziel.Value = WB.Sheets(1).Columns("B").Value
Set Ziel = Ziel.Offset(0, 1)
Ziel.Value = WB.Sheets(1).Columns("B").Value
Set Ziel = Ziel.Offset(0, 1)
WB.Close
xlApp.Quit
Set WB = Nothing: Set xlApp = Nothing
Set Ziel = Nothing
End Sub
Läuft's? Gutes Gelingen, Gruß, Wolli
Anzeige
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 01:52:54
Sebastian
Hallo Wolli,
vielen Dank erstmal für die schnelle Antwort.
Deinen FileFilter beim Dialogfenster hat Excel nicht genommen. Aber ich habe ihn durch meinen Code ersetzt und dann ging es. Allerdings gibt er immer nach Dateiauswahl den Laufzeitfehler Nummer 91 raus.
Ich verzweifel gerade.
Darüberhinaus wollte ich ja bestimmte Zellen importieren, die nicht numerisch bezeichnet sondern mit Namen bezeichnet sind.
Habe einen anderen Code mal ausprobiert, der funktioniert soweit, nur wird die Quell Datei nicht geschlossen und läuft im Hintergrund weiter.
Wenn die Quell Datei wieder geschlossen werden würde und ich statt einer Spalte eine Zelle mit Zellnamen importieren könnte, wäre ich sehr glücklich :-)
Vielleicht kannst du mir ja noch einmal helfen?
Gruß
Sebastian
Hier der Code:
Sub Demo_GetOpenFilename()
Dim varRetVal As Variant
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="EINE Datei zum Öffnen auswählen")
If varRetVal = False Then Exit Sub
On Error Resume Next
Übertrag (varRetVal)
On Error GoTo 0
End Sub

'Code für Übertragen von Spalten:
Sub Übertrag(datei As String)
Dim xlApp As Application
Dim WB As Workbook, Ziel As Range
Set Ziel = ThisWorkbook.Sheets(1).Columns(12)
Set xlApp = New Excel.Application
Set WB = xlApp.Workbooks.Open(datei)
Ziel.Value = WB.Sheets(1).Cells(6, 1).Value
Set Ziel = Ziel.Offset(0, 1)
WB.Close
xlApp.Quit
Set WB = Nothing: Set xlApp = Nothing
Set Ziel = Nothing
End Sub

Anzeige
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 09:08:54
Wolli
Moin Moin,
1.) dass er den Filter nicht genommen hat, liegt vermutlich an dem Umbruch, den die Herber-Software eingebaut hat. Aber das hast Du ja korrigiert.
2.) Ich verstehe Dein Gewürge mit New Excel.Application nicht. Einfach öffnen und gut!
Mein Code: 1.) VarRetVal ist eigentlich ein String. (=Dateiname, kompletter Pfad), aber Variant geht auch. Ist schicker bei der False-Abfrage ;-) Des weiteren so:
Sub Demo_GetOpenFilename()
Dim varRetVal As Variant, _
WBQuell As Workbook, _
Ziel As Range
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="EINE Datei zum Öffnen auswählen")
If varRetVal = False Then Exit Sub
'Code für Übertragen von Spalten:
Set Ziel = ActiveWorkbook.Sheets("Tabelle1").Cells(1, 12)
Set WBQuell = Workbooks.Open(varRetVal)
Range(WBQuell.Names("Quelle1")).Copy Destination:=Ziel
Set Ziel = Ziel.Offset(0, 1)
Range(WBQuell.Names("Quelle2")).Copy Destination:=Ziel
WBQuell.Close savechanges:=False
End Sub
Allerdings hast Du Office 2000 - daher ohne Garantie!
Gutes Gelingen, Gruß, Wolli
Anzeige
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 10:10:26
Sebastian
Guten morgen Wolli,
nochmal vielen Dank für deine Hilfsbereitschaft. Dieses Gewürge sind meine verzweifelten Versuche etwas hinubekommen, von dem ich keine Ahnung habe. Habe deinen Code grade ausprobiert, nun spuckt er den Laufzeitfehler 1004 - Die Methode Range für das Objekt '_worksheet.... aus.
Im debugger wird diese Zeile gelb markiert:
Range(WBQuell.Names("Quelle1")).Copy Destination:=Ziel
Weisst du woran das liegen könnte?
Gruß
Sebastian
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 11:01:26
Wolli
Hallo Sebastian,
Range("Quelle1").Copy Destination:=Ziel
müsste es auch tun. Das spricht den benannten Bereich "Quelle1" in der gerade aktiven Arbeitsmappe an - und das ist ja die soeben geöffnete Quellmappe.
Warum der andere Code jetzt nicht funktioniert hat, weiß ich nicht - bei mir geht's, muss wohl mit der Version zu tun haben.
Gruß, Wolli
PS: Ganz keine Ahnung kann ja wohl nicht sein, oder? Dafür jonglierst Du ganz gut mit den Objekten ...
Anzeige
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 11:27:14
Sebastian
HEUREKA!!!!!!!!!
Dank deiner Hilfe und der Excel 200 Hilfe von Microsoft habe ich das Problem lösen können. Unter Excel 2000 muss der Code wie folgt lauten:
Private Sub CommandButton1_Click()
Dim varRetVal As Variant, _
WBQuell As Workbook, _
Ziel As Range
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="EINE Datei zum Öffnen auswählen")
If varRetVal = False Then Exit Sub
'Code für Übertragen von Spalten:
Set Ziel = ActiveWorkbook.Sheets("Tabelle1").Cells(1, 1)
Set WBQuell = Workbooks.Open(varRetVal)
Worksheets("Tabelle1").Activate
Worksheets("Tabelle1").Range("Quelle1").Copy Destination:=Ziel
Set Ziel = Ziel.Offset(0, 1)
Worksheets("Tabelle1").Range("Quelle2").Copy Destination:=Ziel
WBQuell.Close savechanges:=False
End Sub
Tausend Dank an dieser Stelle für deine Geduld, Wolli!! Schönes Wochenende!
Gruß
Sebastian
P.S.: Ich beschäftige mich seit 3 Tagen mit VBA Programmierung, ich hatte Null Ahnung und mit viel Geduld, Nachtschichten und ein bischen Auffassungsgabe habe ich Code-Schnipsel gesucht, versucht zu verstehen und zusammenzusetzen :-) Bis vor ner Woche konnte ich noch nicht mal WENN-Funktionen in Excel schreiben...
Anzeige
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 11:41:25
Wolli
Na, dann empfehle ich Dir
https://mind.laterne.de/tests.htm
:-)))
Gruß, Wolli
AW: Zellübertragung per "Datei öffnen" Dialog
17.07.2009 13:34:58
Sebastian
...wozu testen was eh schon gewiss ist? :-) [/Größenwahn off]
Abschließend möchte ich trotzdem noch mal loswerden, wie super ich Foren wie dieses hier finde. Danke an dich Wolli und die anderen die sich Zeit nehmen, die Fragen anderer zu beantworten!
Macht bitte weiter so.
Ein schönes Wochenende!
Gruß
Sebastian

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige