Excel 2003 Spaltenoptimum

  • #1
H

Hudson

Bekanntes Mitglied
Themenersteller
Dabei seit
14.04.2005
Beiträge
146
Reaktionspunkte
0
Hallo Community,
ich steh mal wieder vor einem Excelproblem und bitte um eure Hilfe:

Ich habe eine Entfernungsmatrix (zB. 30 Kunden + Depot = 31x31Matrix) und möchte nur die otimale Route für bestimmte Kunden.
d.h. z.B. für Kunde 12, 15, 18, 27, 30.
-> ich bekomme nun eine neue Matrix (hier: 5x30, weil Kunde x ja gleich dem Depot)
ABER:
Für eine optimale Route der ausgewählten Kunden benötige ich das Spalten Optimum der 5x30 Matrix.
Ich muss also händisch Spalte für Spalte absuchen und das Feld mit der kleinsten Zahl grün markieren. 5 Zeilen sind noch übersichtlich, wobei 30 Spalten schon nerven, aber das ist ja nur ein Bsp und dient nur als Einstieg. In echt sind es weit über 100!!!

Gibt es eine Formel die größer gleich abcheckt und mir das kleinste (größte) Feld markiert? Irgendetwas das ich einfach über diese Matrix lege ohne die Zeilenreihenfolge zu ändern?

Weil wenn ich auf/absteigend sortiere, dann zerhaut mir das meine Tabelle
z.B.: Spalte26, der 5x30 Matrix (dort steht jetzt die Enfernung der ausgewählten ZeilenKunden zum Kunden der Spalte26 + Entfernung des Kunden der Spalte26 zum Depot - Entfernung des jeweiligen ZeilenKunden selbst zum Depot):
Zeile1=30 Zeile2=45 Zeile3=12 Zeile4=27 und Zeile5=7
bei auf/absteigend sortiert der ja nur 7,12,27,30,45 ... und schreibt das untereinander.
Aber damit verliere ich den Kunden Bezug, weil Zeile4 z.B Kunde 15 war! Kann mir doch nicht jeden Wert merken oder in jedes Feld K4=27 (weil die Werte aus einem anderen Programm kommen) schreiben! Die Kunden sortierung Steht ja in SpalteA.

Ich hoffe das ganze hier war verständlich ???. Ich brauch auch nicht kleinsten in grün, 2t kleinsten organge etc...genügt wenn der kleinste Fett gedruckt wird. Hauptsache ich erspare mir das Spalten über alle Zeilen gesuche!!!


Meine Augen und Nerven wären Euch/Dir sehr dankbar!!!
MFg
 
  • #2
Hallo Hudson,

könnte dir ein Makro behilflich sein, der dir ab einer bestimmten Zeile die Werte in Spalte 26 betrachtet und dir die Reihenfolge in einer auf einem extra Blatt ausgibt ?

Gruß Matjes :)
 
  • #3
Das Makro könnte so aussehen:
Code:
Sub Excel_Sp26SortiertAufEinBlatt()
 
 
-> <<< A N P A S S E N >>>
->Quelle:
 Const cQ_ABZEILE = 3->ab dieser Zeile Werte
 Const cQ_SP = 26  ->in Spalte Z
-> <<< A N P A S S E N  E N D E >>>
 
->Ziel:
 Const cERG_BLTNAME = __Sort__
 Const cERG_SP_ZEILE = 1
 Const cERG_SP_ZEILE_TXT = Zeile
 Const cERG_SP_ENTFERNUNG = 2
 Const cERG_SP_ENTFERNUNG_TXT = Entfernung
 
 
 Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet
 Dim z As Long, z2 As Long

 Set wb = ActiveWorkbook
 Set ws = ActiveSheet
 
 If ws.Name = cERG_BLTNAME Then
  MsgBox Bitte das richtige Blatt aktivieren.
  GoTo AUFRAEUMEN
 End If
 
->altes Ergebnisblatt löschen
 On Error Resume Next
 Application.DisplayAlerts = False
 wb.Worksheets(cERG_BLTNAME).Delete
 Application.DisplayAlerts = True
 On Error GoTo 0

->Ergebnisblatt anlegen mit Überschriften
 Set ws2 = wb.Worksheets.Add(After:=ws)
 ws2.Name = cERG_BLTNAME
 z2 = 1
 With ws2.Cells(z2, cERG_SP_ZEILE)
  .Value = cERG_SP_ZEILE_TXT: .Font.Bold = True
 End With
 With ws2.Cells(z2, cERG_SP_ENTFERNUNG)
  .Value = cERG_SP_ENTFERNUNG_TXT: .Font.Bold = True
 End With

->alle Werte aus aktivem Blatt Spalte 26 im Zielblatt eintragen
 z = cQ_ABZEILE
 Do
  If ws.Cells(z, cQ_SP).Value =  Then Exit Do
   z2 = z2 + 1
   ws2.Cells(z2, cERG_SP_ZEILE).Value = z
   ws2.Cells(z2, cERG_SP_ENTFERNUNG).Value = ws.Cells(z, cQ_SP).Value
   z = z + 1
 Loop
  
 If z2 > 2 Then
  ws2.Range(ws2.Cells(2, 1), _
       ws2.Cells(z2, cERG_SP_ENTFERNUNG)).Sort _
   Key1:=ws2.Cells(2, cERG_SP_ENTFERNUNG), _
   Order1:=xlAscending, _
   Header:=xlNo
 End If
AUFRAEUMEN:
 Set wb = Nothing: Set ws = Nothing: Set ws2 = Nothing
End Sub
 
  • #4
Wow vielen Dank Matjes.

Entschuldigung, dass ich erst jetzt antworte, aber ich war geschäftlich unterwegs...

Dein Makro funktioniert einwandfrei, vorallem mal wieder super beschrieben. :1

Aber es ist zu komplex! Ich habe nur was gesucht um schnell und dies vorallem auch an fremden PC durch zu führen ... Hab mir mit den Standard Min/Max-Formeln und dem ziehen über die Spalten/Zeilen geholfen und dann mit Farbe die Felder markiert! Hat scho gepasst.
Leider konnte ich mit einem Excel-Dummy (mit funktionierendem Makro) nicht arbeiten, weil die Tabellen nicht immer die gleiche Größe haben und die Werte mit Formeln hinterlegt sind.
(Hab versucht: aus A ->Inhalt einfügen -Werte in Makro-Dummy; Dummy angepasst und jetzt zurück nach A; wegen Formeln hat das aber nimmer gefunzt...)

Trotzdem vielen Dank, und ich werds mir aufheben ;D (man weiß ja nie!)
 
Thema:

Excel 2003 Spaltenoptimum

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben