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

VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren

VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 07:19:32
Daten
Moin moin zusammen,
ich bin erst seit ca. 2 Monaten mit VBA unterwegs, aber ich lerne gerne neues hinzu. So nun zu meinem Szenario.
Ich habe eine Arbeitsmappe A.xlsm in diese möchte ich dynamisch Zellenbereiche aus einer bzw mehreren anderen Arbeitsmappen (diese sind gleich aufgebaut) einfügen.
Die weitere Arbeitsmappe (B.xlsx, C.xlsx) verfügt über ein Tabellenblatt benannt ist mit export. Die erste Zeile darin (A1:D1) trägt die Überschriften bzw. Feldbezeichnungen. Ab A2 bis ... können dann die "Datensätze" eingegeben worden sein. Diese Anzahl ist immer unterschiedlich. Es kann sein, das keine Zeile befüllt ist oder auch 23.
Ich habe mir nun überlegt das Script müsse wie folgt arbeiten:
- öffne über den Dateiöffnen Dialog eine oder (wenn möglich) mehrere ausgewählte Datei(en)
- prüfe in B.xlsx wieviel Zeilen auf dem Tabellenblatt export befüllt sind und kopiere diese dann in die A.xlsm Tabelle1 in die erste "freie" Zeile
- prüfe dann die nächste ausgewählte Datei und füge die Zeilen dann in A.xlsm unten an die bestehenden Daten an usw.
Hoffe ich konnte dies einigermaßen verständlich machen, ansonsten einfach nachfragen. Ich habe mal 3 Beispieldateien angehangen. in der A.xlsm ist ausschließlich die Tabelle und eine Schaltfläche beinhaltet, mehr nicht. Also noch nenne wir es mal jungfräulich in den anderen beiden sind unterschiedliche Datensätze enthalten.
https://www.herber.de/bbs/user/135020.xlsm
https://www.herber.de/bbs/user/135021.xlsx
https://www.herber.de/bbs/user/135022.xlsx
Danke euch schon mal für eure Mühen
Thorsten

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 12:03:40
Daten
Servus Thorsten,
teste mal:

Sub Daten_zusammenfassen()
Dim WBnew As Variant
Dim WS As Worksheet
Dim intDatei As Integer
Dim WBN As Workbook
Dim WSN As Worksheet
Dim intLZ As Integer
Dim intLZnew As Integer
Set WS = ThisWorkbook.Sheets(1) ' ggf. Tabellenindex oder Tabellennamen anpassen
WBnew = Application.GetOpenFilename("Excel Dateien (*.xlsx),*.xlsx", , "XLSX", "Auswahl", True)  _
' Mehrfachauswahl der Quelldateien
If TypeName(WBnew) Like "Boolean" Then
MsgBox "Keine Datei ausgewählt!", vbInformation
Exit Sub
Else
For intDatei = 1 To UBound(WBnew)
Debug.Print WBnew(intDatei)
Set WBN = Workbooks.Open(WBnew(intDatei))
With WBN
On Error GoTo errHandler
Set WSN = WBN.Sheets("export")
intLZ = WS.Cells(Rows.Count, 1).End(xlUp).Row + 1
intLZnew = WSN.Cells(Rows.Count, 1).End(xlUp).Row
WSN.Range("A2:D" & intLZnew).Copy Destination:=WS.Cells(intLZ, 1)
Sprungmarke:
Set WSN = Nothing
.Close False
End With
Set WBN = Nothing
Next intDatei
End If
Set WS = Nothing
Exit Sub
errHandler:
MsgBox "Tabelle Export ist in Datei " & WBnew(intDatei) & " nicht vorhanden!", vbInformation
GoTo Sprungmarke
End Sub
Grüße, Bernd
Anzeige
AW: VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 13:42:22
Daten
Moin Bernd,
erstmal vielen Dank, ja hat geklappt, nur eine Kleinigkeit (denke ist ne Kleinigkeit), bei deinem Code wird ja der komplette Zellbereich inkl. Formatierung eingefügt, geht das auch als reine Werte ohne die Formatierung also ohne Zellrahmen, Farbe etc.?
Danke schon mal
Thorsten
AW: VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 14:24:04
Daten
Hallo,
dann so:
WSN.Range("A2:D" & intLZnew).Copy
WS.Cells(intLZ, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Gruß Werner
AW: VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 14:26:07
Daten
Hier noch nen kleine Aktualisierung. Dachte och da schafft man vielleicht doch auch selbst aber naja Pusteblume... Ich habs kläglich mit
WSN.Range("A2:D" & intLZnew).Copy Destination:=WS.Cells(intLZ, 1).PasteSpecial(xlPasteValues)
Fehlermeldung ist:
Laufzeitfehler 1004
Die PasteSpecial-Eigenschaft des Range-Objektes kann nicht zugeordnet werden.

Bin halt noch nicht so firm um da direkt nen Lösungsansatz zu finden.
Danke
Thorsten
Anzeige
AW: VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 14:28:20
Daten
Hallo,
bei Copy und PastSpecial geht das nicht in einer einzigen Codezeile.
Da muss zwingend die Codezeile mit dem PasteSpecial in eine separate Codezeile.
Gruß Werner
AW: VBA - dynamische Anzahl von Daten aus weiterer Arbeitsmappe kopieren
06.02.2020 17:59:50
Daten
Ich prüfe das am Montag danke dir schon mal, wollte nur kurze Info geben dass ich mich erst am Montag wieder ransetzen kann. Schönes Wochenende
Thorsten
dann bitte nicht offen setzen...
06.02.2020 18:46:46
Werner
Hallo,
...falls was nicht passt, dann am Montag wieder offen.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige