Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bestimmte Werte "transportieren"
#1
Hallo Zusammen,

ich habe ein Problem und komme nicht wirklich weiter.

Ich habe eine 2-spaltige Tabelle welche wie folgt aufgebaut ist...

  A                B

IEN......         12
A3                8
C6                4
IEN...            ...


Die Zellen links sind eine Auftragsnummer (welcher IMMER mit IEN beginnt) sowie dazugehörige Kampagnen-Nummern. Die Spalte rechts gibt einen Wert an (im Beispiel ist 12 die Summe aus den Kampagnenwerten (Nicht als Formel hinterlegt)).

Ich suche nun eine Möglichkeit wie ich die Zeilen unter der jeweiligen Auftragsnummer neben die Auftragsnummer bekomme. Und zwar so, dass die Formel erkennt, dass eine neue Auftragsnummer beginnt und welche Kampagnen dazugehören.

Es handelt sich immer um eine unterschiedliche Anzahl von Kampagnen und somit Zeilen pro Auftragsnummer, zudem handelt es sich um über eine halbe Millionen Zeilen weswegen manuelles kopieren und transportieren keine Option ist.

Vielen Dank und beste Grüße

MSJH
Antworten Top
#2
Hallo,

mit VBA sollte es möglich sein.

Lade eine Beispieldatei mit ca 20 Zeilen Ist-Zustand und Soll-Zustand hoch.

mfg
Antworten Top
#3
Hallo Fennek,

vorab schon mal vielen Dank!

VG


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 52,46 KB / Downloads: 6)
Antworten Top
#4
Hallo Marian,

es ist einfacher ist Name und Wert nebeneinander zu stellen:


Code:
Sub F_en()
Dim i&

Sheets("Ist").Activate
Ar = Cells(1).CurrentRegion
With CreateObject("Scripting.Dictionary")
   For i = 2 To UBound(Ar)
       If Left(Ar(i, 1), 3) = "IEN" Then
           k = Ar(i, 1)
           .Item(k) = Ar(i, 2)
       Else
           .Item(k) = .Item(k) & "|" & Ar(i, 1) & "|" & Ar(i, 2)
       End If
       'Debug.Print .Count, k, .Item(k)
   Next i
Sheets("Test").Activate
Cells.Clear
i = 1
For Each k In .keys
   i = i + 1
   Cells(i, 1) = k
   Tx = Split(.Item(k), "|")
   Cells(i, 2).Resize(, UBound(Tx) + 1) = Application.Transpose(Application.Transpose(Tx))
Next k

End With
End Sub


mfg

(zum Testen ist es einfacher mit einem Sheet "Test" und Activate zu arbeiten, wenn alles passt, kann das gelöscht werden.)


Angehängte Dateien
.xlsm   MSJH.xlsm (Größe: 71,72 KB / Downloads: 1)
Antworten Top
#5
Hallo Fennek,

vielen vielen Dank!! Hat super funktioniert.

MfG
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste