Anzeige
Archiv - Navigation
1000to1004
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

Frage - Spalten einfügen & Spalten untereinander z

Frage - Spalten einfügen & Spalten untereinander z
08.08.2008 16:00:00
André
Hallo zusammen!
Ich habe da als blutiger Anfänger in VBA zwei Fragen:
1.) Wie kann ich in meiner Tabelle in jeder zweiten Spalte 4 leere Spalten einfügen lassen?
2.) Dann möchte ich unter den Inhalt der ersten fünf Spalten (A-E) den Inhalt der zweiten 5 Spalten (F-J) usw. In der grössten Tabelle muss das über 80mal wiederholt werden. Der Inhalt der Spaltengruppen (A-E, F-J etc) ist nicht immer gleich groß d.h. er unterscheidet sich in der Zeilenanzahl.
Wenn mir da jemand helfen könnte, und mir damit copy_paste erspart, wäre das echt prima!
Excel-Version: 2002 SP3
Vielen Dank im Voraus!!!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage - Spalten einfügen & Spalten untereinander z
08.08.2008 17:33:07
Daniel
Hi
das untereinanderkopieren kannst du mit folgendem Kode lösen:

Sub Spalten_Kopieren()
Dim sp As Long
For sp = 6 To ActiveSheet.UsedRange.Columns.Count Step 5
Cells(1, sp).Resize(Cells(Rows.Count, sp).End(xlUp).Row, 5).Copy
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
Next
Application.CutCopyMode = xlCopy
End Sub


bzw 80 mal kannst du das nicht hintereinander ausführen, denn dann müsste deine Datei über 400 Spalten haben, maximal möglich sind aber nur 256
Jetzt zum einfügen der Leerspalten, wenn du nach der 2. Spalte 4 Leerspalten einfügen willst, dann geht das so:


Columns(3).resize(,4).insert


bei einer grösseren Tabelle ist aber folgendes vorgehen sinnvoller, weil schneller:


Sub Spalten_Einfügen()
Dim sp As Long
Dim ze As Long
Dim anz As Long
With ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell)
sp = .Column
ze = .Row + 1
End With
Cells(ze, 1).Resize(, sp).FormulaLocal = "=Spalte()"
Cells(ze, sp + 1).Value = 2.1
Cells(ze, sp + 2).Resize(, 3).FormulaR1C1 = "=RC[-1]+.1"
Cells(ze, sp + 5).FormulaR1C1 = "=RC[-4]+2"
Cells(ze, sp + 6).Resize(, 3).FormulaR1C1 = "=RC[-1]+.1"
anz = (sp / 2 - 2) * 4
Cells(ze, sp + 5).Resize(, 4).Copy Destination:=Cells(ze, sp + 9).Resize(, anz)
Rows(ze).Value = Rows(ze).Value
Cells(1, 1).CurrentRegion.Sort key1:=Cells(ze, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlSortRows
Rows(ze).Delete
Range("A1:B1").Sort key1:=Range("A1"), Orientation:=xlSortColumns
End Sub


die Leerspalten werden durch sortieren eingefügt, um das Prinzip zu verstehen, gehst du am besten das Makro im Einzelstepmodus durch und schaust dir an, was passiert.
das letzte Sortieren verändert nichts sondern stellt nur die Sortiereinstellung wieder auf normales Zeilensortiern zurück
Gruß, Daniel

Anzeige
AW: Frage - Spalten einfügen & Spalten untereinand
08.08.2008 17:47:00
André
Hi Daniel,
alles klar!
Besten Dank für die Hilfe!
Gruß,
André

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige