Hallo alle miteinander,
ich hoffe ihr könnt mir helfen, ich bin noch ziemlich neu in dem Bereich vba unterwegs
Folgendes Problem:
Ich führe aus sehr vielen Excel Dateien spezifische Bereiche in ein neues Excel FIle (in dem auch das Makro läuft) zusammen.
Jetzt muss ich aber zusätzlich zu den kopierten Zeilen einen Identifier einfügen(vorzugsweise in die erste Spalte), der mir wiedergibt, aus welcher datei (xyfile.name) diese kopierten Zeilen stammen.
Der Import funktioniert einwandfrei jedoch schaffe ich das mit dem Identifier nicht.
Der aus einem Private sub aufgerufene sub (zwecks loop für die verschiedenen dateien) sieht folgendermaßen aus, und den kritischen Bereich habe ich mit 'HIER FANGEN DIE PROBLEME AN' markiert:
Sub Upload_Risk(Allfile As Workbook, PRJFile As Workbook)
'-------------------------------------------------------------------------------------------
' Upload actual report data from PRJ work file to consolidation file, sheet "INT"
'-------------------------------------------------------------------------------------------
Dim MaxLine As Integer
Dim MaxFillLine As Integer
Dim FirstEmptyLine As Integer
Dim NewLine As Integer
Dim lngLetzte As Long
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 6)), Cells(Rows.Count, 6).End(xlUp).Row, Rows.Count)
'Upload takes some time, calculation and screen updating is suspended during upload of data
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
'Identify first empty line in consolidation file, sheet "INT"
Allfile.Activate
Sheets("INT").Select
FirstEmptyLine = 1
While Cells(FirstEmptyLine, "H").Text <> ""
FirstEmptyLine = FirstEmptyLine + 1
Wend
PRJFile.Activate
Sheets("RISKS").Select
'Identify missing Risks
MaxLine = Cells(Rows.Count, "B").End(xlUp).Row
If MaxLine < 1 Then
MsgBox ("There is no Risk in PRJ work file " & PRJFile.Name)
Exit Sub
End If
'Identify and copy all available risks
PRJFile.Activate
Sheets("RISKS").Select
Range("A7:P" & lngLetzte).Copy
Allfile.Activate
Range("C" & FirstEmptyLine).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Fill Risks in first empty line
NewLine = FirstEmptyLine
While Cells(NewLine, "C").Text <> ""
NewLine = NewLine + 1
HIER FANGEN DIE PROBLEME AN
Dim Reihe As Integer
Reihe = NewLine
With ActiveWorkbook.Worksheets("INT")
Do Until .Cells(Reihe, "H") = vbNullString
If .Cells(Reihe, "H") <> "" Then
.Cells(Reihe, "A") = PRJFile.Name
End If
Reihe = Reihe + 1
Loop
End With
Wend
'Calculation and screen updating is resumed
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub
Im Prinzip soll das Makro in dem Moment, in dem es auch die Zeilen kopiert in das Konsolidierungsfile die Identifier schreieben
Ich hoffe Euer Fundus an Wissen hilft mir hier weiter.
Viele Grüße und Danke schon mal im Voraus
Dennis
|