online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Jona1982 vom 30.04.2019, 14:50 Options

Aus Mehren Excel- Dateien Daten in eine Excel Datei einlesen

Hallo Zusammen,

ich möchte ein Excel Makro basteln, das in eine Datei Zeileninhalte aus mehreren Excel-Dateien einfügt.
Ich habe mehrere Excel-Dateien, die gleich aufgebaut sind (Rechnungen) und in einem Ordner / mit Subordnern gespeichert sind.
Ich habe eine Übersichtsdatei, wo ich manuell jetzt die Daten einfüge.
Das Makro soll aus den Excel - Dateien (nur bestimmte) Zeile (z.B. Blatt „Angebot“ Zeile G13 und G14) kopieren und in die Übersichtsdatei in diese Form
Angebot 1 Name1 PLZ 1
Angebot 2 Name2 PLZ 2
Angebot 3 Name3 PLZ 3
nebeneinander einfügen.

Hätte JEMAND Idee? HILFE

mfg

Johann


Antwort schreiben

Antwort 1 von nighty vom 30.04.2019, 14:54 Options

hi johann :-)

bitte konkrete infos

welche zellen oder zeilen oder spalten der quelle sollen in welchen zellen spalten des zieles kopiert werden ?

von einer tabelle oder alle oder einzelne ?

gruss nighty

Antwort 2 von Jona1982 vom 30.04.2019, 15:05 Options

Hi nighty

erst vielen Dank für die schnelle Antwort

Ursprungsdatei-Registerblatt "Angebot" K12
Zieldatei- Registerblatt "AngebotAuflistung" I13

Ursprungsdatei-Registerblatt "Angebot" L12
Zieldatei- Registerblatt "AngebotAuflistung" J13

usw. die anderen quellen und ziele kann ich schon allein einfügen



gruss
Johann

Antwort 3 von nighty vom 30.04.2019, 15:36 Options

hi Johann :-)

ein beispiel :-))

gruss nighty

Sub FilesListen()
Application.ScreenUpdating = False
Dim Dateien As Integer
Dim DateiName As String
With Application.FileSearch
.NewSearch
.LookIn = "D:\Temp\"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
Workbooks(DateiName).Sheets("Angebot").Range("K12:L12").Copy ThisWorkbook.Sheets("AngebotAuflistung").Range("I13:J13")
Workbooks(DateiName).Close
End If
Next Dateien
End If
End With
Application.ScreenUpdating = True
End Sub

Antwort 4 von Jona1982 vom 30.04.2019, 15:57 Options

Hi nighty,

das Programm funktioniert supppppeeeerrrrr.
DANKE

Eine Frage:
Bei Ausführung dieses Befehls muss ich laufend die Schaltfläche Änderung Speichern JA/NEIN betätigen (ich habe in den Angebotsdateien Makros eingebaut)– kann man das ausschalten?
Die Daten sollen so abgespeichert werden :
z.B. Angebot 1 Zeile I und J 13, dann soll Excel „runter“ springen (Angebot 2) - I und J 14 usw. könntest Du es noch implementieren.

Muss man immer dieser Dateien aufmachen??

DANKE im Voraus

Gruss Johann

Antwort 5 von nighty vom 30.04.2019, 15:57 Options

hi Johann :-)

wenn es sehr viele dateien sind weitere ereignisausschaltungen um den vorgang zu beschleunigen

gruss nighty

Sub FilesListen()
Call EventsOff
Dim Dateien As Integer
Dim DateiName As String
With Application.FileSearch
.NewSearch
.LookIn = "D:\Temp\"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
Workbooks(DateiName).Sheets("Angebot").Range("K12:L12").Copy ThisWorkbook.Sheets("AngebotAuflistung").Range("I13:J13")
Workbooks(DateiName).Close
End If
Next Dateien
End If
End With
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Antwort 6 von Jona1982 vom 30.04.2019, 16:26 Options

Hi nighty

es funktioniert leider nicht.
Ich muss immer die Schaltfläche Änderung Speichern JA/NEIN betätigen um weiter zu kommen.
Die Daten sollen so abgespeichert werden :
z.B. Angebot 1 Zeile I und J 13, dann soll Excel „runter“ springen (Angebot 2) - I und J 14 usw. könntest Du es noch implementieren
Diese Auflistung soll untereinander gemacht werden.
Angebot 1 Name1(I13) PLZ 1 (J13)
Angebot 2 Name2 (I14) PLZ 2 (J14)
Angebot 3 Name3 (I15) PLZ 3 (J15) usw.

danke im Voraus

gruss Johann

Antwort 7 von nighty vom 30.04.2019, 16:34 Options

hi Johann :-)

gruss nighty

bezieht sich auf auf die variable DateiNamen
Workbooks(DateiName).Close SaveChanges:=True

bezieht sich auf auf die Namen DateiNamen
Workbooks("DateiName").Close SaveChanges:=True

bezieht sich auf auf die datei wo das makro gestatet worden ist
ThisWorkbook.Close SaveChanges:=True

bezieht sich auf auf einen index
Workbooks(1).Close SaveChanges:=True

Antwort 8 von Jona1982 vom 30.04.2019, 16:51 Options

Hi nighty

es funktioniert SUPPEEERRRR.
Könntest Du noch diese automatische Funktion implementieren. Ich habe da keinen Schimmel:

Workbooks(DateiName).Sheets("Angebot").Range("K12:L12").Copy ThisWorkbook.Sheets("AngebotAuflistung").Range("I13:J13")

nächste Schlaufe
ThisWorkbook.Sheets("AngebotAuflistung").Range("I14:J14")
usw.

danke im Voraus

gruss Johann

Antwort 9 von nighty vom 30.04.2019, 16:52 Options

hi Johann :-)

vielleicht so

gruss nighty

Sub FilesListen()
Call EventsOff
Dim Dateien As Integer
Dim DateiName As String
Dim zaehler As Boolean
With Application.FileSearch
.NewSearch
.LookIn = "D:\Temp\"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
If zaehler = False Then
zeile = 13
Else
zeile = ThisWorkbook.Sheets("AngebotAuflistung").Cells(Rows.Count, 9).End(xlUp).Row + 1
End If
Workbooks(DateiName).Sheets("Angebot").Range("K12:L12").Copy ThisWorkbook.Sheets("AngebotAuflistung").Range("I" & zeile & ":J" & zeile)
zaehler = True
Workbooks(DateiName).Close SaveChanges:=True
End If
Next Dateien
End If
End With
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Antwort 10 von nighty vom 30.04.2019, 16:59 Options

hi Johann :-)

es ist natürlich möglich geschlossene dateien auszulesen,doch der vorgang ist langsamer :(

stichwort excel4makro

gruss nighty

Antwort 11 von nighty vom 30.04.2019, 17:07 Options

hi Johann :-)

da ich schusslig bin :-)) fehlt eine deklarierung

Dim zeile as long

bitte noch am anfang einfuegen :-)

gruss nighty

Antwort 12 von Jona1982 vom 30.04.2019, 17:10 Options

Danke

ich muss los in den Urlaub
noch ein mal

Vielen vielen
Dank

Antwort 13 von Johanna153 vom 26.07.2019, 09:39 Options


  • *Threadedit* \t\
    Admininfo: Führ bitte fremde Threads nicht fort indem du eigene Anfragen anhängst.
    Die User werden es dir danken. Siehe FAQ 2.
  • Ähnliche Themen

    Schnelles Einlesen von Textdateien in Excel
    RF-Bug  07.01.2007 - 142 Hits - 4 Antworten

    mehrere Excel dateien zu einer
    Excel2003  03.05.2007 - 402 Hits - 3 Antworten

    Dateiname einer txt.-Datei in EXCEL einlesen
    stoneart  14.11.2007 - 121 Hits - 16 Antworten

    Hinweis

    Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

    Neue Einträge

    Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026