Microsoft Excel

Herbers Excel/VBA-Archiv

Schleife aber wie?

Betrifft: Schleife aber wie? von: HeinzO
Geschrieben am: 27.08.2004 22:12:04

Moin VBA'ler,

kann mir jemand eine Schleife basteln, da meine VBA-Kenntnisse miserable sind, per Recorder habe ich es schon soweit gebracht.

Sub Statistik() 
' 
' Statistik Makro 
' Makro am 27.08.2004 von Administrator aufgezeichnet 
' 
' Tastenkombination: Strg+Umschalt+V 
' 
Range("L4:S4").Select 
Selection.Copy 
Range("L9").Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 
End 
Sub 

Mein Problem besteht darin, das das Makro bei jeder neuen Auslösung nicht in L9 sondern in L10, L11 usw. schreiben soll. Also in der darunterliegenden LEEREN Zelle. 

Kann mir jemand helfen? 

Besten Dank im Voraus! 


Thorsten


  


Betrifft: AW: Schleife aber wie? von: Roland Hochhäuser
Geschrieben am: 27.08.2004 22:38:30

Hallo Thorsten,
versuch das mal
Sub kopieren()
Dim rng As Range
If Range("L65536").End(xlUp).Row < 9 Then
Set rng = Range("L9")
Else
Set rng = Range("L65536").End(xlUp)
End If
Range("L4:S4").Copy rng.Offset(1, 0)
End Sub

Gruß
Roland
(PS: Hat aber nichts mit einer Schleife zu tun)


  


Betrifft: AW: Schleife aber wie? von: Klexy
Geschrieben am: 28.08.2004 15:28:32

Warum denn so kompliziert?
Einfach die Zeile mit "L9" durch meine Zeile mit "L9" ersetzen. Jetzt geht er von L9 runterwärts zur letzten gefüllten Zelle, also so, als ob du "Strg+Pfeil nach unten" drückst und dann noch einen nach unten und Null nach rechts. Wenn du zwischendrin Leerzellen haben könntest, solltest du besser von unten anfangen und zur letzten leeren Zelle aufwärts gehen. Das wäre dann:
Range("L65536").End(xlUp).Select
Diese relativen befehle sind mit dem Recorder leider nicht aufzuzeichnen im Gegensatz zu den absoluten Befehlen ("Gehe zu Zelle L12")
Tipp:
Offset(-2, -5) würde bedeuten: zwei nach oben und fünf nach links.
Guckst du hier: http://www.excel-vba.com/v-microsoft-excel-range.htm

... und mit Schleife (Befehl: Loop) hat das nix zu tun.



Sub Statistik() 
' 
' Statistik Makro 
' Makro am 27.08.2004 von Administrator aufgezeichnet 
' 
' Tastenkombination: Strg+Umschalt+V 
' 
Range("L4:S4").Select 
Selection.Copy 
Range("L9").End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste 
Application.CutCopyMode = False 
End 
Sub 



  


Betrifft: Erklärung von: Roland Hochhäuser
Geschrieben am: 28.08.2004 15:51:43

@ Klexy
Ich habe die Frage so verstanden, dasss mit dem Einfügen in L9 begonnen werden soll. Dies stellt die If-then-Abfrage in meinem Ansatz sicher.
Dein Ansatz funktioniert nur, wenn in L10 (oder tiefer) bereits was steht, ansonsten gibts einen 1004er-Fehler, da vergeblich das Zeilen-Offset zu L63356 gesucht wird.
Ich meine daher, mein Ansatz ist nicht zu kompliziert, sondern nur weniger fehleranfällig.
Gruß
Roland


  


Betrifft: AW: Schleife aber wie? von: Thorsten
Geschrieben am: 28.08.2004 21:21:10

Danke Roland hat funktioniert


 

Beiträge aus den Excel-Beispielen zum Thema "Schleife aber wie?"