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

VBA copy paste (Loop/Schleife)

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




Anzeige

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


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

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



;

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

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