Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makrorekorder optimieren
#1
Hallo zusammen mir es geht um folgenden Code, den ich über den Makrorecorder aufgenommen habe:

Range("B1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

ich will in spalte B alles bis zur letztbeschriebenen Zelle kopieren.

Am besten wäre es wenn hierfür keine Variable vordefiniert werden müsste, weil ich jetzt schon nicht mehr durchblicke in meinem Gesamtcode.

Grüße
Ilyas

EDIT!!!

falls jemand schon nach einem Lösungsansatz sucht, dann tut es mir Leid!

Ich sehe gerade, dass mein Makro nur bis zur nächste beschriebenen Zelle alles kopiert. Dies reicht allerdings nicht.
Wie in der Erklärung auch erläutert muss bis zur letzten beschriebenen Zelle alles kopiert werden.


Hintergrund ist, dass mehrere Tabellen untereinander aufgebaut werden müssen. Wenn ich die komplette Spalte kopiere ((columns A:A).copy) überschreite ich die maximale Anzahl an möglichen Feldern.
In einem nächsten Schritt müsste ich das richtige Feld finden, in der mein Zwischenspeicher eingefügt werden soll. Hier müsste ich wieder die letzte beschriebene Zelle einer Spalte finden und das kopierte darunter einfügen. Dies ist allerdings ein ferneres Ziel.
Antworten Top
#2
Hallo,
Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp)).Copy
Gruß Uwe
Antworten Top
#3
Hallo,


Zitat:Hintergrund ist, dass mehrere Tabellen untereinander aufgebaut werden müssen.

sagt wer? Das gehört zu den Arbeitsweisen, die man auf jeden Fall unterlassen sollte.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#4
Hi,

Code:
Option Explicit

Sub ZuletztBeschriebeneZelleInSpalteA()
    'gut leserliche Schreibweise
    With ActiveSheet
        MsgBox .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
    'performantere Schreibweise
    With ActiveSheet
        MsgBox .Cells(.Rows.Count, 1).End(xlUp).Row
    End With
    'die nächste freie Zelle unter der zuletzt beschriebenen
    With ActiveSheet
        MsgBox .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    End With
End Sub
gruß
Marco
Antworten Top
#5
PHP-Code:
Sub M_snb()
  columns(2).specialcells(2).copy
End Sub 
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste