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

Makro zum verschieben von Daten

Makro zum verschieben von Daten
16.08.2023 12:39:20
Bernd_
Hallo Zusammen,

in meiner Beispieldatei sind zwei Blätter.
Einmal das Blatt FileList und das Blatt Matrix.

Im Blatt FileList sind Dateinamen in Spalte A aufgelistet. In Spalte B steht das Änderungsdatum.Es sind Daten aus den letzten 30 Tagen.
Sie sind immer Absteigend sortiert mit dem neusten zuerst.Es kommen immer neue dazu mit anderm datum.

Durch das Makro "KopiereWerteMitFormatierung" werden die Daten in das Blatt Matrix kopiert.
Ab Spalte B werden die Deteinamen aufgelistet. In der Spalte A stehen Namen und wenn ein Name die Datei zum Beispiel gelesen hat,wird ein Kreuz gesetzt.
Das klappt auch alles.

Problem:
Ich möchte aber gerne wenn jetzt auf dem Blatt FileList neue Daten hinzukommen mit einem neuen Datum das auf dem Blatt Matrix die älteren nach rechts verschoben werden so das die
Kreuze dort bleiben wo sie sind zu dem passenden Dateinamen in Zeile 1.

Die Neuen stehen dann also im Blatt Matrix vorne. Sollten das datum älter als 30 Tage sein soll der Eintrag im Blazz Matrix hinten gelöscht werden.
https://www.herber.de/bbs/user/162353.xlsm

Leider bekomme ich es nicht hin. Eventuell hat jemand eine Idee ?

Danke und Gruß Bernd_

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum verschieben von Daten
16.08.2023 16:08:40
Herbert Grom
Hallo Bernd,

sehe ich das richtig, dass die neuen Daten, die im Sheet "FileList" dazu kommen, immer in die Zeile 2 rein kommen und die anderen um eine Zeile nach unten?

Wenn ja, wie viele Zeilen, von denen, die nach unten geschoben werden, sollen davon erhalten bleiben?

Servus
Makro zum verschieben von Daten
17.08.2023 08:04:39
MCO
Hallo Bernd!

Den vorhanden Code hab ich vereinfacht und versucht die Anforderung umzusetzen.

Probier das mal:



Sub KopiereWerteMitFormatierung()
Dim QuellBlatt As Worksheet
Dim ZielBlatt As Worksheet
Dim LetzteZeile As Long

' Definiere die Quell- und Zielblätter
Set QuellBlatt = ThisWorkbook.Sheets("FileList")
Set ZielBlatt = ThisWorkbook.Sheets("Matrix")

LetzteZeile = QuellBlatt.Cells(QuellBlatt.Rows.Count, "A").End(xlUp).Row ' Finde die letzte Zeile im Quellblatt
QuellBlatt.Range("A2:A" & LetzteZeile).Copy
ZielBlatt.Cells(1, 2).PasteSpecial xlPasteAllUsingSourceTheme, Transpose:=True
ZielBlatt.Cells.Columns.AutoFit

Sheets("Matrix").Select
Range("B2").Select

End Sub




Sub Aktuell_test()
Dim QuellBlatt As Worksheet
Dim ZielBlatt As Worksheet
Dim cl As Range
Dim gefunden As Range
Set QuellBlatt = ThisWorkbook.Sheets("FileList")
Set ZielBlatt = ThisWorkbook.Sheets("Matrix")

'Test ob eingetrgene Daten noch vorhandenen und aktuell sind
For Each cl In ZielBlatt.Range("B1:ZZ1").SpecialCells(xlConstants) 'Spalten durch gehen zum löschen
Set gefunden = QuellBlatt.Cells.Find(cl.Value, lookat:=xlWhole)
If Not gefunden Is Nothing Then 'gefunden!
If gefunden.Offset Date - 30 Then cl.Columns.EntireColumn.Delete 'älter 30 Tage
End If
Next cl

'gegenprobe, sind vorhandene Daten >30 Tage auch eingetragen
For Each cl In QuellBlatt.Range("A2:A" & Rows.Count).SpecialCells(xlConstants)
If cl.Offset(0, 1) > Date - 30 Then 'Datumsprüfung
With ZielBlatt
Set gefunden = .Rows(1).Find(cl.Value, lookat:=xlWhole) 'schon vorhanden?
If gefunden Is Nothing Then 'nicht gefunden!
.Range("B:B").Insert xlToRight 'spalte einfügen
.Range("C:C").Copy
.Range("B:B").PasteSpecial xlPasteFormats 'format übernehmen
.Range("B1") = cl.Value
End If
End With
End If
Next cl
End Sub


Gruß, MCO
Anzeige
Makro zum verschieben von Daten
17.08.2023 09:25:42
Bernd_
Hallo MCO,

das Makro funktioniert genau so wie ich es mir vorgestellt habe.
Herzlichen Danke.

Gruß Bernd_
Makro zum verschieben von Daten
17.08.2023 09:58:46
Bernd_
Habe doch noch was gefunden.

Die Eintragungen im Blatt Matrix sind jetzt so das die Älterste in Spalte B steht. In Spalte B sollte allerdings die Neuste stehen.

Kannst Du das bitte noch anpasssen und mir die Änderung hier Posten ?

Danke Bernd_
Makro zum verschieben von Daten
17.08.2023 11:37:31
Bernd_
und die PDF Liks sind auf dem Blatt FileList ja Hyperliks zu den PDF Dateien. Im Blatt MAtrix sollten dieses auch die Hyperlinks zu den PDF Dateien sein.

Danke Bernd_
Makro zum verschieben von Daten
16.08.2023 18:21:36
Bernd_
Hallo Herbert,

ja die Liste in FileList wird aus einem Ordner geladen. Es werden immer neue DAteien geladen der letzten 20 Tage. Es können sehr viele sein. Und die neuste steht immer in Zeile 2. Aber es sind immer nur die der letzten 20 Tage vom Datum her.

Hoffe es hat geholfen.

Gruß Bernd_
Anzeige
AW: Makro zum verschieben von Daten
17.08.2023 08:58:28
Herbert Grom
Hallo Bernd,

so wie ich dich verstanden habe, muss immer nur 1 Tag aus "FileList" Zeile 2 nach "Matrix" übertragen werden. Das Datum spielt bei der Übertragung keine Rolle. Ist das so richtig?

Servus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige