Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Feld 1&2 u. 8&9 u. 15&16 ... kopieren
#1
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.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
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
Antworten Top
#3
Moin,

wenn es dir darum geht, Leerspalten zu entfernen, würde ich einfach diese markieren und mit STRG & - entfernen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#4
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
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Frank_74
Antworten Top
#5
@ 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.
Antworten Top
#6
Bleib bei Formeln. Anschließend:

.Value = .Value

EDIT: Hat MrBurns auch schon gemacht (?)
Antworten Top
#7
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?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#8
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?
Schöne Grüße
Berni
Antworten Top
#9
E16[:Z16]: =INDEX(7:7;SPALTE(B7)*3,5-REST(SPALTE(B7)*3,5;1)*5-2)

als Formellösung ohne VBA
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Frank_74
Antworten Top
#10
@LCohen

Funktioniert Super.

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

Gruß, Frank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste