Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
Tabelleninhalt erweitern via VBA
19.04.2023 15:46:55
Addi

Hallo Zusammen,
vorab - ich habe leider keine Möglichkeit eine Beispieldatei hochzuladen...von daher versuche ich mein Problem möglichst genau zu schildern.
Meine Tabelle umfasst Spalte A bis J.
In Spalte A ist ein Datum in einer vorher definierten Range (z.B. vom 28.02.2023 bis 30.03.2023).
In Spalte B ist eine Produktnummer (z.B. 000132_002). Diese Produktnummer ist zu jedem Datum genau einmal vorhanden...
In den Spalten C bis J sind Stammdaten zu der Produktnummer gelistet.
In der Tabelle können mehrere Produktnummern enthalten sein - jede Produktnummer dann wie schon gesagt ist zu jedem Datum einmal vorhanden.

Jetzt meine Frage...kann man die definierte Datumsrange bei jedem Produkt um 5 Tage erweitern...in diesem Fall dann bis zum 04.04.2023 und in diese Erweiterung
je die letzten Stammdaten zu dem Produkt (hier also die die beim 30.03.2023 stehen) kopieren, sodass am Ende zu jedem Produkt hier zu den Dati 30.03.2023 bis 04.04.2023 die gleichen Daten in Spalte C bis J stehen?

Ich hoffe ich konnte mein Problem/Herausforderung einigermaßen formulieren und Ihr könnt mir ggf. bei der Lösung helfen.
Vielen Dank vorab.
Viele Grüße Addi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelleninhalt erweitern via VBA
19.04.2023 16:02:34
onur
"ich habe leider keine Möglichkeit eine Beispieldatei hochzuladen" ? Und WARUM nicht ???


AW: Tabelleninhalt erweitern via VBA
19.04.2023 16:05:48
Addi
Uploads sind auf meinem Rechner (dienstl.) geblockt...


AW: Tabelleninhalt erweitern via VBA
20.04.2023 08:53:02
Addi
Guten Morgen, hat hierzu noch jmd. eine Idee oder einen Ansatz - oder ist diese Anfrage ggf. auch zu umfangreich?
Vielen Dank und viele Grüße
Addi


AW: Tabelleninhalt erweitern via VBA
20.04.2023 09:41:15
GerdL
Moin Addi

Sub Unit()

    Dim lastDate As Date, a As Long, Z As Long, ZZ As Long
        
    
    lastDate = WorksheetFunction.Max(Columns("A"))
    Z = WorksheetFunction.Match(CLng(lastDate), Columns("A"), 0)
    ZZ = WorksheetFunction.Match(CLng(lastDate), Columns("A"), 1)
        
    For a = CLng(lastDate) + 1 To CLng(lastDate) + 5
        Range(Cells(Z, 2), Cells(ZZ, 10)).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1, 1)
        Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(ZZ - Z + 1, 1) = CDate(a)
    Next


End Sub
Frohes Schaffen
Gerd


Anzeige
AW: Tabelleninhalt erweitern via VBA
20.04.2023 12:25:34
Addi
Hallo Gerd,
vielen Dank für Deine Hilfe - leider gibt es aber noch ein Problem.
Das Coding läuft fehlerfrei durch, erstellt allerdings für die einzelnen Produkte nicht nur 5 weitere Einträge - in meinem Fall für Datum 31.03.2023 bis 04.04.2023...
...sondern es erstellt für jedes Datum und Produkt nochmals alle Einträge der vorangegangen Dati...
D.h. zu Produkt A gibt es z.B. 30 Einträge für den 31.03.2023 je mit den Daten der bereits vorhandenen Dati...
Ich wollte hier realisieren, das zu jedem Produkt die hinzugefügten 5 Dati jeweils die Daten des jüngsten Eintrages aus dem Basisdatenraum bekommen...
Also Produkt A zum 31.03.2023 soll die Daten von Produkt A zum 30.03.2023 bekommen, ebenso soll Produkt A zum 01.04.2023 die Daten vom 30.03.2023 bekommen usw...
Kann man das auch so umsetzten?
Vielen lieben Dank und Gruß
Addi


Anzeige
AW: Tabelleninhalt erweitern via VBA
20.04.2023 12:41:11
GerdL
Hallo Addi,

bei mir funktioniert es soweit.
"alle Einträge der vorangegangen Dati.." kann ich ohne deine Beispieldatei leider nicht nachvollziehen.
Ich stelle mal auf "noch offen".

Gruß Gerd


AW: Tabelleninhalt erweitern via VBA
20.04.2023 13:06:28
Addi
Hallo Gerd,
vielen Dank...ich werde mal versuchen (über Umwege) die Beispieldatei hochzuladen - bin mir nicht sicher ob ich das funktioniert aber vllt. gibt es da ja ein Schlupfloch...
Viele Grüße
Addi


AW: Tabelleninhalt erweitern via VBA
20.04.2023 13:32:37
Addi
Hallo Gerd,
habe das jetzt über mein Handy hochgeladen...
...hier der Link (den Datenumfang habe ich hier natürlich um extrem reduziert!!))

https://www.herber.de/bbs/user/158800.xlsx

Vielen Dank und Gruß
Addi


Anzeige
AW: Tabelleninhalt erweitern via VBA
20.04.2023 14:33:26
Rudi Maintaire
Hallo,
Sub Erweitern()
  Dim vntTmp
  Dim i As Long, j As Long, n As Long
  Dim objArt As Object, objLast As Object, oObj
  Dim d As Date
  Dim arrLast, arrOUT()
  
  Dim iAnzTage As Integer
  
  iAnzTage = Application.InputBox("Anzahl Tage?", , , , , , , 1)
  If iAnzTage = 0 Then Exit Sub
  
  Set objArt = CreateObject("scripting.dictionary")
  Set objLast = CreateObject("scripting.dictionary")
  
  vntTmp = Cells(1, 1).CurrentRegion
  
  'Artikel & letztes Datum sammeln
  For i = 2 To UBound(vntTmp)
    objArt(vntTmp(i, 2)) = Application.Max(vntTmp(i, 1), objArt(vntTmp(i, 2)))
  Next
  
  'letzte Werte
  For i = 2 To UBound(vntTmp)
    If CLng(vntTmp(i, 1)) = objArt(vntTmp(i, 2)) Then
      objLast(vntTmp(i, 2)) = Application.Index(vntTmp, i)
    End If
  Next i
  
  arrLast = objLast.items
  ReDim arrOUT(1 To objArt.Count * 5, 1 To UBound(vntTmp, 2))
  
  For i = 0 To UBound(arrLast)
    For d = objArt(arrLast(i)(2)) + 1 To objArt(arrLast(i)(2)) + iAnzTage
      n = n + 1
      arrOUT(n, 1) = d
      For j = 2 To UBound(arrLast(i))
        arrOUT(n, j) = arrLast(i)(j)
      Next j
    Next d
  Next i
  
  Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(arrOUT), UBound(arrOUT, 2)) = arrOUT
  
End Sub
Gruß
Rudi


Anzeige
AW: Tabelleninhalt erweitern via VBA
20.04.2023 15:54:50
Addi
Hallo Rudi und Gerd,
vielen lieben Dank für Eure Hilfe - der Code von Rudi hat letztendlich auf Anhieb das gewünschte Ergebnis gebracht!
Aber auch Dir Gerd, vielen Dank für Deine Unterstützung!!
Viele Grüße Addi

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige