Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1064to1068
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
Inhaltsverzeichnis

was ist falsch?

was ist falsch?
31.03.2009 10:09:28
Andi
Hallo zusammen
ich habe folgendes Problem mit folgendem Makro:

Sub Makro2()
Dim a As Integer
Dim x As Integer
Range("J4").Value = a
For x = 1 To a
Rows("10:10").Select
Selection.Copy
Range("A10+(x-1)*40").Select
ActiveSheet.Paste
Next x
End Sub


Dieses Makro soll die Zeile 10 kopieren und an der Richtigen stelle einfügen. Nach meiner Vorstellung geht das so:
In J4 steht z.B eine 5:
Dann soll die Zeile 10 nach dem ausführen des Markos in die Zeilen 10, 50, 90, 130 und 170 stehen, also immer 40 Zeilen weiter unten wieder eingefügt werden und insgesamt 5 mal (Welches dem Wert in J4 entspricht).
Schlussendlich habe ich dann die Werte aus Zeile10 5mal auf dem Blatt.
Hoffe ihr wisst was ich meine und könnt mir helfen!
Gruss ANdi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: was ist falsch?
31.03.2009 10:14:50
AndrRo
Hallo Andi,
soll A mit den Wert aus Zelle J4 gefüllt werden?
dann wäre
a = Range("J4").Value
richtig. So wie es bei dir steht ist A = 0 und das wird in Zelle J4 geschrieben. und deine Schleife geht von 1 bis 0, also gar nicht.
gruss
AndrR0
AW: was ist falsch?
31.03.2009 10:17:53
Stefan
Hallo Andi
wechsel mal
Range("J4").Value = a in a = Range("J4").Value
Stefan
AW: was ist falsch?
31.03.2009 10:31:47
fcs
Hallo Andi,
in VBA stehen Variablen immer links vom Gleichheitszeichen, die zugewiesenen Werte/Formeln rechts vom Gleichheitszeichen.
Berechnungen von Zahlenwerten dürfen nicht innerhalb von Anführungszeichen stehen.
Bei verwendung von Cells statt Range für die Zelladressierung lassen sich Schleifen einfacher programmieren.
Dein Makro kann man wesentlich einkürzen. Außerdem muss du die zukopierende Zeile nicht unbedingt nochmals auf sich selbst kopieren.
Gruß
Franz

Sub Makro2()
Dim a As Integer
Dim x As Integer
a = Range("J4").Value
For x = 1 To a
Rows("10:10").Select
Selection.Copy
Range("A" & 10 + (x - 1) * 40).Select
ActiveSheet.Paste
Next x
Application.CutCopyMode = False
End Sub
Sub Makro2kurz()
Dim x As Integer
For x = 1 To Range("J4").Value - 1
Rows(10).Copy Destination:=Cells(10 + x * 40, 1)
Next x
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige