Codes einsortieren
22.04.2014 17:05:37
Markus
habe folgendes Problem, das meine Fähigkeiten übersteigt.
Ich habe eine Spalte voller Codes die ich in "Boxen" sortieren muss. Jeder Code soll X-mal (z.B. 7)nebeneinander in der nur EINER Box im gesamten Tabellenblatt auftauchen und die Box soll mit Codes vollständig gefüllt werden.
Diese Boxen haben immer den gleichen Kopf (Storage Place etc.) und der Kopf ist immer in der selben Position zur Position A1 der Box. Die Boxen selbst können jedoch in unterschiedlichen Tabellenblättern unterschiedliche Dimensionen haben ZxY (14x14, 8x12, etc). Von den exakt gleichen Boxen gibt es pro Blatt verdammt viele.
Beispieldatei hier (https://www.herber.de/bbs/user/90299.xlsx)
Ich hatte hier vor einer ganzen Weile von Franc großartige Hilfe wodurch ich die Boxen zumindest definieren kann:
Sub Boxen_fuellen()
Dim strProbe As String, SP_Spalte As Double, dPosZahl As Double, dPosBuchstabe As Double, dEnde _
_
As Double, d_Spalte As Double
Dim SP, Probe, SP_ersteAdresse As String, Probe_ersteAdresse As String, i As Double, j As _
Double, strGefunden As String, strGefunden2 As String
Dim StrSP_Zeile As String, strSP_Spalte As String, varSP_Zeile As Variant, varSP_Spalte As _
Variant
Dim strBereich As String, strZelle1 As String, strZelle2 As String, blProbe As Boolean
Dim strID As String
'vollständig variables System - alles wird ausgehend von der Zelle "Storage Place" bestimmt
'dadurch ist es wirklich egal wo dieses Boxsystem steht - kann auch x mal nebeneinander stehen _
_
ect.
'Abstände definieren - Ausgangspunkt ist die Zelle wo jeweils "Storage Place" steht
d_Spalte = 13 ' Letzte Spalte von Storage Place aus gesehen
dPosZahl = 4 ' wenn Storage Place gefunden wird ist 4 Zeilen drunter die Position
dPosBuchstabe = "-1" ' Buchstaben liegen 1 Spalte links von Storage Place
dEnde = 18 ' Storage Place bis "N"
dBoxNamen = 4 ' Bezeichnungen der Box liegen in der 4. Spalte neben Storage Place
dBlatt = 1 ' in welchem Blatt liegen die Daten
With ThisWorkbook.Sheets(dBlatt).UsedRange ' im genutzten Arbeitsbereich suchen
Set SP = .Find(What:="Storage Place", LookIn:=xlValues) ' nach "Storage Place"
If Not SP Is Nothing Then
SP_ersteAdresse = SP.Address
Do
StrSP_Zeile = StrSP_Zeile & " " & SP.Row ' alle Zeilen wo Storage Place gefunden _
wird mit Leerzeichen getrennt notieren
strSP_Spalte = strSP_Spalte & " " & SP.Column ' Spalte merken
Set SP = .FindNext(SP)
Loop While Not SP Is Nothing And SP_ersteAdresse SP.Address
End If
End With
Set SP = Nothing
End Sub
Ich habe leider keine Ahnung wie ich ein Makro zustande bringe, das die Spalte im Blatt 2 durcharbeitet und die Boxen füllt. Eine Überprüfung ob ein Code in dem Blatt schon in einer Box vorhanden ist ist nicht zwingend nötig, da ich die Liste immer neu generiere, wenn einfach möglich aber fein.
Kann mir da jemand helfen?
Vielen Dank im Vorraus!
Markus