Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1088to1092
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SpaltenTauschen

SpaltenTauschen
Günter
Hallo liebe Excelfreunde,
zum Thema Spalten tauschen habe ich eine geniales Macro gefunden (siehe unten).
Über einen Spinbutton kann man wunderbar Spalten verschieben.
Nun ist es so, dass nur die g a n z e Spalte in diesem Makro verschoben werden kann.
Wer könnte mir bitte das Makro so umschreiben, dass die ganze Spalte
verschoben werden kann o d e r ab der Kursorposition verschoben werden kann?
Echt Supermakro, mit dem fehlenden Etwas....
Schönen Gruß
Günter
https://www.herber.de/bbs/user/63193.xls
Option Explicit
Sub SpaltenTauschen(RechtsLauf As Boolean)
Dim rng As Range
Dim rngR As Range
Dim rngL As Range
Dim arr As Variant
Dim intBeginnSpalte As Integer
Dim intEndeSpalte As Integer
Dim sngSpaltenBreite1 As Single
Dim sngSpaltenBreite2 As Single
Application.ScreenUpdating = False
On Error GoTo fehler
intBeginnSpalte = 1 'SpalteA
intEndeSpalte = 20 'SpalteH
Set rng = ActiveSheet.UsedRange.Columns(ActiveCell.Column)
If RechtsLauf Then
If ActiveCell.Column  intBeginnSpalte Then
Set rngL = ActiveSheet.UsedRange.Columns(ActiveCell.Offset(0, -1).Column)
ActiveCell.Offset(0, -1).Activate
sngSpaltenBreite1 = rng.ColumnWidth
sngSpaltenBreite2 = rngL.ColumnWidth
arr = rng
rng.Value = rngL.Value
rngL.Value = arr
rng.ColumnWidth = sngSpaltenBreite2
rngL.ColumnWidth = sngSpaltenBreite1
End If
End If
Application.ScreenUpdating = True
Exit Sub
fehler:
MsgBox "Spalten-Index nicht existent!", , "Fahler!"
Application.ScreenUpdating = True
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: SpaltenTauschen
18.07.2009 22:28:59
Josef
Hallo Günther,
so werden immer die Zellen verschoben.
Sub SpaltenTauschen(RechtsLauf As Boolean)
  Dim rng As Range, rngMove As Range
  Dim arr As Variant
  Dim lngBeginnSpalte As Long, lngEndeSpalte As Integer
  Dim sngSpaltenBreite1 As Single, sngSpaltenBreite2 As Single
  
  On Error GoTo fehler
  
  Application.ScreenUpdating = False
  
  lngBeginnSpalte = 1 'SpalteA
  lngEndeSpalte = 20 'SpalteH
  
  Set rng = Selection.Columns(1).Cells
  
  If RechtsLauf Then
    If rng.Column < lngEndeSpalte Then
      Set rngMove = Selection.Columns(1).Offset(0, 1)
      
      sngSpaltenBreite1 = rng.ColumnWidth
      sngSpaltenBreite2 = rngMove.ColumnWidth
      
      arr = rng
      rng.Value = rngMove.Value
      rngMove.Value = arr
      Application.Goto rngMove
      rng.ColumnWidth = sngSpaltenBreite2
      rngMove.ColumnWidth = sngSpaltenBreite1
    End If
  Else
    If rng.Column > lngBeginnSpalte Then
      Set rngMove = Selection.Columns(1).Offset(0, -1)
      
      sngSpaltenBreite1 = rng.ColumnWidth
      sngSpaltenBreite2 = rngMove.ColumnWidth
      
      arr = rng
      rng.Value = rngMove.Value
      rngMove.Value = arr
      Application.Goto rngMove
      rng.ColumnWidth = sngSpaltenBreite2
      rngMove.ColumnWidth = sngSpaltenBreite1
    End If
  End If
  
  fehler:
  If Err.Number <> 0 Then MsgBox "Spalten-Index nicht existent!", , "Fehler!"
  
  Application.ScreenUpdating = True
  Set rng = Nothing
  Set rngMove = Nothing
End Sub

Gruß Sepp

Anzeige
AW: SpaltenTauschen
21.07.2009 11:15:32
Günter
Hallo lieber Sepp,
sorry, dass ich erst jetzt antworte.
Danke für Deine Mühe und werde gleich testen.
Melde mich....
Gruß Günter
AW: SpaltenTauschen
21.07.2009 11:21:48
Günter
Hallo Sepp,
habe eben das Makro ausprobiert. Funktioniert tadellos.
Ein kräftiges Danke an Dich Sepp....
Schönen Tag noch
Günter
AW: SpaltenTauschen
21.07.2009 11:34:03
Günter
Hallo Sepp,
da ich auf das Makro jederzeit zugreifen möchte,
hätte ich eine Frage. Wie kann ich das Makro (
inkl. Links- und Rechtstasten) als Addin für alle Arbeitsmappen
speichern.
Habe es probiert, funktioniert aber nicht.
Gruß
Günter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige