Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lauzeitfehler 1004 beim Kopieren eines Ranges

Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 02:48:38
Nightwolf
Bin absolut neu im VBA Bereich und habe, um das gleich zu sagen, kein so großes Interesse etwas dazu zu lernen. Ich möchte lediglich dieses Makro zum Laufen bringen:
' verschiebt Datenblöcke einer Liste in jeweils eigene Spalten

Sub Makro1()
' gibt an, in welcher Spalte sich die Daten befinden
spalte = "A"
' gibt die oberste Zeile an, in der sich Daten befinden
startzeile = 1
' gibt die Anzahl Zeilen pro Block an (inklusive Leerzeilen)
anzahl = 25
' gibt an, in welche Spalte der oberste Block verschoben werden soll (als Zahl!)
zielspalte = 1
' gibt an, in welche Zeile die obersten Zellen der einzelnen Blöcke verschoben werden sollen
zielzeile = 0
zaehler = 0
Do While IsEmpty(Range(spalte + CStr(zaehler * anzahl + startzeile))) = False
Range(Cells(zielzeile, zielspalte), Cells(zielzeile + anzahl, zielspalte)) = Range(spalte + CStr(zaehler * anzahl + startzeile) + ":" + spalte + CStr(zaehler * anzahl + startzeile + anzahl))
zaehler = zaehler + 1
zielspalte = zielspalte + 1
Loop
End Sub

Beim Zuweisen des Ranges tritt der Laufzeitfehler 1004 auf, dasselbe passiert auch, wenn ich die Funktion Copy oder Cut benutze.
Viele Grüße und schonmal Danke
Nightwolf

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

Betreff
Datum
Anwender
Anzeige
AW: Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 07:33:54
Hans
Hallo,
die Zielzeile legst Du mit 0 fest. Null ist aber keine gültige Zeilennummer.
Empfehlung: Verwende "Option Explicit" und deklariere Deine Variablen exakt, das erleichtert einiges.
gruss hans
AW: Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 11:09:23
Nightwolf
Danke, das behebt das Problem mit dem Laufzeitfehler. Es passiert allerdings nichts. Wenn ich Copy oder Cut verwende bleibt der Fehler sogar noch bestehen.
Nightwolf
AW: Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 11:25:13
Hans
Hallo,
ich habe lange vergeblich versucht herauszufinden, was Du genau anstellen möchtest. Zwei Möglichkeiten: Formuliere bitte die Aufgabenstellung oder stelle eine Beispielarbeitsmappe auf den Server.
gruss hans
Anzeige
AW: Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 11:37:11
Nightwolf
Erstmal Vielen Dank dafür, dass Du dich so ins Zeug legst! :)
Ich möchte im Grunde nur eine Liste, also untereinander stehende Werte in einer Spalte in verschiedene Spalten aufteilen. In jeder Spalte sollen dann "anzahl" Werte stehen. Beispiel:
A
4
5
6
4
2
3
6
7
8
Hier wäre spalte und startzeile 1* (es wird bei A1 angefangen) und anzahl 4 (jeder Block hat, inklusive Leerzeilen, 4 Werte). Das ganze soll nach dem Ausführen des Makros z. B. so aussehen:
A B C
4 4 6
5 2 7
6 3 8
* habe ich im Code verändert,die Schleifenbedingung ist nun "Do While IsEmpty(Cells(zaehler * anzahl + zeile, spalte)) = False"
Viele Grüße
Nightwolf
Anzeige
AW: Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 14:06:46
Hans
... ja, jetzt hab ichs verstanden. Wie folgt:

Sub Anordnen()
Dim lRow As Long, lRowL As Long, lRowT As Long
Dim iCol As Integer, iColT As Integer
iCol = 1
iColT = 1
lRowT = 1
lRowL = Cells(Rows.Count, 1).End(xlUp).Row
For lRow = 1 To lRowL
Cells(lRowT, iColT).Value = Cells(lRow, iCol).Value
lRowT = lRowT + 1
If IsEmpty(Cells(lRow, 1)) Then
lRowT = 1
iColT = iColT + 1
End If
Next lRow
Range(Cells(lRowT, iCol), Cells(lRowL, iCol)).ClearContents
End Sub

gruss hans
AW: Lauzeitfehler 1004 beim Kopieren eines Ranges
27.07.2006 14:44:57
Nightwolf
Vielen Dank, funktioniert perfekt :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige