Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA copy paste (Loop/Schleife)

VBA copy paste (Loop/Schleife)
20.02.2003 10:34:45
Robert A
Hallo ihr allen,

Ich brauche mal wieder hilfe.
Absicht vom unten angezeigter Code ist aus Spalte A mit Daten(Text) in jeder Zelle bis zu Zeile ?, immer jeder Zelle angefangen bei Zelle A4, nächste Zelle A39, A74, A109 usw. zu kopieren( DIFF. immer 35 )und auf Arbeitsblatt "data1" ein zufügen.

Wichtig dabei ist dass er nur kopieren soll, wenn sich Daten in Spalte B befinden.

Sub Zusammenfassung1()


Dim i As Integer
Dim Counter As Integer
Dim Pkcounter As Integer

For i = 1 To 11



Counter = 4
Pkcounter = 1
Do Until Worksheets("Data").Cells(Counter + 2, 2).Value = ""

If Not (Worksheets("Data").Cells(Counter + 2, 2)) = "" Then

Worksheets("Data").Activate
ActiveSheet.Range(Cells(Counter, 1)).Cells(Counter, 1).Copy


Worksheets("Data1").Activate
ActiveSheet.Cells(3, Pkcounter + 1).Select
ActiveSheet.Paste

Pkcounter = Pkcounter + 1

Else: End If

Counter = Counter + 35

Loop

Next i

End Sub


Warscheinlich mache ich ne ziemlich "fraglichen" Fehler aber ich weiss leider nicht wie sonst.
Ich hoffe Ihr könnt mich helfen

Grüsse

Robert




7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA copy paste (Loop/Schleife)
20.02.2003 11:09:02
gordon

Hallo Robert,

sofern Deine Daten dort nicht kontinuierlich stehen, arbeitet die Schleife nur bis zur ersten leeren zelle in SPalte b.

Mit RealLastCell (hier in der Recherche) die letzte benutzte Zelle herausfinden, dann kann auch 'zwischendurch' mal eine leer sein. Zwei Ranges (Quelle / Ziel) definieren, dann das select und activate weglassen und lieber mit Angabe des Zielbereichs als range bei der Copy-Methode arbeiten.

Gruß
gordon


Re: VBA copy paste (Loop/Schleife)
20.02.2003 11:12:50
Severin Hauser

Also für mich sieht das nach ein bischen gehtto aus :D
Warum addierst du zu Counter immer noch 2 dazu?
Genau gleich Frage bei Pkcounter, du willst doch Spalte A und ned B kopieren.

Anzeige
Re: VBA copy paste (Loop/Schleife)
20.02.2003 11:20:20
Severin Hauser

Hm Ich hab jetzt mal ein bissel gebastelt.
Nun funkt er bei mir soweit dass er immer den Wert aus Spalte A kopiert solange in Spalte B auf gleicher Höhe auch ein Wert ist.
Sub Zusammenfassung1()


Dim i As Integer
Dim Counter As Integer
Dim Pkcounter As Integer

For i = 1 To 11

Counter = 4
Pkcounter = 1
Do Until Worksheets("Data").Cells(Counter, 2).Value = ""


Worksheets("Data").Activate
ActiveSheet.Cells(Counter, 1).Copy
Worksheets("Data1").Activate
ActiveSheet.Cells(3, Pkcounter + 1).Select
ActiveSheet.Paste

Pkcounter = Pkcounter + 1

Counter = Counter + 35

Loop

Next i

End Sub

Anzeige
Re: VBA copy paste (Loop/Schleife)
20.02.2003 11:24:51
Die schnellere Variante

Hallo Robert
Ohne select und activate und zuerst die letzte Zelle ermitteln. Das Counter + 2 versteh ich auch nicht, habs rausgenommen

Gruss
Urs

Re: VBA copy paste (Loop/Schleife)
20.02.2003 11:37:04
Robert A

Hallo,

Ich addiere zum counter 2 dazu da im Spalte B die Bedingung zum kopieren liegt. Es kann vorkommen dass es unter "Cells(Counter, 2)" daten liegen, während Cells(Counter + 2, 2) leer ist. Wenn
Cells(Counter + 2, 2) leer ist dan darf er z.B
Cells(Counter, 1) nicht kopieren.

Bezüglich PKcounter; Meine Meinung nach, muss ich PKcounter + 1 machen, damit er dass kopierte neben einander auf Arbeitsblatt "Data1" einfügt.

Gruss
Robert

Anzeige
Re: VBA copy paste (Loop/Schleife)
20.02.2003 13:17:34
Robert A

Hallo Urs,

Deine Lösung functioniert genau so wie ich es haben möchte.
Danke für deine Hilfe, hast mich damit Mega geholfen.


Sub Zusammenfassung1()
Dim i As Integer
Dim Counter As Integer
Dim Pkcounter As Integer
Pkcounter = 1
i = Worksheets("Data").Cells(Rows.Count, 1).End(xlUp).Row - 1
For Counter = 4 To i
If Not (Worksheets("Data").Cells(Counter, 2)) = "" Then
Worksheets("Data").Cells(Counter, 1).Copy Destination:=Worksheets("Data1").Cells(3, Pkcounter + 1)
Pkcounter = Pkcounter + 1
End If

Counter = Counter + 34
Next Counter

End Sub

Grüsse

Robert



Anzeige
Re: VBA copy paste (Loop/Schleife)
20.02.2003 13:22:41
Robert A

Hallo Severin

Danke noch für deine Hilfe.

Leider klappt es nicht ganz. A4 wird wie gewünscht, kopiert und eingefügt aber danach hört der Loop auf.

Die Lösung von Urs hat aber functioniert.

Gruss

Robert



319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige