Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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
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

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 »

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
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

340 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige