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

Kann dieses Makro funktionieren?

Kann dieses Makro funktionieren?
30.04.2003 12:01:04
Rolf Dätwyler
Hallo Leute,

Ich habe folgendes Makro:

For i = 1 To versetz
Selection.ClearContents
ActiveCell.Offset(1, 0).Activate
Next i

versetz wurde vorher deffiniert als Variable (Dim versetz as Variant)
Der Wert von Variant ist eine Zahl(Mit Formel berechnet), die sich in Zelle H2 befindet.

Funktion:

Aus einer Liste sollen an einer Bestimmten Stelle Zahlen gelöscht werden (NICHT die Zellen)und zwar gena so viele Zahlen, wie als Wert in der Zelle H2 steht. Bsp:

Wert Zelle H2=2

Vorher:

10
20
30
40
50

Ergebniss:

10


40
50

Funktioniert das?Wenn nicht, was muss ich genau verändern?

Danke für die immer sehr hilfreichen Antworten!

Rolf


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Nö ;-)
30.04.2003 12:08:42
Nike

Hi,
versuchs mal so:

Bye

Nike

Ja!
30.04.2003 12:44:00
Martin Beck

Hallo Rolf,

ja, und zwar dann, wenn bei Start des Makros die aktive Zelle die erste Zelle ist, deren Inhalt gelöscht werden soll.

Der Code ist jedoch prinzipiell schlecht. In der Schleife solltest Du Sachen wie Selection, ActiveCell und offset tunlichst vermeiden.

Gruß
Martin Beck

Re: Nö ;-)
30.04.2003 12:45:51
Rolf

Hi Nike,

Ist etwas dran, das Funktioniert, ist aber nicht ganz das, was ich brauche. Ich bin in Makros noch nicht so gut, aber man lernt immer wieder etwas dazu!

Wo genau ist der Wert der Zelle H2 geblieben? Die Zelle, die Angibt, wieviele Zahlen gelöscht werden sollen?
Und wenn es geht, hast du noch einige Erklärungen zu

lngAnz
lngStep
lngZeil

Danke!

Rolf

Anzeige
Re: An Martin Beck
30.04.2003 12:48:19
Rolf

Hallo Martin,

Ist vileicht eine dumme Frage, aber wieso sollte man Sachen wie Selection, ActiveCell und offset vermeiden? Was ist der Grund?

Danke für deine Antwort!

Rolf

Select, ActiveCell, Offset
30.04.2003 12:55:04
Martin Beck

Hallo Rolf,

das hat Hans grundsätzlich und ausführlich in seinen XlBasics beschrieben, nachzulesen hier: http://www.xlfaq.herber.de/

Stichwortartig einige Anmerkungen:

1. VBA ist eine objektorientierte Programmiersprache. Man sollte daher die Objekte (in Deinem Fall Zellen oder Ranges) korrekt referenzieren.

2. Durch Select wird der Code langsam und unübersichtlich.

3. Um den Code nachvollziehen/ändern zu können, muß man immer wissen, was gerade selected ist oder was die ActiveCell ist.

4. Die Fehlersuche wird deutlich schwieriger.

Gruß
Martin Beck

Anzeige
Re: Nö ;-)
30.04.2003 13:16:34
Nike

Hi,
ich hab den Wert aus H2 einfach mal an die Funktion übergeben.
Könnte man auch mit dem folgenden Code aufrufen...
Sub test()
loesch (Range("H2")
End Sub

Function loesch(lngAnz As long)
Dim lngStep As Long
For lngStep = lngAnz To lngAnz + lngAnz
Cells(lngStep, 1).Clear
Next
End Function
'lngAnz As long ist eine Variable vom Typ long,
'da Integer ab ca. 32000 Zeilen Probleme bereiten würde...
'lngStep ist der Bereich in dem editiert wird.
'DieSchrittweite ist automatisch 1 (Step 1)
die könnte man auch mit

For lngStep = lngAnz To lngAnz + lngAnz Step 2

auf 2 hochstellen

Bye

Nike

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige