Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro zum finden von der letzten Spalte

Makro zum finden von der letzten Spalte
27.04.2018 12:59:45
der
Hallo,
ich hätte eine Aufgabe, welche ich nicht lösen kann. Ich habe eine Tabelle in den Zeilen mit einer Artikelnummer und in der Spalte mit einem Datum. Als Werte werden die Verkaufswerte angezeigt. Jetzt habe ich das Problem, dass z.B. zum 03.01.2018 unter dem Artikel 1 zwei Werte stehen (Wert alt und neu jeweils in einer eigenen Spalte) und dieser Wert sind auch Gültig für den Zeitraum davor oder danach. Ganz konkret möchte ich, dass das Makro Zeile für Zeile durchläuft (Anzahl der Zeilen sind variabel) und immer die Spalte sucht in dieser der letzte Wert steht. Wenn das Makro diese Zelle gefunden hat, dann soll das Makro diese Zelle kopieren und nach rechts verschieben solange wie in der Überschriftszeile ein Datum steht. Das wäre der erste Teil, zugleich soll das Makro von dieser gefunden Zelle eins nach links gehen dort steht auch ein Wert und diesen nach links kopieren bis er auf eine Zelle mit einem Wert trift. Wenn das passiert, dann muss das Makro eine Zelle nach links gehen und diesen Wert kopieren und wieder nach links einfügen. Schluss soll sein, wenn das Makro die Spalte B erreicht und alle Zeilen durchlaufen hat. Denn in Spalte A stehen die Artikelnummern.
Danke schon mal für die Beantwortung meiner Frage.
Gruß
Christoph
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum finden von der letzten Spalte
27.04.2018 22:44:21
der
Hallo Christoph,
wenn ich deine Anforderung richtig verstanden habe, dann kannst du das mit dem folgenden Programm machen.
Sub Auffüllen()
Dim letzteSpalte As Long
Dim letzteSpalteÜ As Long
Dim letzteZeile As Long
Dim spalte As Long
Dim wert As Currency
Dim zeile As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Artikel")
letzteSpalteÜ = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For zeile = 2 To letzteZeile
letzteSpalte = ws.Cells(zeile, ws.Columns.Count).End(xlToLeft).Column
' Nach rechts auffüllen
If letzteSpalte > 1 Then
If letzteSpalte  2 Then
spalte = letzteSpalte - 1
wert = ws.Cells(zeile, spalte)
Do Until spalte 
Falls ich dich missverstanden habe, dann wäre es am besten, wenn du eine Beispielmappe hochladen würdest. Dabei solltest du die Ausgangssituation und die gewünschte Endsituation darstellen.
Viele Grüße
Dieter
Das Programm und meine Datenstruktur findest du hier
https://www.herber.de/bbs/user/121332.xlsm
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige