Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel soll ausgewählte Spalten löschen

Excel soll ausgewählte Spalten löschen
29.04.2006 11:35:10
udo
Hallo zusammen !
Ich hab noch ein weiteres Makro aufgezeichnet. Dieses Makro löscht von insgesamt 60 Spalten 30 zufällig ausgewählte (markierte) Die Markierung wird von mir vorgenommen und ist immer anders.(hab dafür vba code ) Logischerweise bleiben nach dem entfernen 30 Spalten mit Daten übrig. Diese stehen aber dann kreuz und quer. Die übriggebliebenen 30 Spalten sollen nun in den jeweils ungraden Spalten eingefügt werden. Jedenfalls diese, die noch in den graden Spalten stehen, die anderen die schon (oder noch immer ) in den ungraden Spalten stehen, können dort ruhig stehen bleiben.
Das u. a. Makro macht dies zwar auch, dauert aber lange und ich hätte so gerne dafür einen vba code. Vielen Dank für Hilfe.

Sub loeschen()
' loeschen Makro
' Makro am 28.04.2006 von udo aufgezeichnet
' Tastenkombination: Strg+l
Selection.ClearContents
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Cut
Range("AE1").Select
ActiveSheet.Paste
Columns("D:D").Select
Selection.Cut
Range("AG1").Select
ActiveSheet.Paste
Columns("F:F").Select
Selection.Cut
Range("AI1").Select
ActiveSheet.Paste
Columns("H:H").Select
Selection.Cut
Range("AK1").Select
ActiveSheet.Paste
Columns("J:J").Select
Selection.Cut
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
Range("AM1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
Columns("L:L").Select
Selection.Cut
Range("AO1").Select
ActiveSheet.Paste
Columns("N:N").Select
Selection.Cut
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
Range("AQ1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
Columns("P:P").Select
Selection.Cut
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
Range("AS1").Select
ActiveSheet.Paste
Columns("R:R").Select
Selection.Cut
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
Range("AU1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
Columns("T:T").Select
Selection.Cut
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
Range("AW1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
Columns("V:V").Select
Selection.Cut
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
Range("AY1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
Columns("X:X").Select
Selection.Cut
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
Range("BA1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
Columns("Z:Z").Select
Selection.Cut
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 41
Range("BC1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
Columns("AB:AB").Select
Selection.Cut
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
Range("BE1").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
Columns("AD:AD").Select
Selection.Cut
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 38
Range("BG1").Select
ActiveSheet.Paste
ActiveWorkbook.Save
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 12:10:13
Worti
Hallo Udo,
der folgende Code überträgt dir die Daten aus den ersten 15 geraden Spalten in die ungeraden Spalten bis spalte 59:

Sub InUngeradeEinfuegen()
Dim I As Integer
Dim J As Integer
I = 59
For J = 2 To 30 Step 2
Columns(J).Cut (Columns(I))
I = I - 2
Next J
End Sub

Gruß Worti
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 12:19:48
udo
Hi Worti,
der Code funktioniert fein. Nur leider soll es ja am Ende so aussehen, daß ich 30 Spalten mit Daten habe, die in den ungraden Spalten stehen, also DAten in Spalte 1,3,5 usw bis 59.
Hier ist auch alles richtig, nur halt bis Spalte 30. Ich hab die 30 mit 60 ersetzt. Nun ist alles ok.
Vielen Dank.
Udo
Anzeige
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 12:27:22
udo
Hi Worti,
ich hab mir grade mal handschriftlich die Spalten rausgeschrieben die übrig bleiben müssten. Leider finde ich nicht alle wieder, nachdem das Makro ausgeführt wurde.
Scheinbar löscht es nicht die ausgewählten Spalten, sondern auch nicht ausgewählte !!
Das ist ganz schlecht für mich, weil dann werden 37 Datenblätter zerstört, weil dann irgendwann doppelte Spalten auftauchen.
LG udo
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 12:36:07
Franz
Hallo Udo,
wenn dein aufgezeichnetes Makro (ist übrigens auch VBA-Code, wenn auch nicht besonders guter) das macht was du willst, dann kannst du es folgendermaßen beschleunigen:
1.
Lösche sämtliche Zeilen mit "ActiveWindow.ScrollColumn"
2.
Forme die 4 Zeilen

Columns("B:B").Select
Selection.Cut
Range("AE1").Select
ActiveSheet.Paste
nach folgendem Schema in eine Zeile um
Columns("B:B").Cut Range("AE1")

Dann läuft der Code um Welten schneller!
Gruß
Franz
Anzeige
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 12:43:40
udo
Hallo Franz,
vielen Dank für den Tip, das probier ich jetzt sofort aus :-)))
tschüss
Udo
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 12:50:57
udo
ok hab alle so gemacht. Geht jetzt viel schneller. Danke.
Für meine Zwecke reicht es völlig aus.
Schönes WE
Udo
AW: Excel soll ausgewählte Spalten löschen
29.04.2006 13:32:54
Franz
Hallo Udo,
hab dir ja geschrieben, das es schneller wird. evtl. hilft auch folgender Code, um den Inhalt gerader Spalten von rechts in ungerade Spalten links einzufügen.

Sub SpaltenVerschieben()
Dim I As Integer, J As Integer
'Verschiebt ausgefüllte gerade Spalten (hinten) in leere ungerade Spalten (vorne)
For I = 60 To 2 Step -2
If Application.WorksheetFunction.CountA(Columns(I)) > 0 Then 'gerade Spalte enthält Werte
For J = 1 To 59 Step 2
If I < J Then Exit For
If Application.WorksheetFunction.CountA(Columns(J)) = 0 Then 'ungerade Spalte enthält keinen Wert
ActiveSheet.Columns(I).Cut Cells(1, J)
End If
Next J
End If
Next I
End Sub

Gruß
Franz
Anzeige

300 Forumthreads zu ähnlichen Themen


Hallo Excel Freaks !
Habe folgendes Problem.
Ich möchter über ein makro auf einen Ordner Zugreifen indem sich über 400 excel files befinden. Die excel files beinhalten nur ein Sheet wobei dieses den Namen des files hat (Also nicht Tabelle 1 oder Sheet 1 oder so).
Ich möchte dass das...
Anzeige

Hallo,
ich habe in 2 Spalten Werte. Wie kann ich prüfen, ob die werte in der einen spalte enthalten sind. WEnn sie enthalten sind, soll in einer 3.spalte ein text ausgegeben werden.
wie mach ich das am besten?
danke euch?

Hallo VBA experten,
ich habe eine frage und bitte um eure Hilfe.
Ich komme alleine nicht weiter:(
Ich habe eine Tabelle1. In Spalte 1 Stehen z.b Werte untereinander.
27>27
17>17
6>6
17>1
usw...
diese möchte ich gerne in ein Array übernehmen und da...
Anzeige

Hallo liebe Forum-Leser!
Ich versuche in Excel sowas ähnliches wie MS Project darzustellen (weil das so gewünscht wird, fragt aber nicht warum).
Durch Datumseingabe (für Anfang und Ende des Projekts) will ich nur den Zeitstrahl (in Kalendeswochen) darstellen, so dass man die einzelne Sc...

hallo zusammen,
gibt es bei excel eine möglichkeit aus spalte 1 und 2 oder 1, 2 und 3 kombinationen zu bilden?
vielen dank im voraus!
lg

Hallo
Ich habe in Spalte M ein Datum "Ausführung Beginn" und in Spalte N ein Datum "Ausführung Ende". Wie kann ich für einen bestimmten Zeitraum alle Daten zwischen Ausrührung Beginn und Ausführung Ende filtern. Zb. alle Arbeiten die in der Zeit vom 1.11.10 und 31.11.10 ausgeführt werden bz...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige