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

Verschieben von Zeilen per VBA bei Öffnen

Verschieben von Zeilen per VBA bei Öffnen
01.07.2015 08:40:57
Zeilen
Hallo zusammen,
ich wende mich vertrauensvoll an Euch Fachleute, da ich Hilfe bei einem Makro benötige. Folgende Funktion soll in eine Datei eingebaut werden: Bei Öffnen des Dokuments soll automatisch eine Routine ablaufen, die prüft, ob ein Datensatz älter als 365 Tage ab einem in einer Spalte eingetragenen Datum ist. Falls ja, soll die komplette Zeile in Tabellenblatt 2 verschoben werden. Ggf. entstehende Leerzeilen in Tabellenblatt 1 sollen gelöscht werden, das Einfügen der Zeilen in Tabellenblatt 2 soll untereinander chronologisch erfolgen.
Rudimentäre Beispieldatei: https://www.herber.de/bbs/user/98567.xlsx
Vielen Dank vorab und einen schönen Tag.
Viele Grüße
Uwe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verschieben von Zeilen per VBA bei Öffnen
01.07.2015 23:14:06
Zeilen
Hallo Uwe,
in des Modul "DieseArbeitsmappe".
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
  Dim rng As Range, rngC As Range
  Dim lngLast As Long
  
  With Tabelle1
    lngLast = Application.Max(2, .Cells(.Rows.Count, 2).End(xlUp).Row)
    For Each rng In .Range("D3:D" & lngLast)
      If IsDate(rng) Then
        If rng < Date - 365 Then
          If rngC Is Nothing Then
            Set rngC = rng.EntireRow
          Else
            Set rngC = Union(rngC, rng.EntireRow)
          End If
        End If
      End If
    Next
  End With
  
  With Tabelle2
    If Not rngC Is Nothing Then
      lngLast = Application.Max(2, .Cells(.Rows.Count, 2).End(xlUp).Row)
      rngC.Copy .Cells(lngLast + 1, 1)
      rngC.Delete
    End If
  End With
  
  Set rng = Nothing
  Set rngC = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Verschieben von Zeilen per VBA bei Öffnen
02.07.2015 10:32:28
Zeilen
Hallo Sepp,
vielen Dank!!! Funktioniert einwandfrei, genau so wie ich es mir vorgestellt hatte!!! Vielen Dank für die schnelle Hilfe! Ich habe an meiner Datei schon etwas weitergebastelt und fürchte, dass ich hierzu noch weitere Unterstützung von euch benötigen werde. Ich würde dafür allerdings einen neuen Thread eröffnen, da es sich um eine gänzlich andere Funktion/Anwendung innerhalb der Datei handelt. Falls ich in diesem Thread weitermachen soll, bitte Bescheid geben.
Danke nochmals an Sepp und viele Grüße
Uwe

143 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige