Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalten links nach rechts und überspringen

Spalten links nach rechts und überspringen
Laund
Bitte um Hilfe bei den VBA-Profis
Alle Daten befinden sich in Spalte B. Ich müsste jetzt Spalten von links nach rechts füllen.
Und es sollte immer eine Spalte überspringen.
Die Reihenfolge sollte sein, Spalte:
B D F H J L N P R T
und dann die nächste Zeile von vorne.
Als Anfänger habe ich folgendes gemacht. Man müsste das aber irgendwie in eine Schleiffe packen:
"
Dim lrow As Long
lrow = Range("B" & Rows.Count).End(xlUp).Row
Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row).Cut
Range("D1").Select
ActiveSheet.Paste
Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row).Cut
Range("F1").Select
ActiveSheet.Paste
"
usw...
Danke für Eure Hilfe
Anzeige
AW: Spalten links nach rechts und überspringen
01.05.2012 15:44:06
Laund
habe mal etwas gebastelt...
So macht er alles in Spalte B von links nach rechts jetzt sollte er aber nach Spalte T auf nächster Zeile bei Spalte B beginnen...
Danke für weitere Tips

Dim lrow As Long
Dim m As Long
Dim d As Long
lrow = Range("B" & Rows.Count).End(xlUp).Row
m = 2
d = 4
For i = 1 To lrow
Range(Cells(2, m), Cells(lrow, m)).Cut
Cells(1, d).Select
ActiveSheet.Paste
m = m + 2
d = d + 2
lrow = lrow - 1
Next i

Anzeige
AW: Spalten links nach rechts und überspringen
01.05.2012 16:18:59
Josef

Hallo Laund,
so?
Sub ausfuellen()
  Dim lngRow As Long, lngLast As Long, lngCol As Long
  
  With ActiveSheet
    lngLast = Application.Max(2, .Cells(.Rows.Count, 2).End(xlUp).Row)
    For lngRow = 2 To lngLast
      For lngCol = 4 To 20 Step 2
        .Cells(lngRow, lngCol) = .Cells(lngRow, 2)
      Next
    Next
  End With
  
End Sub



« Gruß Sepp »

Anzeige
AW: Spalten links nach rechts und überspringen
01.05.2012 16:18:59
Hans-Jochen
Hallo Laund ,
Wenn du Daten aus Spalte B aufteilen willst, verwende doch im Menü Daten die Funktion Text in Spalten.
Dort kanst du die Daten Teilen und bestimmen in welche Spalte die Daten sollen .
mfg
Hans-Jochen
AW: Spalten links nach rechts und überspringen
01.05.2012 17:05:52
Laund
Hallo Hans-Jochen und Sepp
Also Hans-Jochen: ich glaube das mit Text in Spalten nicht das ist was ich möchte?..
Wenn ich das richtig verstehe wird wenn in Spalte B z.B. Haus;Katze;Fisch steht -> Haus in B Katze in C und Fisch in D geschrieben.
Ich möchte dass die Daten, die in Spalte B sind (jetzt also "vetikal" angeordnet) "horizontal" von Spalte B, D, F, ... bis T und dann wieder eine Zeile weiter bei Spalte B beginnend angeordnet werden. Kompliziert geschrieben? :(
Sepp: dein Makro kopiert mir einfach alles von Spalte B bis T. Das ist auch nicht das was ich möchte...
Lasst mal mein Makro laufen mit einigen Zahlen in Spalte B.
Das sollte einfach nur bis Spalte T gehen und dann wieder unten weiter gehen...
(Der letzte Eintrag bei meinem Makro geht jedoch noch nicht...)
Dim lrow As Long
Dim m As Long
Dim d As Long
lrow = Range("B" & Rows.Count).End(xlUp).Row
m = 2
d = 4
For i = 1 To lrow
Range(Cells(2, m), Cells(lrow, m)).Cut
Cells(1, d).Select
ActiveSheet.Paste
m = m + 2
d = d + 2
lrow = lrow - 1
Next i

Anzeige
AW: Spalten links nach rechts und überspringen
01.05.2012 17:16:51
Josef

Hallo Laund,
warum sollte ich dein Makro laufen lassen, wenn ich nicht weiß, was bei dir in B steht und wie das ganze aufgeteilt werden soll?
Vielleicht solltest du mal ein Beispiel hochladen.

« Gruß Sepp »

Anzeige
AW: Spalten links nach rechts und überspringen
02.05.2012 08:22:40
Laund
Hallo Sepp
hier die Datei: https://www.herber.de/bbs/user/80013.xlsm
Es sind Etiketten. Es ist eigentlich egal was in Spalte B steht.
Nach dem ausführen des Makros sollte das Blatt nicht von oben nach unten, sondern von links nach rechts (in den richtigen Spalten) gefüllt sein.
Gruss
Raphi
Anzeige
AW: Spalten links nach rechts und überspringen
02.05.2012 11:36:57
Rudi
Hallo,
Private Sub CommandButton1_Click()
Dim lngR As Long, vntArr, i As Long, j As Long
vntArr = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
For i = 1 To UBound(vntArr) Step 10
lngR = lngR + 1
For j = 0 To 9
If i + j > UBound(vntArr) Then Exit Sub
Cells(lngR, 2 * j + 2) = vntArr(i + j, 1)
Next
Next
End Sub

Gruß
Rudi
Anzeige
AW: Spalten links nach rechts und überspringen
02.05.2012 13:38:35
Laund
Hallo Rudi
Genau so :) Besten Dank
ich habe nur noch Löschen vom Range nach dem kopieren in das Array gemacht
  Dim lngR As Long, vntArr, i As Long, j As Long
vntArr = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).ClearContents
For i = 1 To UBound(vntArr) Step 10
lngR = lngR + 1
For j = 0 To 9
If i + j > UBound(vntArr) Then Exit Sub
Cells(lngR, 2 * j + 2) = vntArr(i + j, 1)
Next
Next

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige