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

Wie Zellen per VBA nach bestimmten Schema kopieren

Wie Zellen per VBA nach bestimmten Schema kopieren
22.04.2017 01:20:17
Frank
Hallo allerseits,
folgendes Problem:
Zellen W2,X2 und Y2 sollen per VBA nach folgendem Schema kopiert werden:
W4,X4,Y4
W7,X7,Y7
W9,X9,Y9
W12,X12,Y12 usw. und das ganze so das es am Ende 256 Zeilen sind,d.h. also 255x kopieren.
Folgenden Code für 1x kopieren hab ich:
Option Explicit
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Range("W2:Y2").Copy _
Sheets("Tabelle1").Range("W4:Y4")
End Sub
Wie muss ich nun den Code erweitern,das er mir das nach besagten Schema mit entsprechender Anzahl kopiert?
Lg Frank

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie Zellen per VBA nach bestimmten Schema kopieren
22.04.2017 06:51:39
Crazy
Hallo
meinst du so?
Sub test()
Dim i As Integer
With Sheets("Tabelle1")
For i = 4 To 256 Step 3
.Range("W2:Y2").Copy .Cells(i, 23)
Next
End With
End Sub
MfG Tom
AW: auch schon wach?
22.04.2017 07:47:09
Werner
Hallo Tom,
dachte ich auch erst aber.....
W4 --> 3Zeilen --> W7 --> 2Zeilen --> W9 --> 3Zeilen --> W12
logische weitere Folge wäre dann ja wohl
W15 - W17 - W20
könnte man vermuten. Müsste aber wohl der Frager beantworten.
Gruß Werner
AW: auch schon wach?
22.04.2017 07:54:14
Crazy
Moin Werner
das kommt davon wenn die Hunde den ganzen Platz im Bett beanspruchen... ;-)
ich bevorzuge die Möglichkeit, dass der Fragesteller einen Schreibfehler drin hat :D
MfG Tom
Anzeige
AW: auch schon wach?
22.04.2017 08:07:05
Frank
Guten Morgen ihr zwei,
ist kein Schreibfehler,Werner hat recht. Von W2 aus gesehen eine Leerzeile,dann zwei,dann wieder eine usw. Entspricht also Werner´s Vermutung.
Lg Frank
AW: auch schon wach?
22.04.2017 08:17:04
Crazy
Hallo
dann passt es vielleicht so?
Sub test()
Dim i As Integer
With Sheets("Tabelle1")
For i = 4 To 256 Step 5
.Range("W2:Y2").Copy .Cells(i, 23)
.Range("W2:Y2").Copy .Cells(i + 3, 23)
Next
End With
End Sub
MfG Tom
AW: auch schon wach?
22.04.2017 09:05:49
Frank
Hey Tom,
es passt fast.
Sub test()
Dim i As Integer
With Sheets("Tabelle1")
For i = 4 To 639 Step 5
.Range("W2:Y2").Copy .Cells(i, 23)
.Range("W2:Y2").Copy .Cells(i + 3, 23)
Next
End With
End Sub
Hab aus 256 jetzt mal 639 gemacht,da ich das ja 255x kopiert haben möchte.Leider kopiert er mir das jetzt 1x zuviel. Ich vermute bedingt durch die Schrittfolge. Die letze Zelle dürft nur die 639 sein und nicht wie jetzt die 642,was aber jetzt kein Beinbruch ist,hab ja ne Maus und nen Finger.
Eine Frage aber noch. Was bedeutet bzw bewirkt die 23 im Code?
Lg Frank
Anzeige
AW: 23 entspricht der Spalte W. owT
22.04.2017 09:12:31
Dieter(Drummer)
AW: auch schon wach?
22.04.2017 09:48:52
Werner
Hallo Frank,
dann die For Schleife bereits vor dem allerletzten Eintrag verlassen.
Sub test()
Dim i As Integer
With Sheets("Tabelle1")
For i = 4 To 639 Step 5
.Range("W2:Y2").Copy .Cells(i, 23)
If i = 639 Then Exit For
.Range("W2:Y2").Copy .Cells(i + 3, 23)
Next
End With
End Sub
Gruß Werner
warum entfernst Du das Level ... ?
22.04.2017 09:32:56
Matthias
owT
AW: warum entfernst Du das Level ... ?
22.04.2017 09:35:22
Frank
Moin Matthias,
was wie wo welches Level?
nicht Du, sondern Werner ... owT
22.04.2017 09:40:19
Matthias
AW: nicht Du, sondern Werner ... owT
22.04.2017 09:47:40
Werner
Hallo Matthias,
wüsste nicht dass ich das haben und vor allem wüsste ich nicht wie das gehen soll, wenn ich nur auf einen Beitrag eine Antwort verfasse.
Gruß Werner
AW: nicht Du, sondern Werner ... owT
22.04.2017 10:04:16
Hajo_Zi
Hallo Werner,
Herber hat mal ein Script verbreitet das beim Beitrag schreiben, die Angaben einträgt auch den Level. Vielleicht hast Du das auch aktiviert.
Keine Ahnung wie man das macht.

