Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1588to1592
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

Tabellen in geöffnete Mappe laden

Tabellen in geöffnete Mappe laden
27.10.2017 08:43:01
Axel
Hallo,
Hoffe jemand von euch hat da einen Tipp für mich.
ich würde gerne Tabellen aus Arbeitsmappen in die bereits geöffnete Mappe laden.
Toll wäre es wenn man dieses mit einem "Öffnen" Dialog hinbekommen könnte.
Gruß und an alle ein schönes WE
Axel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen in geöffnete Mappe laden
27.10.2017 10:27:42
fcs
Hallo Axcel,
wie man eine Dateiauswahl umsetzen findest du hier in meiner Antwort auf eine andere Frage von mir.
https://www.herber.de/forum/messages/1587798.html
Der Rest ist noch etwas unpräzise.
Sollen jeweils die Tabellenblätter komplett kopiert und eingefügt werden?
Welche Tabellenblätter sollen kopiert werdeN? Bestimmter Name? Bestimmte Indexnummer?
oder sollen die Daten aus den Dateien in jeweils ein Tabellenblatt der aktiven Arbeitsmappe kopiert werden?
Gruß
Franz
AW: Tabellen in geöffnete Mappe laden
27.10.2017 12:03:14
Axel
Hallo Franz,
sorry für das unpräzise sein, genau wie Du es gefragt hast also alle Daten aus den Dateien sollen jeweils ein (neues) Tabellenblatt der aktiven Arbeitsmappe werden.
Gruß
Axel
Anzeige
AW: Tabellen in geöffnete Mappe laden
27.10.2017 15:09:19
fcs
Hallo Axcel,
hier mein Vorschlag für die Umsetzung.
Gruß
Franz
Sub Daten_von_extern_laden()
Dim Schleife      As Integer
Dim Bereich       As Range
Dim Zeile_L%, Spalte_L%
Dim arrWkb        As Variant
Dim varWkb        As Variant
Dim wkbQ          As Workbook
Dim wksQ          As Worksheet
Dim nBlatt        As Integer
Dim wksZiel       As Worksheet
Dim Zeile_Ziel    As Long
DateiAuswahl:
'Datei(en) mit zu importierenden Daten auswählen
If wksZiel Is Nothing Then
arrWkb = Application.GetOpenFilename( _
Filefilter:="Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", _
Title:="Bitte Datei(en) mit den im neuen Tabellenblatt einzufügenden " _
&"Daten auswählen", _
MultiSelect:=True)
Else
arrWkb = Application.GetOpenFilename( _
Filefilter:="Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", _
Title:="Bitte Datei(en) mit den im Tabellenblatt """ & wksZiel.Name _
& """ einzufügenden Daten auswählen", _
MultiSelect:=True)
End If
If Not IsArray(arrWkb) Then Exit Sub
Application.ScreenUpdating = False
'Neues Tabellenblatt in aktiver Arbeitsmappe einfügen
If wksZiel Is Nothing Then
With ActiveWorkbook
Set wksZiel = .Worksheets.Add(After:=.Sheets(.Sheets.Count))
End With
'erste Einfügezeile in Zieltabelle
Zeile_Ziel = 1
End If
Schleife = 0
' Dateien abarbeiten
For Each varWkb In arrWkb
Schleife = Schleife + 1
Set wkbQ = Workbooks.Open(Filename:=varWkb, ReadOnly:=True)
Application.StatusBar = "Datei """ & wkbQ.Name & """ (" & Schleife & " von " _
& UBound(arrWkb) & ") wird importiert"
For nBlatt = 1 To 1  'nur Daten des 1. Tabellenblatts kopieren
Set wksQ = wkbQ.Worksheets(nBlatt)
With wksQ
' Letzte Zelle des Daten-Bereiches ermitteln.
With .UsedRange
Zeile_L = .Row + .Rows.Count - 1
' Letzte Spalte des Daten-Bereiches ermitteln.
Spalte_L = .Column + .Columns.Count - 1
End With
'Bereich festlegen
Set Bereich = .Range(.Cells(1, 1), .Cells(Zeile_L, Spalte_L))
End With
Bereich.Copy
If Schleife = 1 And Zeile_Ziel = 1 Then
'Bei 1. Datei die Breite der Spalten kopieren
wksZiel.Cells(Zeile_Ziel, 1).PasteSpecial Paste:=xlPasteColumnWidths
End If
'Werte und Zahlenformate kopieren
wksZiel.Cells(Zeile_Ziel, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'Alles kopieren
'        wksZiel.Cells(Zeile_Ziel, 1).PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
'Nächste Einfügezeile berechnnen
Zeile_Ziel = Zeile_Ziel + Bereich.Rows.Count
Next nBlatt
wkbQ.Close savechanges:=False
Set wksQ = Nothing
Set wkbQ = Nothing
Next varWkb
Application.StatusBar = False
Application.ScreenUpdating = True
If MsgBox("Daten wurden importiert. " & vbLf _
& "Daten aus weiteren Dateien in Tabellenblatt """ & wksZiel.Name _
& """ importieren?", _
vbQuestion + vbYesNo, "Daten-Import") = vbYes Then GoTo DateiAuswahl:
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige