Makro für Excel 2002

11/04/2008 - 16:12 von Dieter Schoultz | Report spam
Hallo der versammelten Gemeinde.

Ich versuche ein kleines Programm für meine Tochter zur Verwaltung von
Therapieeinheiten. (Windows XP, Excel 2002)
Immer, wenn eine Therapie erledigt ist (Ein Datenblock von 5 Zeilen und 10
Spalten) soll ein neuer leerer Datenblock darunter eingerichtet werden.
Das Makro mit absuluten Bezügen aufzuzeichnen ist kein Prolem, aber wie muß
es aussehen, wenn ich an jeder beliebigen Anfangszelle den Block einfügen
möchte?

Ist bestimmt ganz einfach, aber ich habe nicht die Stelle in der Hilfe
gefunden.

Gruß Dieter
 

Lesen sie die antworten

#1 stefan onken
11/04/2008 - 17:14 | Warnen spam
On 11 Apr., 16:12, "Dieter Schoultz" wrote:
Hallo der versammelten Gemeinde.

Ich versuche ein kleines Programm für meine Tochter zur Verwaltung von
Therapieeinheiten. (Windows XP, Excel 2002)
Immer, wenn eine Therapie erledigt ist (Ein Datenblock von 5 Zeilen und 10
Spalten) soll ein neuer leerer Datenblock darunter eingerichtet werden.
Das Makro mit absuluten Bezügen aufzuzeichnen ist kein Prolem, aber wie muß
es aussehen, wenn ich an jeder beliebigen Anfangszelle den Block einfügen
möchte?

Ist bestimmt ganz einfach, aber ich habe nicht die Stelle in der Hilfe
gefunden.

Gruß Dieter



hallo Dieter,
deine Makroaufzeichnung hat vermutlich in etwa so etwas ergeben

Range("A1:J5").Copy
Range("A6").Select
ActiveSheet.Paste

um die 6 in A6 variabel zu gestalten, gibt es mehrere Möglichkeiten:
Range("A65536").End(xlUp).Row + 1
ActiveSheet.UsedRange.Rows.Count
Range("A1").CurrentRegion.Rows.Count
und auch noch SpecialCells(xlCellTypeLastCell)

bei jeder dieser Varianten gibt es etwas zu beachten, am
gebràuchlichsten ist Variante1.
Die wird so in den Code eingebaut:
Range("A1:J5").Copy
Range("A" & Range("A65536").End(xlUp).Row + 1).Select
ActiveSheet.Paste

es ist natürlich auch möglich, die Spalte (=Column) variabel zu
gestalten.
Range("IV1").End(xlToLeft).Column
zB ermittelt die letzte belegte Spalte in Spalte 1.
Zurückgegeben wird eine Zahl, kein Buchstabe. Das kann man umwandeln
oder anstatt Range() Cells() verwenden:
Range("A10") entspricht Cells( 10, 1)

Gruß
stefan

Ähnliche fragen