Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
548to552
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
548to552
548to552
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lösung mit Schleife?

Lösung mit Schleife?
18.01.2005 12:49:36
Matthias
Hallo,
meine Problem ist folgendes:
Dieser Quellcode soll sich 20 mal wiederholen aber statt Range("J336:U341") soll 13 Zeilen tiefer ("J349:U354")die Werte kopiert und hinter den anderen Werten also ("Matrix") Range("J14") genommen werden. Dann fängt es wieder von vorne an, statt ("J349:U354") nun ("J362:U367")usw.

Sub FaktorprämieGesamt()
Sheets("Inputdaten").Select
Range("J336:U341").Select
Selection.Copy
Sheets("Matrix").Select
Range("J2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Sheets("Inputdaten").Select
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Lösung mit Schleife?
Uduuh
Hallo,
etwa so:
dim i as integer
for i=0 to 19
sheets("inputdaten").Range("J" &336+i*13 &":U" &341+i*13).copy
sheets("Matrix").Range("J" &2+i*13).pastespecial paste:=xlvalues
next i
Gruß aus'm Pott
Udo

AW: Lösung mit Schleife?
Harald
Hallo Matthias,
wenn ich mich nicht mit den Indizes vertan habe, könnte das funktionieren:
Option Explicit

Sub FaktorprämieGesamt()
Dim i As Integer
For i = 0 To 19
Sheets("Inputdaten").Select
Range("J" & 336 + 13 * i & ":U" & 341 + 13 * i).Select
Selection.Copy
Sheets("Matrix").Select
Range("J" & 2 + i * 13).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Next
Sheets("Inputdaten").Select
End Sub

Gruß Harald
Anzeige
AW: Lösung mit Schleife?
18.01.2005 13:08:54
Josef
Hallo Matthias!
Ungetestet, sollte aber funzen!


      
Option Explicit
Sub FaktorprämieGesamt()
Dim wksI As Worksheet, wksM As Worksheet
Dim lRow As Long, lastRow As Long
Set wksI = Sheets("Inputdaten")
Set wksM = Sheets("Matrix")
lRow = 336
With wksI
   
Do
   
      lastRow = IIf(wksM.Range(
"J65536") <> "", 65536, _
      wksM.Range(
"J65536").End(xlUp).Row) + 1
      
If lastRow < 2 Then lastRow = 2
      
      .Range(.Cells(lRow, 10), .Cells(lRow + 5, 21)).Copy
      
      wksM.Cells(lastRow, 10).PasteSpecial xlPasteValues
      
      lRow = lRow + 13
   
   
Loop While lRow < 596
End With
Application.CutCopyMode = 
False
End Sub 


Gruß Sepp
Anzeige
Syntaxfehler
18.01.2005 13:51:29
Matthias
Danke, erst einmal
bei deinem Code wird ein Sytaxfehler angezeigt. Ich habe die Lösung aber jetzt. Danke
Danke es funktioniert
18.01.2005 13:55:04
Matthias
Danke an die drei Herrschaften.
AW1: hatte einen Sytaxfehler angezeigt
AW2: hat nach jeder 13te Zeile eine Leerzeile eingefügt
AW3: die Daten wurden nicht transponiert
Habe AW3 verwendet mit dem Zusatz, das Daten auch transponiert werden:

Sub test()
Dim wksI As Worksheet, wksM As Worksheet
Dim lRow As Long, lastRow As Long
Set wksI = Sheets("Inputdaten")
Set wksM = Sheets("Matrix")
lRow = 336
With wksI
Do
lastRow = IIf(wksM.Range("J65536") <> "", 65536, _
wksM.Range("J65536").End(xlUp).Row) + 1
If lastRow < 2 Then lastRow = 2
.Range(.Cells(lRow, 10), .Cells(lRow + 5, 21)).Copy
wksM.Cells(lastRow, 10).PasteSpecial xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
lRow = lRow + 13
Loop While lRow < 596
End With
Application.CutCopyMode = False
End Sub

Anzeige
AW: Danke es funktioniert
18.01.2005 13:56:51
Josef
Hallo Matthias!
Das mit "Transpose:=True" hatte ich übersehen, Sorry ;-)
Gruß Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige