Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datei öffnen





Frage

Hallo, ich habe ein Tabellenblatt mit Dateinamen. Die sind alle in einerm Ordner. Die Dateinamen stehen im Tabellenblatt1. Meie Frage ist... geht es dass man ein Makro schreibt, dass in diese Dateien, die in einem Ordner sind und nur in die Dateien geht und aus denen eine Zelle Kopiert und dann in das Tabellenblatt2 einfügt??? Wenn mir jemand eine Lösung schreiben könnte wäre ich dankbar.

Antwort 1 von Risatara2

Gehts vielleicht etwas genauer? Welche Dateien sind das? Welche Zelle soll kopiert werden? Wohin genau? Wie soll es ablaufen??

Antwort 2 von Benn

Hallo Risatara2,

also das sind Exceldateien, und es soll im Tabellenblatt1 die Zelle D3 kopieren und es in ein Tabellenballt (Ergebnisse) einfügen.

Hätte mir das so vorgestellt. ich habe dne Pfad und die Namen der Dateien stehen in Tabellenblatt1 Ab A5 bis A.... und das Makro soll schauen wieviel Dateien zu öffnen sind und eine nach der anderen öffnen und die zelle D3 kopieren und dann in einem Blatt (Ergebnisse) Spalte A untereinander einfügen...

hoffe das reicht als grobe erklärung.. vielen dank..
Hoffe es klappt.

Antwort 3 von fürLau

Hallo

Angenommen,- der komplette Pfad der Dateien steht in Zelle A2, und die Dateinamen ab A3-Ax (ohne Fileextenion ".xls") und angenommen die Tabelle(n) aus denen die Werte geholt werden sollen, heißen alle "Params" und die gewünschte Quell-Zelle ist "AC3" und die Daten sollen nach "Tabelle2" in die Spalte "C" geschrieben werden, dann könnte Dir folgender Code helfen:
Option Explicit

Private Sub CommandButton1_Click()
Dim zeile%, filename$, mappe$, mappi$
Application.ScreenUpdating = False
mappe = ActiveWorkbook.Name
For zeile = 3 To Range("A65536").End(xlUp).Row
filename = Range("A2").Value & Range("A" & zeile).Value & ".xls"
Debug.Print filename,
Application.Workbooks.Open filename
mappi = ActiveWorkbook.Name
Workbooks(mappe).Sheets("Tabelle2").Range("B" & zeile).Value = mappi
Workbooks(mappe).Sheets("Tabelle2").Range("C" & zeile).Value = _
Workbooks(mappi).Sheets("Params").Range("AC3")
´Stop
Debug.Print Workbooks(mappi).Sheets("Params").Range("AC3")
Application.Workbooks(mappi).Close
Next
Application.ScreenUpdating = True
End Sub


Gruß

Antwort 4 von fürLau

Nachtrag:

Option Explicit

Private Sub CommandButton1_Click()
Dim zeile%, filename$, mappe$, mappi$
Application.ScreenUpdating = False
mappe = ActiveWorkbook.Name
For zeile = 5 To Range("A65536").End(xlUp).Row
filename = "C:\Dein Pfad\" & Range("A" & zeile).Value & ".xls"
Application.Workbooks.Open filename
mappi = ActiveWorkbook.Name
Workbooks(mappe).Sheets("Ergebnisse").Range("A" & zeile - 4).Value = _
Workbooks(mappi).Sheets("Tabellenblatt1").Range("D3")
Application.Workbooks(mappi).Close
Next
Application.ScreenUpdating = True
End Sub


Antwort 5 von Benn

Hallo,
Erst mal vielen dank für dein Makro, aber da hab ich irgendwie den Überblick verloren.

Habe eigentlich diese Makro. Es geht in eine Datei und öffnet jede Exceldatei und kopiert das was ich will in die Datei mit Tabellenblatt Gesamt.
Mein Problem war nur, dass ich ab und zu nur einige Datein die in dem Ordner sind. Kann man dieses Makro so umschreiben ( die schleife in der Mitte so lassen) dass es dann nur die Dateien öffnet, deren Dateinamen ich in ein Tabellenblatt schreibe???

vielen Dank


Sub BPübersicht()
Dim Mappen As Integer
Dim zeile As Integer
Dim Letztezeile As Integer
On Error Resume Next
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = Range("D1")
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For Mappen = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(Mappen)
Application.Calculate

ActiveWindow.ScrollRow = 1
Sheets("Tabelle1").Select
Range("B6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Übersichtsmacro.xls").Activate
Sheets("Gesamt").Select
zeile = Range("A65536").End(xlUp).Row
Range("A" & zeile + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Workbooks(2).Activate
ActiveWindow.ScrollRow = 1
Sheets("Tabelle1").Select
Range("C6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Übersichtsmacro.xls").Activate
Sheets("Gesamt").Select
zeile = Range("A65536").End(xlUp).Row
Range("B" & zeile).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Workbooks(2).Close
Next Mappen
End If
End With
End Sub

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: