Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Bestimmte Spalten verschieben | Herbers Excel-Forum


Betrifft: Bestimmte Spalten verschieben von: Martin
Geschrieben am: 04.01.2010 09:47:51

Hallo und ein gutes Neues Jahr an alle!
In der Zeile 1 habe ich verschiedene Überschriften (z.B. Name, Ort, Status, Vermittler und viele mehr) und darunter jeweils die dazugehörenden Daten.

Die Spalten sind leider falsch sortiert. Die Spalte mit der Überschrift "Status" muss A sein und soll dorthin verschoben werden, diejenige mit "Name" B, "Ort" C.....
Ich möchte das nicht mit Cut und Insert machen, sondern irgendwie die Überschrift mit der Spaltenummer (Status = 1, Name =2) verbinden und so verschieben.

Besten Dank für Hilfe.

  

Betrifft: AW: Bestimmte Spalten verschieben von: Klaus-Dieter
Geschrieben am: 04.01.2010 10:00:50

Hallo Martin,

das kannst du ganz einfach mit der Standardsortierfunktion lösen. Dazu musst du
1. eine benutzerdefinierte Liste erstellen. (Status, Name, Ort .. ) Das machst du unter Extras / Optionen / Benutzerdefinierte Liste.

2. Stellst du bei Sortieren unter Optionen unten links auf Spalten sortieren um. Oben links kannst du unter benutzerdefinierte Sortierreihenfolge deine zuvor erstellte Liste auswählen. Danach löst du wie gewohnt den Sortiervorgang aus. In meinem kleinen Beispiel siehst du das Eregebnis, grüner Bereich:

Tabelle1

 ABCDEFGHI
1NameOrtStatusVermittler StatusNameOrtVermittler
21234 3124
31234 3124
41234 3124
51234 3124
61234 3124
71234 3124
81234 3124
91234 3124
101234 3124
111234 3124


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4



Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite
Online-Excel



  

Betrifft: AW: Bestimmte Spalten verschieben von: Martin
Geschrieben am: 04.01.2010 10:23:57

Hallo Klaus-Dieter

Besten Dank für die Antwort.
Das Problem ist, dass das Ganze ein Teil eines längeren VBA-Codes sein sollte. Eigentlich läuft es schon, bis auf das verschieben der Spalten.....
Daher wäre ich froh, wenn es eine VBA-Lösung des Problems gäbe.

Vielen Dank im voraus.


  

Betrifft: AW: Bestimmte Spalten verschieben von: Klaus-Dieter
Geschrieben am: 04.01.2010 10:25:59

Hallo Martin,

das ging aus deiner Farge nicht hervor. :-(



Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite
Online-Excel



  

Betrifft: AW: Bestimmte Spalten verschieben von: Klaus-Dieter
Geschrieben am: 04.01.2010 10:38:15

Hallo Martin,

ich bin zwar kein Freund des Makrorekorders, aber bei speziellen Sortierfunktionen ist er ganz hilfreich.

Modul Modul1

Option Explicit 
 
Sub Makro1() 
' 
' Makro1 Makro 
' Makro am 04.01.2010 von Klaus-Dieter aufgezeichnet 
' 
 
' 
    Range("F1:I11").Sort Key1:=Range("F1"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=10, MatchCase:=False, Orientation:=xlLeftToRight, _
        DataOption1:=xlSortNormal 
End Sub 

Code eingefügt mit VBA in HTML 2.0.0.1

Du müsstest das aber selber aufzeichnen, weil sonst die Parameter nicht passen. Die benutzerdefinierte Liste musst du allerdings auf jeden Fall erst einmal erstellen.



Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite
Online-Excel



  

Betrifft: AW: mit Sortierfunktion von: Daniel
Geschrieben am: 04.01.2010 12:01:45

Hallo

du kannst das so machen:
1. die Überschriften entsprechend der Reihenfolge in eine Zahl umbenenen
2. die Spalten sortieren
3. die Reihenfolgenummern wieder durch die Texte ersetzen.

dazu dieses Makro, die Indexvariable musst du halt entsprechend der Anzahl der Spalten erweitern:

Sub SpaltenSortieren()
Dim Spalte(1 To 4) As String
Dim i As Long
Spalte(1) = "Status"
Spalte(2) = "Ort"
Spalte(3) = "Vermittler"
Spalte(4) = "Name"

For i = 1 To UBound(Spalte)
    Rows(1).Replace Spalte(i), i, lookat:=xlWhole
Next

ActiveSheet.UsedRange.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
        DataOption1:=xlSortNormal

For i = 1 To UBound(Spalte)
    Rows(1).Replace i, Spalte(i), lookat:=xlWhole
Next


End Sub
gruß, Daniel


Beiträge aus den Excel-Beispielen zum Thema "Bestimmte Spalten verschieben"