Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
668to672
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
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA For-next Schleife: brauche kleinen Denkanstoss

VBA For-next Schleife: brauche kleinen Denkanstoss
16.09.2005 09:40:19
Klaus
Hallo Leute,
Ich hab mir mit Codefetzen aus der Recherche einen VBA Code zur Ermittlung der letzten benutzten Zeile gebastelt.
(Erklärung: Die Liste fängt in Zeile 11 an, darum k2=11. In Spalte 9 und Spalte 16 stehen bis ans Listenende kopierte Formeln, darum sollen die bei der Ermittlung übersprungen werden. Es werden 17 Spalten insgesamt benutzt.)

[...]
k2 = 11
For spalteL = 1 To 17
If spalteL = 9 Then GoTo skipformel
If spalteL = 16 Then GoTo skipformel
k = Cells(Rows.Count, spalteL).End(xlUp).Row
If k &gt k2 Then k2 = k
skipformel:
Next spalteL
az = "A" & k2 + 1
Range(az).PasteSpecial Paste:=xlValues
[...]

Funktionieren tut es auch soweit, nur bin ich nicht glücklich mit den "goto"s. Ich hatte an "if spalteL = 9 then resume next" als Abbruch gedacht, aber das gab Laufzeitfehler.
Kann ich den Code eleganter schreiben, eventuell kürzer und ohne Goto's?
Dank und Gruß,
Klaus M.vdT.
P.S.:Ganz toll währs auch, abzufragen ob sich Formeln in den Zellen befinden oder ob sie leer sind statt statisch die Spalten 9 und 16 anzugeben, aber über das Thema schau ich nochmal in die Recherche.

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

Betreff
Datum
Anwender
Anzeige
AW: VBA For-next Schleife: brauche kleinen Denkanstoss
16.09.2005 10:38:21
Volker
Hallo Klaus,
ganz einfach anders herum
For spalteL = 1 To 17
If spalteL &lt&gt 9 and spalteL &lt&gt 16 Then
k = Cells(Rows.Count, spalteL).End(xlUp).Row
If k &gt k2 Then k2 = k
Next spalteL
Gruß
Volker
AW: VBA For-next Schleife: brauche kleinen Denkanstoss
16.09.2005 10:41:24
Peter
Hallo Klaus,
versuchs mal so:
k2 = 11
For spalteL = 1 To 17
If spalteL = 9 Or spalteL = 16 Then Exit For
k = Cells(Rows.Count, spalteL).End(xlUp).Row
If k &gt k2 Then k2 = k
Next spalteL
az = "A" & k2 + 1
Range(az).PasteSpecial Paste:=xlValues
Gruß Peter
Exit For geht nicht, Volkers Lösung läuft
16.09.2005 11:50:04
Klaus
Hallo,
b[Exit FOR]b ist es nicht, dann erreicht die Schleife die 8te Spalte nie, ich muss aber bis Spalte 17 testen.
Volker's Lösung ist dafür genau richtig.
Danke an Beide!
Gruß,
Klaus M.vdT.
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige