Da müsste man meiner Meinung nach schon VBA Einsetzen. Also auf die schnelle erklärt: In Excel Alt + F11 drücken. Danach offnet sich der VBA Editor. Dort ein neues Modul einfügen und folgenden Code reinkopieren.

Sub MatrixSortieren()'Schleife läuft von Spalte 1 (A) bis Spalte Nummer 1440
For i = 1 To 1440ThisWorkbook.ActiveSheet.Sort.SortFields.Clear'Prüft Zahlen von Zeile 1 bis Zeile 91
ThisWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range(Cells(1, i).Address & ":" & Cells(91, i).Address), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormalWith ThisWorkbook.ActiveSheet.Sort'Sortiert Zahlen von Zeile 1 bis Zeile 91.SetRange Range(Cells(1, i).Address & ":" & Cells(91, i).Address).Header = xlGuess.MatchCase = False.Orientation = xlTopToBottom.SortMethod = xlPinYinEnd WithThisWorkbook.ActiveSheet.Sort.Apply
Next

End Sub 'Ende

Die Zeilen mit ' sind die Kommentare, ggf falls die Matrix nicht von A1 anfängt die Zahlen ersetzen. Dann - Unbedingt! darauf achten dass das Sheet mit der Matrix in excel aktiv ist, damit man nicht irgendein anderes Sheet kaputt macht. Wenn dies der Fall ist wieder zum VBA Editor wechseln auf den Code draufklicken und F5 drücken. Dann dauert es ein Bisschen und die Spallten werden Sortiert,

Beste Grüße, TheGrandmaster

...zur Antwort
Sub spaltenLoeschen()

'mit with kann man ein Objekt (Hier das Sheet) direkt ansprechen:

With ThisWorkbook.Worksheets("Sheet1")

'eine Schleife von 4te Spalte (da D = 4er Buchstabe im Alphabet) bis Spaltenanzahl (Für Zeile 200 anstatt .Columns.Count einfach 200 einsetzen ;) )

For i = 4 To .Columns.Count

'Prüft ob es in der Zelle mit Adresse - Zeile 3, Spalte D bis Ende einen Eintrag gibt:

If .Cells(3, i) = ""

'Wenn nicht löschen:

Then.Columns(i).Delete

'Und alles wieder schließen

End If


Next i


End With


End Sub

Hier nochmal kommentiert, damit man auch als VBA Neuling alles vesteht.

...zur Antwort
Sub spaltenLoeschen()
    With ThisWorkbook.Worksheets("Sheet1")
        For i = 1 To .Columns.Count
            If .Cells(3, i) = "" Then
            .Columns(i).Delete
            End If
        Next i
    End With
End Sub
...zur Antwort

Hallo kaka85,

probier's mal hiermit:

> Sub spaltenLoeschen()
> With ThisWorkbook.Worksheets("Sheet1") > For i = 1 To .Columns.Count > If .Cells(3, i) = "" Then > .Columns(i).Delete > End If > Next i
> End With
> End Sub

beachte jedoch, dass hiermit nur die dritte Zeile jeder Spalte geprüft wird! Wenn andere oder mehr Zellen geprüft werden sollen kannst du ja rumexperimentieren und den Code umändern :)

Beste Grüße, TheGrandmasta

...zur Antwort