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

Makro Zelle markieren für kopieren

Makro Zelle markieren für kopieren
06.04.2023 20:21:56
Daniel

Hallo zusammen

Wie kann ich über Makro ab Zeile 2 bis zur letzte Zeile mit Inhalt die Spalte A bis W markieren. Kann auch vorkommen, dass die erste und letzte Zeile die Zeile 2 ist.

Vielen Dank im Voraus.

Gruss
Daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Zelle markieren für kopieren
06.04.2023 21:47:47
GerdL
Hallo Daniel,

unterstell, A2 ist gefüllt.

Sub Unit()


Dim Quelle As Range
Dim Ziel As Range


Set Quelle = ActiveSheet.Range(ActiveSheet.Cells(2, 1), ActiveSheet.Cells(Rows.Count, 1).End(xlUp)).Resize(, ActiveSheet.Columns("W").Column)
Set Ziel = ActiveSheet.Next.Cells(2, 1) 'auf Blatt rechts vom Quellblatt

Call Quelle.Copy(Ziel)

Set Quelle = Nothing: Set Ziel = Nothing


End Sub
Markieren ist nicht notwendig.

Gruß Gerd


AW: Makro Zelle markieren für kopieren
07.04.2023 19:20:53
Daniel
Vielen Dank.


AW: Makro Zelle markieren für kopieren
06.04.2023 21:49:25
Yal
Hallo Daniel,

beim Makros, die über den über den Makrorekorder aufgezeichnet worden sind, sind alle Schritte, die per Hand gemacht wurden, aufgezeichnet. Es führt dazu, dass immer zuerst markiert, und dann kopiert wird "... .Select" und dann "Selection.Copy". Diese Selection kannst Du übergehen und direkt den gegebenen Bereicht kopieren:
ActiveSheet.Range("A2:D5").Copy
Zusätzlich geht es bei deiner Fragedarum, wie man die letzte befüllte Zelle in Spalte W ermittelt: man nimmt die letzte Zelle in Spalte W (richig die letzte "W1048576", der Zahl entspricht die Anzahl an Zeilen in der Tabelle: Rows.Count) und sucht die erste befüllte nach oben: Strg+Pfeil nach oben. In VBA wird es so geschrieben:
ActiveSheet.Cells(Rows.Count, "W").End(xlUp)
aber das wäre nur eine einzige Zelle. Um einen Bereich zu haben, brauchst eine erste und eine letzte Zelle:
Range(ActiveSheet.Range("A2"), ActiveSheet.Range(Rows.Count, "W")).Copy
Wenn Du nicht sicher bist, dass in der letzte Zeile die Zelle in Spalte W befüllt ist, aber sicher, dass die Zelle in Spalte A befüllt ist, kannst Du statt obere linke zu untere rechte umkehren in obere rechte zu untere linke. Es sieht dann so aus:
Range(ActiveSheet.Range("W2"), ActiveSheet.Range(Rows.Count, "A")).Copy
Wenn Du voher nur testen möchtest, verwende eine MsgBox, um die Adresse des Bereiches anzuzeigen:
MsgBox Range(ActiveSheet.Range("A2"), ActiveSheet.Range(Rows.Count, "W")).Address
VG
Yal

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige