Clever-Excel-Forum

Normale Version: Feld 1&2 u. 8&9 u. 15&16 ... kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo.

Habe ein Tabelle aus der ich Feld 1&2 , Feld 8&9 , Feld 15&16 usw. (immer 7 Felder mehr) kopieren will, das es keine Leer spalten  mehr gibt.

Bild sagt mehr als 1000 Worte.

[Bild: attachment.php?aid=23822]


Womit macht man das am besten?

Danke.
Hola,

Code:
=WENNFEHLER(INDEX($E$7:$Y$7;AGGREGAT(15;6;SPALTE($E$1:$Y$1)-4/(($E$6:$Y$6="mo")+($E$6:$Y$6="di"));SPALTE(A1)));"")

Gruß,
steve1da
Moin,

wenn es dir darum geht, Leerspalten zu entfernen, würde ich einfach diese markieren und mit STRG & - entfernen.
Ich vermute mal, dass es sich um einen Jahreskalender handelt und die Daten nicht bei Spalte Y aufhören.
Mit VBA auf diesem Weg:

Code:
Sub uebertragen()
Dim i As Integer, j As Integer
Application.ScreenUpdating = False

j = 5
With ActiveSheet
   For i = 5 To .Cells(6, .Columns.Count).End(xlToLeft).Column Step 7
       .Range(.Cells(7, i), .Cells(7, i + 1)).Copy
       .Cells(16, j).PasteSpecial Paste:=xlValues
       j = j + 2
   Next i
End With

Application.CutCopyMode = xlCopy
Application.ScreenUpdating = True
End Sub
@ MisterBurns

Ja, es geht sich um einen Jahreskalender.

Das Macro funktioniert auch (in der Beispieltabelle).

Wie hast Du in dem Macro den Startpunkt (hier E7) definiert?
Wie hast Du festgelegt wo es hin kopiert werden soll?



for i = 5  --> die 5 ergibt das E ? Bei Spalte F müsste da also eine 6 stehen?



Danke!

EDIT:

Habe es mit try&error hinbekommen.

Danke noch mal 


Muss nun nur noch testen ob es in der "richtigen" Tabelle auch klappt.
In den Feldern stehen nämlich "Formeln" und es soll da natürlich nur der Wert kopiert werden.
Bleib bei Formeln. Anschließend:

.Value = .Value

EDIT: Hat MrBurns auch schon gemacht (?)
Hallo,

hätte da noch eine Frage / Problem.

Wenn ich in der Tabelle was ändere. z.B. weit oben Zeilen einfüge, dann funktioniert das Macro leider nicht mehr.

[Bild: attachment.php?aid=24184]

Die Zeilennummern "unten" ändern sich ja. das Macro ändert sich nicht. 
Dann findet das Macro ja nicht mehr die richtigen Daten.

Kann man das irgendwie umgehen?
Schau dir diese Zeilen an:
Code:
j = 5             'Zielspalte (zB 5 = Spalte E)
With ActiveSheet
   For i = 5 To .Cells(6, .Columns.Count).End(xlToLeft).Column Step 7     'Schleife für den zu kopierenden Bereich. Beginnt bei Spalte 5 und läuft bis zur letzten gefüllten Spalte in Zeile 6
                                                                         'i ist die Variable für die Spalte des zu kopierenden Bereichs
       .Range(.Cells(7, i), .Cells(7, i + 1)).Copy      'Kopiert den Bereich Spalte i, Zeile 7 bis Spalte i+1, Zeile 7
       .Cells(16, j).PasteSpecial Paste:=xlValues       'Fügt den kopierten Bereich in Spalte j, Zeile 16 ein
       j = j + 2                                        'erhöht den Spaltenzähler j um 2. j ist die Variable für die Zielspalte
   Next i
End With
Klar?
E16[:Z16]: =INDEX(7:7;SPALTE(B7)*3,5-REST(SPALTE(B7)*3,5;1)*5-2)

als Formellösung ohne VBA
@LCohen

Funktioniert Super.

Muss mal ein wenig drüber nach grübeln was da genau passiert und wie das Funktioniert.

Gruß, Frank
Seiten: 1 2