Tipp 0381 Zeilen und Spalten verschieben
Autor/Einsender:
Datum:
  R. Müller
03.02.2004
Entwicklungsumgebung:   Excel 97
In diesem Tipp werden verschiedene Möglichkeiten gezeigt, wie einzelne oder mehrere Zeilen und Spalten innerhalb eines Tabellenblatts verschoben werden können, oder aber auch von einem Tabellenblatt zu einem anderen.
Beispiel 1.1: Zeile innerhalb eines Tabellenblatts verschieben
 
Sub ShiftRowInWorksheet()
  Dim lngRowSource  As Long
  Dim lngRowTarget  As Long

  lngRowSource = 3
  lngRowTarget = 7

  With ActiveWorkbook.Worksheets(1)
    .Rows(lngRowSource).Cut
    .Rows(lngRowTarget).Insert Shift:=xlShiftDown
  End With
End Sub
 
Beispiel 1.2: Zeile von einem Tabellenblatt in ein anderes Tabellenblatt verschieben
 
Sub ShiftRowToWorksheet()
  Dim wksSource     As Worksheet
  Dim wksTarget     As Worksheet

  Dim lngRowSource  As Long
  Dim lngRowTarget  As Long

  lngRowSource = 5
  lngRowTarget = 7

  Set wksSource = ActiveWorkbook.Worksheets(1)
  Set wksTarget = ActiveWorkbook.Worksheets(2)

  wksSource.Rows(lngRowSource).Cut
  wksTarget.Rows(lngRowTarget).Insert Shift:=xlShiftDown
  wksSource.Rows(lngRowSource).EntireRow.Delete

  Set wksTarget = Nothing
  Set wksSource =  Nothing
End Sub
 
Beispiel 1.3: Mehrere Zeilen innerhalb eines Tabellenblatts verschieben
 
Sub ShiftRowsInWorksheet()
  Dim lngRowSource  As Long
  Dim lngRowsCount  As Long
  Dim lngRowTarget  As Long

  lngRowSource = 5
  lngRowsCount = 10
  lngRowTarget = 37

  With ActiveWorkbook.Worksheets(1)
    .Range(.Rows(lngRowSource), _
          .Rows(lngRowSource + lngRowsCount - 1)).Cut
    .Rows(lngRowTarget).Insert Shift:=xlShiftDown
  End With
End Sub
 
Beispiel 2.1: Spalte innerhalb eines Tabellenblatts verschieben
 
Sub ShiftColumnInWorksheet()
  Dim lngColSource  As Long
  Dim lngColTarget  As Long

  lngColSource = 3
  lngColTarget = 7

  With ActiveWorkbook.Worksheets(1)
    .Columns(lngColSource).Cut
    .Columns(lngColTarget).Insert Shift:=xlToRight
  End With
End Sub
 
Beispiel 2.2: Spalte von einem Tabellenblatt in ein anderes Tabellenblatt verschieben
 
Sub ShiftColumnToWorksheet()
  Dim wksSource     As Worksheet
  Dim wksTarget     As Worksheet

  Dim lngColSource  As Long
  Dim lngColTarget  As Long

  lngColSource = 3
  lngColTarget = 3

  Set wksSource = ActiveWorkbook.Worksheets(1)
  Set wksTarget = ActiveWorkbook.Worksheets(2)

  wksSource.Columns(lngColSource).Cut
  wksTarget.Columns(lngColTarget).Insert Shift:=xlToRight
  wksSource.Columns(lngColSource).EntireColumn.Delete

  Set wksTarget = Nothing
  Set wksSource = Nothing
End Sub
 
Beispiel 2.3: Mehrere Spalten innerhalb eines Tabellenblatts verschieben
 
Sub ShiftColumnsInWorksheet()
  Dim lngColSource  As Long
  Dim lngColsCount  As Long
  Dim lngColTarget  As Long

  lngColSource = 2
  lngColsCount = 3
  lngColTarget = 8

  With ActiveWorkbook.Worksheets(1)
    .Range(.Columns(lngColSource), _
          .Columns(lngColSource + lngColsCount - 1)).Cut
    .Columns(lngColTarget).Insert Shift:=xlToRight
  End With
End Sub
 
Hinweis
Im Download befinden sich zwei *.bas-Dateien, die in Excel im VB-Editor importiert werden können.

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
Excel-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (2,6 kB) Downloads bisher: [ 928 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 4. September 2011