HERBERS Excel-Forum - die Beispiele

Thema: Eintrag von Werten in verschiedene Arbeitsmappen

Home

Gruppe

Ereignis

Problem

Beim Schließen der Arbeitsmappe sollen die Zeilen in Abhängigkeit der Werte in Spalte G in verschiedene Arbeitsmappen eingetragen werden.

Lösung
Geben Sie den Ereigniscode in das Klassenmodul der Arbeitsmappe ein.
ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Dim wks As Worksheet
   Dim iRow As Integer, iRowL As Integer, iRowT As Integer
   Dim sPath As String, sNo As String, sFile As String, sNoOld As String
   sPath = Application.DefaultFilePath & "\"
   If MsgBox("Verteilung vornehmen?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
   Application.ScreenUpdating = False
   Worksheets("Tabelle1").Select
   Set wks = ActiveSheet
   Range("A1").CurrentRegion.Sort key1:=Range("G2"), order1:=xlAscending, header:=xlYes
   iRowL = wks.Cells(Rows.Count, 1).End(xlUp).Row
   For iRow = 2 To iRowL
      sNoOld = sNo
      Select Case wks.Cells(iRow, 7).Value
         Case Is <= 2500
            sNo = "1"
         Case Is <= 5000
            sNo = "2"
         Case Is <= 7500
            sNo = "3"
         Case Else
            sNo = "4"
      End Select
      If wks.Cells(iRow, 7).Value <> Cells(iRow - 1, 7).Value Then
         sFile = "Pruefen_" & sNo & ".xls"
         If Dir(sPath & sFile) <> "" Then
            Workbooks.Open sPath & sFile
         Else
            Workbooks.Add 1
            wks.Range("A1:H1").Copy Range("A1")
         End If
      End If
      Do While Int(wks.Cells(iRow, 7).Value / 2500) = Int(wks.Cells(iRow + 1, 7).Value / 2500) Or iRow = iRowL
         iRowT = Cells(Rows.Count, 1).End(xlUp).Row + 1
         Range(Cells(iRowT, 1), Cells(iRowT, 8)).Value = wks.Range(wks.Cells(iRow, 1), wks.Cells(iRow, 8)).Value
         iRow = iRow + 1
         If iRow > iRowL Then Exit Do
      Loop
      ActiveWorkbook.SaveAs sPath & sFile
      ActiveWorkbook.Close savechanges:=False
   Next iRow
   Application.ScreenUpdating = True
End Sub

Beiträge aus dem Excel-Forum zu den Themen Ereignis und BeforeClose

Workbook_BeforeClose + Cancel = True Msg mit 2 Ereignissen +Cancel
Ereignisprozedur Makro für ereignisabh. Druck verschiedener Seiten
UF Activate / Initialize Ereignis Namen definiert- in Ereignis verwenden?
Zeilen aus- einblenden als Ereignis? Welches Ereignis ist das richtige ??
Ereignis Arbeitsblatt sperren abfangen Ereignisprozedur f. Multipage-Reiter
Frage zum Change ereignis Change-Ereignis in Combobox unterdrücken
Combobox Ereignis Userform, Ereignis deklarieren im Klassenmodul
Welches Diagramm-Ereignis? Bestimmtes Ereignis in Spalte zählen
Command Button Ereignis Ereignis von Laufzeit-Checkbox
change-ereignis bei dynamischen Controls / Teil 2 Change Ereignis verhindern
change-ereignis bei dynamisch erstellten Controls Schaltfläche - Ereignis erst nach Bestätigung ausl
Objekt_Error - Ereignis in UserForm change ereigniss auf userform.
Click-Ereignis für Checlbox nicht ausführen? Speichern einer Kopie durch Ereigniss Workbook_bef
Reagieren auf Tastaturereignisse Ausnahmen für Exit-Ereignis
Workbook_beforeClose umgehen Exit-Ereignis SetFocus
Workbook_BeforeClose Problem select Ereigniss UF Show
Ereignis zeitweise mit Fehler Ereignismakro
Selectereigniss in Spalte doppeltes Klick-Ereignis
Doppelklick-Ereignis VBA Ereignis: Änderung der Hintergrundfarbe
Ereigniscode aus zwei Teilen fnk. nicht Exit Ereignis einer Textbox im Frame
Change-Ereignis bei Auswahllisten Problem mit Workbook_BeforeClose
Worksheet_Change Ereignis erweitern Exit Ereignis springt nicht an
Exit-Ereignis Ereignis "BeforeSave" - ".Find" geht nic
change ereigniss nicht ausführen Userform Exit Ereignis
Rekursiven Aufruf von Ereignissen verhindern Makro läuft nicht, falsches Ereignis?