Hallo Zusammen,
ich arbeite gerade erstmalig mit Makros und VBA und muss eine Vielzahl an Aktionen an Daten durchführen. Leider finde ich online keine Lösungen für meine einzelnen Schritte und hoffe, dass mir hier bei dem einen oder anderen Schritt geholfen werden kann.
Ausgangslage: 17 Exceldateien, welche regelmäßig mit neuen Daten gespeist werden
Ziel: 1 Exceldatei mit allen (relevanten Daten) der 17 Dateien
Ich habe einen Code gefunden, um die Inhalte der 17 Dateien in eine definierte Arbeitsmappe zu übertragen:
Sub MergeSheets2()
'Updated by Extendoffice
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next
vntPfadUndDateiNamen = Application.GetOpenFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx", Title:="Wählen Sie die Dateien für die Zusammenführung aus!", MultiSelect:=True)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Frage 1: Aktuell werdend ie kompletten Inhalte übertragen- wie kann ich hier fixe Spalten vorgeben?
Frage 2: Wie stelle ich sicher, dass bei einem Update nur bisher fehlende Daten übertragen werden und nicht der ganze Abruf von vorne startet?
Darüberhinaus muss ich die Datenstruktur deutlich anpassen:
Ausganglage: |
|
|
|
|
|
|
|
|
|
|
|
Participant Public ID |
Reaction Time |
Correct |
Incorrect |
Dishonest |
Timed Out |
ImageCentre |
TextCentre |
|
|
|
|
89 |
|
0 |
1 |
0 |
|
|
|
|
|
|
|
89 |
24684 |
0 |
1 |
0 |
|
|
|
|
|
|
|
89 |
1265 |
1 |
0 |
0 |
|
Bein08.png |
|
|
|
|
|
89 |
926 |
1 |
0 |
0 |
|
|
Original |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ziel: |
|
|
|
|
|
|
|
|
|
|
|
Participant Public ID |
Bein08.png |
Bein08.png_Correct |
Bein08.png_Incorrect |
Bein08.png_Dishonest |
Bein08.png_Timed Out |
Original |
Original_Correct |
Original_Incorrect |
Original_Dishonest |
Original_Timed Out |
|
SPP_89 |
1265 |
1 |
0 |
0 |
|
926 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ich habe um die 300 Participants und jeder davon hat ca. 80 Zeilen, die enstprechend der beiden beispielzeilen umstrukturiert werden müssen. Wie macht man denn sowas generell?
Ich bin für jede Hilfe und Hinweis mehr als dankbar,
vielen Dank Euch schonmal fürs Lesen :-)
|