Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Mit For-Schleife kopieren und einfügen

Mit For-Schleife kopieren und einfügen
14.07.2018 17:03:21
paraxylol
Hey ihr,
ich bräuchte Hilfe zu folgendem Code:

Sub NeueSaeule()
Dim i As Integer
For i = 1 To 2
ActiveSheet.Range("L7:T14").Copy
Range("L7").Select
ActiveCell.Offset(i * 9, 0).Select
ActiveSheet.Paste
Next i
End Sub

Funktioniert soweit, nun möchte ich aber, dass nicht beide Bereiche gleichzeitig eingefügt werden, sondern, dass erst durch das erneute Betätigen des Makros das zweite mal eingefügt wird.
Habe bisschen rumprobiert, bin aber leider auf keine braubare Lösung gekommen.
Wäre eurer Hilfe sehr verbunden.
Beste Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: Mit For-Schleife kopieren und einfügen
14.07.2018 17:29:24
Hajo_Zi
es ist nur ein Bereich
ActiveSheet.Range("L7:T14").Copy Range("L7").Offset(i * 9, 0)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Mit For-Schleife kopieren und einfügen
14.07.2018 17:53:36
paraxylol
Hey,
ja ich weiß, dass es nur ein Bereich ist, der mit dem Ersten Ausführen des Makros 9 Zeilen weiter unten eingefügt werden und durch das erneute Betätigen des Makros soll der selbe Bereich kopiert, aber diesmal 18 Zeilen weiter unten (bezüglich der Zelle L7) eingefügt werden.
Habe deinen Code probiert aber es erschien mir ein Syntax-Fehler.
AW: Mit For-Schleife kopieren und einfügen
14.07.2018 18:41:18
onur
Schreib in ein MODUL:
Public i as integer
Und Lass die Schleife weg:
Sub NeueSaeule()
i=i+1
ActiveSheet.Range("L7:T14").Copy
Range("L7").Select
ActiveCell.Offset(i * 9, 0).Select
ActiveSheet.Paste
End Sub 
Dann wird i bei jedem Durchlauf um 1 erhöht.
Anzeige
AW: Mit For-Schleife kopieren und einfügen
14.07.2018 21:01:16
paraxylol
Hallo,
danke schonmal aber leider funktioniert das so nicht, beim zweiten Betätigen des Makros wird der Bereich auf dieselbe Stelle eingefügt wie beim ersten Mal :(
Ich weiß ja nicht, ob du Onurs Vorschlag ...
15.07.2018 02:13:46
Luc:-?
…wirklich adäquat umgesetzt hast, paraxylol,
das Public i As Long (besser als Integer!) am ModulAnfang (außerhalb der Prozedur!) ist wichtig, oder was du sonst noch zwischen­durch machst bzw wie du das generell nutzen willst, denn solche Konstrukte, ob nun wie von Onur gezeigt mit GlobalVariable oder mit Static i As Long innerhalb der Prozedur deklariert, haben einen Schwachpkt → sie können uU auf 0 zurückfallen und tuen das auch regelmäßig, wenn die Datei geschlossen wird.
Soll stets der letzte Stand dieses Zählers bewahrt wdn, kommst du um eine benannte Xl-Konstante nicht herum. Deren aktuellen Stand könntest du auch im Blatt ausgeben. Mit der nachfolgd Prozedur wird das realisiert. Ist dieser Name nicht vorhanden, wird er, nur für das aktuelle Blatt gültig (!), erst angelegt. Anderenfalls wird sein Wert ausgelesen, in beiden Fällen um 1 erhöht, so zurückgespeichert und weiterverwendet:
Sub NeueSaeule()
Const zlDiff As Long = 9, adKopBer$ = "L7:T14", naCtr$ = "BlockZähler"
Dim z As Long
On Error Resume Next
With ActiveSheet
If IsError(.Names(naCtr).Name) Then _
.Names.Add naCtr, "=0"
z = CLng(Mid(.Names(naCtr).RefersTo, 2)) + 1
.Names(naCtr).RefersTo = z
With .Range(adKopBer)
.Copy .Offset(z * zlDiff, 0)
End With
End With
End Sub
Alle (anderen), ggf zu aktualisierenden Werte wurden hier pflegeleicht am PgmAnfang als Konstanten deklariert, auch der Name der benannten Xl-Konstanten, der so ebenfalls leicht geändert wdn kann, ohne in den weiteren PgmCode eingreifen zu müssen. Außerdem habe ich die unnötige Selektiererei entfernt.
Soll irgendwann wieder von vorn begonnen wdn, muss nur die Xl-Konstante zurück auf 0 gesetzt wdn. Dass die Datei dann auch gespeichert wdn muss, um den aktuellen Zählerstand zu behalten, versteht sich wohl von selbst. Sollen also alle Aktionen (inkl ZählerErhöhung) einer Xl-Sitzung verworfen wdn, muss die Datei nur ohne Speicherung geschlossen wdn.
Morrn, Luc :-?
Anzeige
AW: Mit For-Schleife kopieren und einfügen
15.07.2018 11:50:11
Gerd
Moin
Sub NeueSaeule()
Range("L7:T14").Copy Cells(Rows.Count, 12).End(xlUp).Offset(2)
End Sub

Gruß Gerd

341 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige