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.

Datensortierung 1 x linear, 1 x umgekehrt / Symetrisch
#1
Liebe Freunde

Ich bin seit Tagen am verzweifeln und wende mich nun hoffnungsvoll an euch.

In einer mittlerweile sehr komplexen Mappe rechnet mir VBA mittels Solver und Shapes-Visualisierung in Userform die optimale Anzahl/Zusammenstellung an Gerüstfeldern für eine Hauswand. Soweit, so gut.

Für ein Szenario muss ich jedoch die errechneten Elemente in symetrischer Reihenfolge bringen und hier bin ich am verzweifeln. Weder mit verschachtelten Schleifen oder sonst wie komme ich zu einem Ergebnis. Mittlerweile habe ich das Gefühl mich immer weiter von einer Lösung zu entfernen... :.-(

Jedes Element kommt in gerader Anzahl daher. Nur bei den Hauptfeldern (= 2.50m) ist ein zusätzliches Feld, welches genau in der Mitte positioniert werden muss.

Für alle die die Beispielmappe nicht downloaden können:
Ich habe z.B.
Anzahl Masse
2 0.70
0 1.00
2 1.25
3 2.50

Die richtige Ausgabe wäre
0.70
1.25
2.50
2.50 (= mittiges Hauptfeld)
2.50
1.25
0.70

Hättet ihr eine Lösung oder wenigstens einen Ansatz? Ach ja... ich sollte die einzelnen Felder für die Shape-Erstellung abgreifen können...

Liebe Grüsse und vielen DANK für eure Zeit!!!

Christian


Angehängte Dateien
.xlsx   Beispielmappe.xlsx (Größe: 11,24 KB / Downloads: 5)
Antworten Top
#2
Ohne in die Mappe zu schauen: Du könntest es mit Kkleinste und Kgrösste hinbekommen, falls dir das als Ansatz genügt.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#3
Danke EarlFred

Kannte die Funktion nicht... Ich les mich mal ein!
Weiss aber noch gar nicht wie die Schleife aussehen soll...
Antworten Top
#4
Hänge einfach fest und krieg es nicht hin... Sad

Könnte mir noch irgend jemand Hilfe geben?

Christian
Antworten Top
#5
Ich ging davon aus, du hättest bereits sortierte Listen mit den Elementen. Naja, egal:

Code:
Option Explicit

Sub start()

Dim SymmetrischesDatenfeld As Variant
SymmetrischesDatenfeld = SymmetrischeVerteilung

Range("G25").Resize(UBound(SymmetrischesDatenfeld, 1)).Value = SymmetrischesDatenfeld

End Sub


Function SymmetrischeVerteilung() As Variant
Dim fVarAnzahl    As Variant: fVarAnzahl = Range("H14:H20").Value
Dim fVarBreite    As Variant: fVarBreite = Range("B14:B20").Value
Dim Anz           As Long: Anz = Application.Sum(fVarAnzahl)
Dim fVarAusgabe   As Variant
If Anz > 0 Then
   ReDim fVarAusgabe(1 To Anz, 1 To 1)
  
   Dim i             As Long
   Dim j             As Long
   Dim k             As Long
  
   For i = LBound(fVarAnzahl, 1) To UBound(fVarAnzahl, 1)
      For j = 1 To fVarAnzahl(i, 1) / 2
         k = k + 1
         fVarAusgabe(k, 1) = fVarBreite(i, 1)
         fVarAusgabe(UBound(fVarAusgabe, 1) - k + 1, 1) = fVarBreite(i, 1)
      Next j
   Next i
Else
   ReDim fVarAusgabe(1 To 1, 1 To 1): fVarAusgabe(1, 1) = "Fehler - keine Daten"
End If

SymmetrischeVerteilung = fVarAusgabe
End Function
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
[-] Folgende(r) 1 Nutzer sagt Danke an EarlFred für diesen Beitrag:
  • peacescorer
Antworten Top
#6
Vielen Dank, EarlFred

Einfach nur genial!!!!!

Gruss Christian
Antworten Top


Gehe zu:


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