VBA letzte befuellte Zelle einer Spalte ermitteln und Range kopieren

14/05/2010 - 14:24 von Volker Neurath | Report spam
Hallo zusammen,

meine Überschrift ist etwas ungenau.

Was ich möchte, schildere ich an einem Beispiel:

In ein Excel-Sheet werden Produktlisten eingetragen, mit verschiedenen
Werten. die Spalte A enthàlt dabei die Produktbeschreibung, die Spalte B
die Artikelnummer.

Ene VBA-routine soll nun die in spalte A und B eingetragenen Werte in
ein zweites Blatt desselben Workbooks kopieren.

Klar könnte ich das einfach in Zelle A2 des Zielsheets
=Wenn(ISTLEER(Blatt1!A2;"";Blatt1!A2)
schreiben und runterkopieren bis Blattende - aber das finde ich
unelegant.
Ich möchte halt, dass nur soviele Zeilen kopiert werden, wie auch
vorhanden sind.

Außerdem benötige ich diese Funktion ein weiteres mal, da aus derselben
Liste noch ein ExcelSheet erstellt werden muss, das in unser WW-System
hochgeladen wird; und da würden z.B. Formeln stören.

Volker

Wenn es vom Himmel Zitronen regnet -- lerne, Limonade zu machen.
 

Lesen sie die antworten

#1 Andreas Killer
14/05/2010 - 14:38 | Warnen spam
Volker Neurath schrieb:

In ein Excel-Sheet werden Produktlisten eingetragen, mit verschiedenen
Werten. die Spalte A enthàlt dabei die Produktbeschreibung, die Spalte B
die Artikelnummer.

Ene VBA-routine soll nun die in spalte A und B eingetragenen Werte in
ein zweites Blatt desselben Workbooks kopieren.


Wann?

Soll direkt bei der Eingabe das Kopieren stattfinden oder möchtest Du
selber mit einem Makro generell alle Wert in Spalte A und B kopieren?

Außerdem benötige ich diese Funktion ein weiteres mal, da aus derselben
Liste noch ein ExcelSheet erstellt werden muss, das in unser WW-System
hochgeladen wird; und da würden z.B. Formeln stören.


Also soll das Kopieren nicht nur in ein sondern in 2 Blàtter erfolgen?

Wie heißen die Blàtter denn eigentlich?

Tjajaja, ich glaube nicht nur Deine Überschrift ist ungenau. ;-)

Andreas.

Sub Test()
Dim Ymax As Long
'Letzte Zeile in Spalte A und B ermitteln, _
und höhere Zeile bestimmen.
Ymax = WorksheetFunction.Max( _
Range("A" & Rows.Count).End(xlUp).Row, _
Range("B" & Rows.Count).End(xlUp).Row)
'Alles von Zelle A1 bis B[letzte Zeile] kopieren _
nach Tabelle2
Range(Range("A1"), Range("B" & Ymax)).Copy _
Destination:=Sheets("Tabelle2").Range("A1")
End Sub

Ähnliche fragen