Anzeige
OT: Lass doch diese Diskussion, ...
22.04.2017 15:27:28
Luc:-?
…Matti,
sie bringt gar nichts! Ich hatte das doch schon erklärt! Sieh Dir das HTML-DOM mit und ohne diese Angabe an und Du wirst fest­stellen, dass im letzteren Fall sogar der Key-Begriff fehlt. Das kann keiner machen, denn das wäre ein Eingriff in die Forums­Soft­ware. Zu erwarten wäre dann eher, dass der Key-Wert leer wäre.
Aber warum sollte das auch jemand machen‽ Vor Jahren haben einige das von Hajo erwähnte Tool o.ä. benutzt, um eigene Bezeich­nungen, außerhalb des Standard­Angebots, zu generieren. Ein Leer­zeichen wäre damit wohl auch möglich, aber das müsste im DOM erkennbar sein, ist es aber nicht! Also dürfte es sich eher um einen gelegentlich, evtl unter besonderen Umständen auf­tre­tenden und deshalb nur schwer auf­spürbaren Forums­Software-Bug handeln. Bei mir war das mE auch schon mal auf­getreten und ich hatte nichts mani­puliert.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Wie Zellen per VBA nach bestimmten Schema kopieren
22.04.2017 10:30:45
Frank
Hallo,
Level weg oder da,ich habs jetzt folgendermaßen gelöst:
Sub test()
Dim i As Integer
With Sheets("Tabelle1")
For i = 4 To 634 Step 5
.Range("W2:Y4").Copy .Cells(i + 3, 23)
Next
End With
End Sub
So passt es genau und ich muss nix von Hand löschen ;-)
LG Frank
AW: Wie Zellen per VBA nach bestimmten Schema kopieren
22.04.2017 10:45:05
Frank
Hallo Werner,
sorry,da hatte ich nur ein leeres Fenster,jetzt ist dein Text plötzlich da.
Lg Frank
Anzeige
AW: Wie Zellen per VBA nach bestimmten Schema kopieren
22.04.2017 15:03:17
Frank
Hallo Werner,
klappt perfekt. Nun bin ich dabei mir was zu basteln,das mir nach Bedarf erst 3 Zeilen,dann nur 2 Zeilen ausblenden lässt. Heisst im Klartext Zeilen 4-6,dann 9-10,14-16,19-20 usw.
Erste Lösungsansätze:

Sub ZeilenAusblenden()
Dim Zeile As Long
Zeile = 3
While Zeile 
oder

Sub Zeilenausblenden()
Dim Zei As Long
With Sheets(1)
For Zei = 3 To 639 Step 5
Cells(Zei + 3).EntireRow.Hidden = True
Next Zei
End With
End Sub
Beides haut leider noch nicht hin.
Lg Frank
AW: Zeilen per VBA nach Schema ausblenden
22.04.2017 16:15:20
Gerd
Hallo Frank,
meinst du so? Deine usw.-Kette ist vielleicht zu kurz.
Sub ausblenden()
Dim objCell As Range
For Each objCell In Range("A1:A639")
Select Case objCell.Row Mod 10
Case 0, 4 To 6, 9: objCell.EntireRow.Hidden = True
End Select
Next
End Sub
Gruß Gerd
Anzeige
AW: Zeilen per VBA nach Schema ausblenden
22.04.2017 17:23:19
Frank
Hallo Gerd,
Sub ausblenden()
Dim objCell As Range
For Each objCell In Range("DP4:DP639")
Select Case objCell.Row Mod 10
Case 4 To 6, 9: objCell.EntireRow.Hidden = True
End Select
Next
End Sub
So passt es perfekt.Vielen Dank

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige