Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

Datei öffnen
Peter
Hallo
brauche mal wieder Hilfe
Mit Beginn dieses Markro öffne ich eine Datei mit der ich dann Daten aus der Datei auslese.
Aus der geöffneten Datei kopiere ich Daten die in eine Datei eingefügt werden. Dann wieder zur geöffneten Datei ....
Wenn ich aber den Namen der Datei im Makro festschreibe so muss auch die Datei immer den gleichen Namen haben. Dies ist aber nicht der Fall
Sub Makro2()
neudatei = Application.GetOpenFilename("Eskalationstabelle,*.xls")
If neudatei = False Then Exit Sub
Workbooks.OpenText _
Filename:=neudatei, _
Origin:=xlWindows
Range("F2").Select
Selection.Copy
Windows("Eskalationstabelle.xls").Activate
Range("A4").Select
ActiveSheet.Paste
'hier sollte die mit neudatei geöffnete Datei wieder aktiviert werden
wie lautet der Code normal steht dort der Dateiname der Ausgewählt wurde.
Windows("neudatei.xls").Activate
Range("D2").Select
End Sub
Gruß Peter

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

Betreff
Benutzer
Anzeige
AW: Datei öffnen
01.06.2010 17:17:07
Ramses
Hallo
probiers mal so
Sub Makro2()
Dim neuDatei As String, myFile As Workbook
On Error Resume Next
neuDatei = Application.GetOpenFilename("Eskalationstabelle,*.xls")
If neuDatei = False Then Exit Sub
Set myFile = Workbooks.Open(neuDatei)
On Error GoTo 0
Debug.Print myFile.Name
Range("F2").Copy Windows("Eskalationstabelle.xls").Worksheets("Zieltabelle").Range("A4")
myFile.Activate
Range("D2").Select
End Sub

Die Zieltabelle musst du noch anpassen,... allenfalls eine Prüfung einbauen, ob die Datei überhaupt geöffnet ist.
Gruss Rainer
Anzeige
AW: Datei öffnen
01.06.2010 17:39:33
Peter
Hallo Rainer
Die Datei aus der ich den Dialog starte hat immer den selben Namen nur die Datei wo ich die Daten auslese, die über die getopenApplikation ermittelt wird ist von der Struktur her gleich aber immer einen anderen Namen. Deshalb das im Makro der Name der Datei nicht auftauchen
Hier mal mein Kompletter Code (teils mit Makrorekorder augezeichnet)
Speed-gn-1.xls dieser Name wechselt.
Gruß Peter
Sub Makro2()
neuDatei = Application.GetOpenFilename("Eskalation,*.xls")
If neuDatei = False Then Exit Sub
Workbooks.OpenText _
Filename:=neuDatei, _
Origin:=xlWindows
Range("F2").Select
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("A4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A4").Select
Application.CutCopyMode = False
Selection.Copy
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("Speed-gn-1.xls").Activate
Range("E2").Select
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("D4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("B4").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("E4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("B5").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("F4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("G4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D7").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("H4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D8").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("I4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D9").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("J4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D10").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("K4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("L4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D11").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Range("K4").Select
ActiveSheet.Paste
Windows("Speed-gn-1.xls").Activate
Range("D1").Select
Windows("Eskalationstabelle SW und Mitte.xls").Activate
Rows("4:4").Select
Application.CutCopyMode = False
Selection.NumberFormat = "0.00"
With Selection.Font
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.Bold = True
Selection.Font.Bold = False
Range("A4,J4").Select
Selection.NumberFormat = "m/d/yyyy"
Range("E4,G4,H4,I4,K4,L4").Select
Range("L4").Activate
Selection.NumberFormat = "General"
Range("B4").Select
Selection.Copy
Range("C4:L4").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Columns("D:D").ColumnWidth = 10.57
Columns("D:D").EntireColumn.AutoFit
Columns("D:D").ColumnWidth = 27.14
Columns("D:D").ColumnWidth = 30.57
Range("E4").Select
Columns("F:F").ColumnWidth = 28.14
Range("E4,G4,H4,I4,K4").Select
Range("K4").Activate
Range("E4,G4,H4,I4,J4,K4,L4").Select
Range("L4").Activate
Selection.NumberFormat = "General"
Range("M4").Select
Range("A5").Select
End Sub

Anzeige
Klärungsbedarf
01.06.2010 17:47:41
Ramses
Hallo
Ich versteh kein Wort von dem Makro und Hellsehen kann ich nicht.
Aus welcher Datei wird das Makro gestartet.
Wozu soll denn "neudatei" gut sein wenn es nicht mehr verwendet wird ?
Welche Datei wird denn "neudatei" geöffnet =?
Was ist "Eskalationstabelle SW und Mitte.xls" ?
Gruss Rainer
AW: Klärungsbedarf
01.06.2010 18:17:03
Peter
Hallo
ok es ist etwas verwirrenend entschuldigung
Also in der Eskalationstabelle SW und Mitte.xls Datei ist ein Button von woaus das Makro gestartetet wird.
Dann geht der Datei öffnen Dialog ich suche die Datei und es geht immer in und her (kopie und paste)
Aus der "unbekannt Datei sind verschiedene Zellen die in die Datei Eskalationstabelle SW und Mitte.xls einkopiert werden und zu Schluß werden dann noch Formatierungen in der Eskalationstabelle SW und Mitte.xls Datei vorgenommen.
Beim nächsten Makrolauf heist die Datei Speed-gn-1.xls wieder anders hat aber die gleiche Struktur.
Gruß Peter
Anzeige
AW: Klärungsbedarf
01.06.2010 18:41:20
Ramses
Hallo
Nur für mich zum Verständnis:
Deine mit "dateineu" geöffnete Datei ist die Datei "Speed-gn-1.xls".
Dann ist mein erstes Beispiel korrekt.
Hier eine kommentierte Fassung und wie du das ganze umbauen sollst
Option Explicit
Sub OpenFile()
Dim neuDatei As String
'"src" steht für "Source" also Quelle
Dim srcFile As Workbook, srcSheet As Worksheet
'"tar" steht für "Target" also Ziel
Dim tarFile As Workbook, tarSheet As Worksheet
On Error Resume Next
neuDatei = Application.GetOpenFilename("Eskalationstabelle,*.xls")
If neuDatei = False Then Exit Sub
'Quelldatei der Variablen zuweisen
Set srcFile = Workbooks.Open(neuDatei)
Set srcSheet = srcFile.Worksheets("Tabelle wo die Daten herkommen")
On Error GoTo 0
'Zieldatei der Variablen zuweisen
Set tarFile = Workbooks("Eskalationstabelle SW und Mitte.xls")
Set tarSheet = tarFile.Worksheets("Tabelle wo die Daten hin sollen")
'Mit "srcSheet" weiss Excel nun dass er die Daten aus der geöffneten Datei
'aus der Tabelle XXX nehmen soll, und mit "tarSheet" weiss EXCEL dass es die Dateinb
'in die Mappe Workbooks("Eskalationstabelle SW und Mitte.xls") und dort in Tabelle XXX kopieren  _
soll
'Dann geht das kopieren ganz einfach...
srcSheet.Range("F2").Copy tarSheet.Range("A4")
'... oder auch ein direkter Wertübertrag
tarSheet.Range("A4") = srcSheet.Range("F2")
'Das ganze "Activate" zum Hin- und Herschalten der Mappen usw. entfällt dann
'Hier kannst du deine ganzen Datenübertragungen/Kopieranweisungen selbst einfügen :-)
'die Speziellen Formatierungen kannst du dann auch gleich so machen
'"With tarSheet" weisst EXCEL an alle nachfolgenden ".Befehl" Anweisungen auf
'die Tabelle zu beziehen die wir oben definiert haben
With tarSheet
With .Rows("4:4")
'Hier bezieht sich alles auf die Zeile 4 = "With .Rows("4:4") in Tabelle "tarSheet"
.NumberFormat = "0.00"
With .Font
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Bold = False
End With
With Range("A4,J4")
.NumberFormat = "m/d/yyyy"
End With
.Range("L4").NumberFormat = "General"
.Range("B4").Copy
With Range("C4:L4")
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End With
.Columns("D:D").ColumnWidth = 30.57
.Columns("F:F").ColumnWidth = 28.14
.Range("M4").Select
End With
End Sub

Gruss Rainer
Anzeige
AW: Klärungsbedarf
01.06.2010 21:22:14
Peter
Hallo
Danke für deine Unterstützung
Musste kurz weg
Werde versuchen den Code so einzubauen. Das ist aber das was ich erreichen wollte.
So kann ich jetzt eine Datei nach der anderen einlesen
Gruß Peter
AW: Klärungsbedarf
01.06.2010 22:10:10
Peter
Hallo Rainer ich bin noch mal
bin wahrscheinlich zu dusselig
Dein Makro habe ich soweit verstanden
Es läuft aber immer nur im Kreis.
Die Datei zu öffnen wird angezeigt dann öffne ich die Datei aber das Makro läuft auf
False Then Exit Sub und nix passiert
Es sollte aus der wählten Datei (Ouelle) den wert aus F2 nach A4 der Datei (Ziel)von wo aus das Makro gestartet wird kopiert werden
Hier die Datei die dann umbenannt werden müsste in "Eskalationstabelle SW und Mitte.xls"
https://www.herber.de/bbs/user/69844.xls
Zum testen habe ich einfach eine datei mit der gefüllten Zelle F2 erstellt.
Bitte nochmals um Hilfe
Gruß Peter
Anzeige
Falsche Variable
01.06.2010 22:49:34
Ramses
Hallo
Sorry,... ersetze
Dim neuDatei As String
durch
Dim neuDatei as Variant
dann sollte es funktionieren
Gruss Rainer
AW: Falsche Variable
02.06.2010 20:18:06
Peter
Hallo
das wars Danke
Gruß Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige