2016-11-01 3 views
0

Wie kann ich Benutzer mithilfe von VBA automatisch vor dem Speichern Zeilen von Daten aus ihrem Blatt in die letzte Masterzeile verschieben (nicht kopieren)?Verwenden von VBA in Excel Verschieben von Zellenzeilen an Master

5 einzelne Blätter/Benutzer geben den gleichen Datentyp ein (verfolgen ihre Programmierdaten). Wenn der Benutzer speichert, müssen seine Datenzeilen auf dem Blatt zur weiteren Analyse in das Hauptblatt verschoben werden. Diese einmal verschobenen Zeilen sollten nicht in einem einzelnen Blatt vorhanden sein.

Vielen Dank, im Voraus für jede Hilfe.

+0

Können Sie den Befehl SAVE/SAVE AS abfangen? – FDavidov

+0

Ausschneiden und Einfügen einer Option? –

+0

Vielen Dank für beide Antworten. – Jay

Antwort

1

Mein Kommentar darf nicht klar gewesen sein, bedeuten, dass ich als Teil Ihrer Funktion wie diese Cut-Paste ...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 

Dim Master As Worksheet 
Dim LastRow_Master As Integer 
Dim LastRow_Current As Integer 

Set Master = ThisWorkbook.Worksheets("Master") 

For Each ws In ThisWorkbook.Worksheets 
    If Not ws Is Master Then 
     LastRow_Master = Master.Cells(Master.Rows.Count, 1).End(xlUp).Row + 1 
     LastRow_Current = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 

     If LastRow_Current > 1 Then 
     ws.Rows("2:" & LastRow_Current).Cut Master.Rows(LastRow_Master) 
     End If 

    End If 
Next 

Application.CutCopyMode = 0 

End Sub 

Anmerkung: Ich gehe davon aus jedem Arbeitsblatt einen Header in Zeile hat 1. die Einschließlich Meister.

+0

J Reid - Danke! – Jay

Verwandte Themen