Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Jede 12 Zeile kopieren
03.12.2007 17:25:19
Jochen
Hallo zusammen,
ich hab mal wieder ... schon wieder ein Problem ... ich hab im Forum zwar einen Code gefunden um jede 2 Zeile zu kopieren, verstehe ihn aber nicht wirklich um ihn umzuschreiben .... Anfänger halt ..kann mir den jemand erklären ?

Sub Jede2Zeile()
Dim lngLetzteZeile As Long
Dim lngSpalte As Long
Dim wksZiel As Worksheet
Dim wksQuelle As Worksheet
Set wksZiel = Sheets(2)
Set wksQuelle = Sheets(1)
lngSpalte = 1
lngLetzteZeile = wksQuelle.Cells(65536, lngSpalte).End(xlUp).Row
With wksZiel.Cells(2, lngSpalte).Resize(lngLetzteZeile / 2, 1)
.FormulaR1C1 = "=INDEX('" & wksQuelle.Name & "'!C,ROW()*2-2)"
.Formula = .Value
End With
End Sub
Bis zu dem Befehl kapier ich es ja ..
(ingLetzteZeile / 2, 1)
Äh ingLetzteZeile durch 2, weil ich ja nur jede zweite Zeile will und ich somit das
Ergebnis hab, ab welcher Zeile Excel "schreiben" soll und zwar von unten nach oben ist das  _
Richtig
.FormulaR1C1 = "=INDEX('" & wksQuelle.Name & "'!C,ROW()*2-2)"
So hier setzt es voll ganz aus, wksQuelle ist klar aber für was steht .Name ? und !C,row()*2-2
das *2-2 denk ich hat mit jeder zweiten Zeile zu tun .. oder doch nicht ? Grübel
Kann mir mal wieder jemand helfen ?
Jochen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Jede 12 Zeile kopieren
03.12.2007 19:31:37
Rene
Hallo Jochen,
also es geht auch einfacher.
Aber wohin möchtest du die Daten denn haben (Tabelle/zelle) ?
Gruß
René

AW: Jede 12 Zeile kopieren
03.12.2007 19:55:00
Jochen
Hi René,
die Daten sollen von Tabelle1 A12 A24 A36 usw. nach Tabelle 2 B5,B6,B7 usw Die Anzahl der belegten Zellen werte ich mit folgendem Code aus
Dim AnzahlZeilen As Integer
Sheets("Tabelle1").Activate
AnzahlZeilen = Application.WorksheetFunction.CountA(Range("A1:A3600"))
'Range konfigurieren
AnzahlZeilen = Application.WorksheetFunction.CountA(Range("A1:A3600"))
Range("A1:A" & AnzahlZeilen).Select
MsgBox ("AnzahlZeilen" & AnzahlZeilen)
ich hab dann versucht mit
Worksheets(1).Cells(Quelle, 1).Copy _
Destination:=Worksheets(2).Cells(Ziel, 5)
Schleifen zu "basteln" anderst kann man das nicht sagen. Es hat aber nichts funktioniert ... dann hab ich im Forum den Code von oben gefunden .... aber wie gesagt ... wie funktioniert der ?
Gruß Jochen und Danke

Anzeige
AW: Jede 12 Zeile kopieren
03.12.2007 20:09:00
Rene

Sub Copy12()
Dim i, a, b As Integer
i = Sheets(1).UsedRange.Rows.Count
b = 1
For a = 1 To i
Sheets(1).Cells(a, 1).Copy Destination:=Sheets(2).Cells(b, 1)
b = b + 1
a = a + 11
Next
End Sub


Versuchs mal so oder ähnlich

AW: Jede 12 Zeile kopieren
03.12.2007 20:27:00
Daniel
Hi
bitte hier keine Schlechten Sitten einführen !
in einer For-Next-Schleife sollte man am Schleifenzähler möglichst nicht rumspielen (das macht ja schon die Schleife selbst), sonst könnte man in etwas grösseren Projekten u.U. mal schnell die Übersicht verlieren.
Besser ist es in diesem Fall, die Option STEP zu verwenden:

For a = 1 To i Step 12
Sheets(1).Cells(a, 1).Copy Destination:=Sheets(2).Cells(b, 1)
b = b + 1
Next


Gruß, Daniel

Anzeige
AW: Jede 12 Zeile kopieren
03.12.2007 19:46:00
Daniel
Hi
stell dir mal vor, du müsstest das Problem ohne VBA lösen, nur mit Formeln.
wie würdest du das tun?
in die 1. Zeile muss Zeile 1 vom andern Blatt (0 * 12 +1)
in die 2. Zeile muss Zeile 13 vom andern Blatt (1 * 12 +1)
in die 3. Zeile muss Zeile 25 vom andern Blatt (2 * 12 +1)
jetzt müsstest du dir eine Formel basteln, die genau dies macht, und die würde dann so aussehten:
= INDEX('Tabelle2'!A:A;(Zeile()-1)*12+1;1)
Mein Code macht nichts anderes, als diese Formel in die Zellen schreiben.
Schreib mal die Formel von Hand in eine Zelle rein und lass den Recorder mitlaufen und schau dir das Ergebnis an.
das wksQelle.name ist nichts anderes als der Name des Tabellenblatts, von dem ich die Daten holen will.
Gruß, Daniel

Anzeige
AW: Jede 12 Zeile kopieren
03.12.2007 20:49:12
Jochen
Super Danke,
Die Formel von Daniel hab ich jetzt soweit kapiert und zu Rene ich hab nicht gewuß das man in einer Schleife mehrere Variablen erhöhen kann ... ich hab zwei ebooks, da werden die Schleifen immer verschachtelt ....
nochmals Danke an euch zwei ...
Dickes Lob .. das ist ein geniales Forum ... Antworten innerhalb kurzer Zeit supi ... macht Ihr eigentlich auch noch was anderes ?!
Gruß Jochen

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige